javaweb实习报告

2024-08-06

javaweb实习报告(共5篇)

javaweb实习报告 篇1

武汉工程大学计算机科学与工程学院

生产实习报告

JavaWeb实习报告

一、实习目的与任务

为了锻炼我们的实践动手能力,提高我们分析问题、解决问题的能力,培养我们的工作意识和团队合作的意识,了解软件开发的过程和基本流程,以便于帮助我们能够在大四毕业时可找到一份客观的工作,我们在大四刚开学就开始了生产实习。

这次实习的主要任务是Java Web软件开发,学习Java开发中比较典型且经常用到的几个知识,其中包括Jsp、Servlet、Html、JDBC等等,另外,Java开发中也必须要用到数据库,因此实习中还加入了Mysql数据库的学习。掌握了这些基本知识之后,就开始真正的项目开发,而且此次我们所要开发的项目是有关博客页面的项目,并完成老师指定的功能。

二、实习地点

重庆足下科技有限公司

三、实习内容和要求

我们这次实习,在校外也就是软帝公司总共是十天,开始几天基本上是每天学习一个方面的内容,大概学习了六天其中包括Jsp、Servlet、Html、JDBC、Mysql等等,剩下几天就是项目时间,做出一个博客开发的项目。大致内容如下:

一、Java语言简介

Java语言Java是由Sun微系统公司所发展出来的程序语言,它是一种面向地向的语言,Java也号称是能跨平台使用的语言,这主要是因为Java本身被编译之后,并不是直接产生可执行的代码,而是产生一种中间码叫作 ByteCode,这种代码必需在透过 Java 的直译器来解读它,才能够真正的被执行,所以只要平台上装有这种Java的直译器,就能解读ByteCode也就能执行Java编译过的程序,故与Java程序是在那种平台上被编译的,就完全没有干系了。

Java写出来的程序可分为两类,分别是Java Applet与一般的Application,而Application这一类就与一般的程序如C++的作用是比较类似的,是一个独立可执行的应用程序,像HotJava是一个浏览器,且就是使用Java程序所发展出来的。最常见的Java程序包括应用程序和applets。应用程序是单独的程序,诸如HotJava浏览器软件就是用Java语言编写的。

Applets类似于应用程序,但是它们不能单独运行,Applets可以在支持Java的浏览器中运行。Applet主要是内置于HTML网页中,在浏览时发挥作用。

Java的目标是为了满足在一个充满各式各样不同种机器,不同操作系统平台的网络环境中开发软件。利用Java程序语言,可以进行网页开发,其中包括静态语言开发与动态网页开发,可以在网页中加入各式各样的动态效果,可以放上一段动画,加入声音,也可以建立交互式网页等。

二、Html语言

Html是超文本标记语言,它是一种非严格的标记语言,它是web开发的基础,也是制作网页的基础,纯html的页面是静态的。

Html它由head和body两部分组成,所写的内容一般都是放在body中,其中可以添加Form表单域,其中属性 Action表示提交的动作,也就是提交到那个页面,可表示为Action=“http://”;Method属性表示提交的方法,一般为设为post;在Form表单域中添加table表,table中的属性只有很多,常用的有width、height、align、colspan

武汉工程大学计算机科学与工程学院

生产实习报告

Mysql是一个关联数据库,它将数据保存在不同的表中,而不是将所有数据放在一个大的仓库内。这样就增加了速度并提高了灵活性。Mysql的Sql指得是“结构化查询语言”,Sql是用于访问数据库的最常用标准化语言。同时,Mysql软件也是一种“开放源码”的软件,意味着任何人都能使用和改变软件。任何人都能从Internet下载Mysql软件,而无需支付任何费用。如果愿意,你可以研究源码并进行恰当的更改,以满足你自己的需求。Mysql软件采用了GPL(GNU通用公共许可证),定义了在不同情况下可以用软件作的事和不可作的事。数据库服务器具有快速、可靠和易于使用。

Mysql服务器还有一套实用的特性集合,在基准测试主页上,给出了Mysql服务器和其他数据库管理器的比较结果。Mysql支持多种连接,包括TCP/IP、ODBC和JDBC等多种数据库连接途径,而我们此次实习用到的是JDBC数据库连接方法,这一点在下面会讲到。

此次实习我们主要学习了如何在Mysql数据库中建立表格,如何执行Sql语句等等。首先,打开Mysql编写框,执行语句show databases,即可查看Mysql中有哪些数据库,运用create+数据库名语句可建立想要的数据库,运用use+数据库名即可进入对应的数据库。

进入数据库之后,就可以执行数据库中的增、删、查、改等Sql语句了,运用create table +表名(表中所需要的元素),这样就可以建立一张表了,运用desc+表名就可以查看表,运用Sql语句“select * from +表名”就可以查看表中的所有数据,运用“insert into „„”语句可以向表中添加数据;运用“update +表 set „„ Where„„”可以更改表中指定的某项数据;运用“delete +表 where „„”语句可以删除表中的某项数据„„

四、JDBC数据库连接

Java中的JDBC,JDBC是Java Data Base Connectivity的缩写,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

连接数据库的方法有一个模板,代码如下: public class DBManager { private static final String URL=“jdbc:mysql://localhost:3306/test”;private static final String USER=“root”;private static final String PASSWORD=“123”;private static Connection conn=null;

public static Connection getConn(){ try {

if(conn==null){

//注册驱动

Class.forName(“com.mysql.jdbc.Driver”);

conn=DriverManager.getConnection(URL,USER,PASSWORD);

} } catch(ClassNotFoundException e){

e.printStackTrace();

} catch(SQLException e){

e.printStackTrace();}

return conn;} } 以后运用数据库连接基本上都是用这个模板,方便又有效,而且在其他地方连接数据

武汉工程大学计算机科学与工程学院

生产实习报告

${stu.sex}

${stu.age}

${stu.major}

删除

修改

另外还用到了两个Java类StuDAO和StuDTO,这两个类中用到JDBC技术,它们分别用以从数据库中读取数据和将数据存入到数据库中。这两个类中有很多方法,通过调用这些方法即可实现学生信息管理系统中的增、查、删、改等功能!

六、Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

Servlet生成响应内容并将其传给Server,响应内容动态生成,通常取决于客户端的请求。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法,用的比较普遍的是doPost()方法。举例如下:

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//

1、获取id

String sid=request.getParameter(“id”);

int id=Integer.parseInt(sid);

//

2、根据id查询到对应的学生信息

StuDAO sdao=new StuDAO();

StuDTO stu=sdao.queryStu(id);

//

3、将stu传递到studentModify.jsp页面显示

request.setAttribute(“stu”,stu);request.getRequestDispatcher(“studentModify.jsp”).forward(request,response);我们同样是以学习建立学生信息管理系统为例来学习Servlet的,Servlet与JSP差不多,最主要的差别是JSP是实现普通静态HTML和动态HTML混合编码的技术,Servlet则是web页面和服务器之间的连接物,而这基本上没什么区别。

在编写学生信息管理系统的时候,只不过在昨天编写的基础上,将某些JSP文件运用Servlet表示,像那些只做显示用的JSP页面不做变化,而中间有调用StuDAO中的方法的JSP页面,它们不做显示用,而是要与数据库联系起来,像这些JSP页面就可以转换成相应的Servlet,其中的代码与JSP中的几乎一样,这样处理之后,减少了页面,不过功能没有变化,更加方便了!

四、实习总结及分析

这次实习主要是学习Java Web开发方面的相关知识,主要的有JSP、Servlet、HTML,另外还有JDBC,Mysql数据库等等。

首先是JSP,它是Java Web开发的基础,需要的页面都是用JSP来建立的,它是一种

javaWeb总结+小结 篇2

1,从安装上来讲,B/S只需要在服务器端安装即可,而C/S却需要每一个客户端进行安装。2,从部署上来说,B/S只需要服务器能够支持即可,而C/S却对每一个客户端的电脑提出了要求。

3,从升级,维护角度来说,B/S只需要在服务器端升级维护即可,像网易的邮箱,而C/S却是服务器更新维护一次,客户端就要下载相关的补丁才能使用 4,从安全性来讲,B/S是基于服务器的,较之C/S安全性好

5,从本质上来说,B/S是基于请求驱动的,即客户端发送一个Http请求,然后服务器进行处理之后,响应给客户端,而C/S却是基于事件驱动的,像腾讯的QQ。

6,从耦合度来讲,B/S与服务器端耦合,而C/S却是与客户端的操作系统进行耦合。但是Client/Server(从游戏的角度来讲)较之Brows/Server具有优质的画面。

Servlet的使用步骤:

1,创建一个JAVA类,存放在com.fit.servlet包中,并且此类extends HttpServlet类,才能成为一个Servlet 2,覆写doGet()和doPost()方法

3,最后,在web.xml文件中进行Servlet配置。具体的配置如下:

Servlet类名

完整的包.类名称

Servlet类名

网页访问的名称,例如/hello Servlet的生命周期,作用,并说出和CGI(Common Gateway Interface)的区别

就是指Servlet从创建出实例对象到销毁的过程。它是一个容器,负责创建实例来接受客户端的请求,并且以多线程的方式响应给客户。具体过程如下:

Servlet被服务器实例化之后,容器运行其init方法进行初始化,请求到达时运行其service方法,在此过程中仅创建一个对象,然后service方法自动调用与请求相应的doXxx方法,当服务器决定将实例进行销毁时,再调用其destroy方法。

与CGI(通用网关接口)的区别在于,Servlet处于服务器进程中,它通过多线程的方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每一个请求都产生新的进程,服务完成后就销毁,所以效率低于Servlet 作用:可以用来进行接收客户端的请求,也可以进行请求流的控制。

Http协议:(了解)

首先它是(Hypertext Transfer Protocol)超文本传输协议。

HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下:

请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体

请求行以方法字段开始,后面分别是 URL 字段和 HTTP 协议版本字段,并以 CRLF 结尾。

应答报文格式如下:

状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体

状态码元由3位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,而原因分析用来供用户使用。客户机无需用来检查或显示语法。工作流程:

一次HTTP操作称为一个事务,其工作过程可分为四步:

首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。

建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客 户机与服务器断开连接。

Javascript的作用:

1,进行验证(通过正则表达式,在css+HTML的部分特性进行浏览器端的格式验证工作)

2,进行交互(将客户端的一个请求通过JavaScript可以发送到服务器端,也可以在浏览器端进行人机的交互,突破了以前静态页面的交互性限制)3,进行特效的处理,如走马灯,时间时钟。

Servlet生命周期:(详细)是指Servlet实例从被创建到其消失(对象销毁,回收)中间的时间及各个阶段,称之为Servlet生命周期。

前提:web服务器加载类。之后执行以下过程:

1,实例化:Servlet容器创建Servlet实例,具体就是当接收到客户端的第一次请求时,Servlet容器负责创建Servlet的一个实例。且在此过程中仅创建一个实例,通过多线程的方式响应客户端的请求

2,初始化:该容器调用init()方法。

3,服务:当请求到达时,该Servlet容器自动调用server()方法,根据客户端发送请求的方式,选择doXxx()方法执行

4,销毁:当web服务器被卸载的时候,调用destroy()方法进行对象的销毁。请看以下的一段代码: package com.fit.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Test extends HttpServlet { private static final long serialVersionUID = 1L;

public Test(){

super();

System.out.println(“===========================”);

} public void destroy(){

System.out.println(“对象被销毁!”);} public void init()throws ServletException {

System.out.println(“对象初始化!”);} protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

System.out.println(“get方法执行”);} protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

this.doGet(request, response);} protected void service(HttpServletRequest arg0, HttpServletResponse arg1)

throws ServletException, IOException {

System.out.println(“服务开始启动了!”);

super.service(arg0, arg1);}

}运行效果如下:

=========================== 对象初始化!服务开始启动了!

get方法执行

2011-7-19 12:07:04 org.apache.catalina.core.StandardContext reload 信息: Reloading this Context has started 对象被销毁!

分析原因:

1,实例化对象发生在客户端请求第一次到达的时候,而不是类被加载的时候。2,对象只被实例化一次.3,如果service()被覆写的话,则调用的时候加入super.service(arg0, arg1);这句话时候才可以清楚的调用的doXxx()方法,如果不加入此句话,那么将不会执行doGet()方法。所以一般不要覆写service()方法。只需要覆写doGet()和doPost()方法。

4,当web服务器被卸载的时候,将执行destroy()方法。进行对象的销毁!

Jsp页面构成元素,Jsp跟Html的区别,优势

Jsp定义:(Java Server Page)Java服务器端语言,组成如下: 1,静态模板:由HTML,css,JavaScript等元素构成。

2,指令:设定网页元素的属性,用于提供这个歌JSP网页的相关信息。

3,脚本元素--声明:<%!...%>,在此之中可以进行变量,常量的定义,类,方法都可以声明,但是一般不用。

4,脚本元素--Java脚本:<%...%>,在此期间可以进行Java代码的拼写。5,脚本元素--表达式:<%=..%>,用于表达式输出时使用。

6,动作:利用JSP动作可以重用JavaBean组件,可以动态的包含页面,也可以进行服务器端的跳转(即将用户的请求转发给其他的页面)。7,注释:

--HTML注释:,此种注释可以在页面中看到,成为客户端注释。--Jsp注释:<%----%>,此种注释在页面中看不到,也成为服务器端注释。--Java注释:

单行注释:// 多行注释:/*„„„*/ Jsp优点:使用HTML,CSS等技术构建页面的模板部分,用Java语言根据用户的输入动态生成可变的内容部分。既可以实现HTML控制页面布局,也亦可以实现Servlet的功能,实现了内容与表示分离。Jsp的常见指令,并说出静态包含和动态包含的区别

Page指令:<%@ page language=”java” import=” 完整的包.类名称” autoFlush=”true[false]” errorPage=”文件名” isErrorPage=”false[true]” isThreadSafe(设置是否能多线程使用)contentType=”text/html;charset=ISO-8859-1” %> 包含指令:<%@ include file=”文件名”%> taglib指令:此指令用于在Jsp页面中引入用户自定义的标签库。例如: <@% taglib url=http://java.sun.com/jsp/jstl/core prefix=”c”%> 静态包含跟动态包含的区别:

<%@ include file=”文件名%>,此包含属于静态包含,是指先将文件包含进来然后在进行编译,编译后生成的class文件中,被包含的文件在静态块中。且此种包含不允许带参数。

此种包含属于动态包含,先解释再包含进来结果,即只有在客户端进行请求时才会被动态的编译载入,在生成的class类中,它被请求一次就被创建一次。且此种被包含页面可以取得包含它的页面的参数。

Jsp常见的动作,调用JavaBean相关:

,调用此动作,可以用于实例化JavaBean,或者定位一个已经存在的JavaBean的实例,并把实例的引用赋给一个变量。

,通过这个动作可以取得JavaBean对象的属性

或者通过此动作,可以用来设置JavaBean的简单属性和索引属性,此动作的name属性必须与总的id属性相匹配。当JavaBean的属性名与请求参数名相同的情况下,可以使用property=“*”的方式为多个JavaBean的属性同时赋值,如: jsp页面通信:

:此动作用来在当前Jsp包含动态和静态文件的输出结果,可以和配合使用,向嵌入的Jsp页面传递参数

:此动作用来从当前Jsp页面转向其他页面,并传递Request对象,response对象,该标签后面的代码将不会被执行。Jsp的内置对象,四种作用域的通信对象的范围

输入/输出对象

request:表示客户端对网页的请求

response:用于处理Jsp生成的响应,使用Http协议将响应发送给客户端。

out:表示从response中取得的输出流。常用的方法有write(),print(),println()等,用于在页面中输出文本形式的响应内容 作用域通信对象

pageContext:此通信对象的作用域仅在当前页面有效,一旦跳转则不可用

request:此通信对象的作用域针对的同一个客户的请求,如果不是同一个请求则不可以使用

session:此通信对象的作用域适用于一次会话,即打开的同一个浏览器的所有页面都可以适用

application:此通信对象的作用域适用于基于WEB服务器的所有会话,适用于监听器 Servlet对象

page:指向当前Jsp页面经过转译(jsp.java文件),编译(.java文件.class文件)后的对象本身,即编译后的Servlet对象本身

config:是在一个Servlet初始化时,服务器向它传递的初始化信息。初始化信息可以在web.xml中找到。错误对象

execption:表示Jsp页面运行时抛出的异常对象,可以在专门准备的错误处理页面中访问这个异常对象。

Jsp执行过程:

jsp文件转译:当客户端请求一个正确的Jsp文件时,将Jsp—>.java文件(即将Jsp文件翻译成相应的Servlet类的源文件)编译:.java文件.class文件,即将Servlet类的源文件进行编译成为.class的Servlet文件。调用Servlet的service()方法响应用户的请求。

描述Jsp和Servlet的区别,共同点,各自的应用范围:

1,从发展上来看,Jsp可以避开Servlet的输出页面的繁琐步骤,它集合了HTML和Servlet的优点。

2,从本质上来说,Jsp是Servlet的扩展,它是Servlet的简易形式。Jsp经过转译之后就成为了类Servlet。

3,从创建方式上来说:Jsp由HTML代码和JSP标签构成,而Servlet则完全是由程序代码构成擅长于流程控制和事务处理的类

4,从使用角度来说:在MVC中,Jsp担任的是VIEW层,侧重于视图,而Servlet则充当的控制层,侧重于控制逻辑。请求转发和重定向

 response.sendRedirect():利用response对象向客户端发回一个响应指示其访问其他URL资源,或者说是一个web组件向另一个web组件发送一个新的请求,属于重定向,地址栏有变化。且不可以传递属性request参数,当所有的代码执行完之后才进行重定向。

request.getRequestDispatcher().forword(req,resp):web组件将一个请求转发给另一个web组件,他们始终是同一个请求,在此期间可以传递request属性参数,地址栏没有变化。且一执行到此代码处,后边的将不再执行

JavaBean的组成:

类必须是具体的,公共的。提供无参数的构造方法

javaWeb学习[小编推荐] 篇3

2010-12-14 22:51

Session(会话)

Session对象

1、存在于服务器端

2、依赖于线程

3、Session的生命周期,跟一次浏览器窗口有关,只要窗口不关闭,Session便存在,所以称会话。

Session1、技术内核使用cookie:

session参在与服务器端

服务器端为多个session创建不同的session id

把session id以cookie的形式送入到客户端

request.getSession()内涵是:在cookie中查找

session id,若cookie中存在sessionId,则根据

sessionId,将sessionID对应的session找到,并返回;若cookie中并不存在sessionID,服务器端创建session,并将sessionID写入到Cookie中。

2、当关掉对话窗口(结束一次会话)时,session并没有被删除,只是关掉对话窗口时,cookie被清空

无法再获得sessionID,无法找到对应的session,但是session还是存在于服务器端。

若想真正删除session,需要调用HttpSession中的invalidate()方法,使得session失效。

3、服务器为了考虑效率,不会让无用的session存在很久,Http协议是无连接协议,服务器端无法判断客户端是否关闭“会话”,所以服务器设置了失效时间。若用户在了段时间内,不操作session,则系统删除session。

我们可以设置此时间setMaxInactiveInterval(),但不推荐用户自行设置。

4、session技术在很大程度上,依赖于Cookie,若Cookie被禁用,或浏览器不支持Cookie,则session就无法使用。

5、为了解决第四点所引申的session不可用的问题。我们使用URL重写,将sessionID通过地址栏提交参数,发给服务器端。

使用response.encodeURL()在地址栏中加载sessionID通过

request.getParameter(jsessionid)得到sessionID

a、String url encodeURL(String url);通过超链接,重新发出请求,此请求会在地址之后自动加上sessionID及其ID值,此方法又被子称为URL重写,或重新封装。

b、String url encodeRedirectURL(String url);将地址封装成sendRedirect方法所需要的地址,并在此地址后加入sessionID

Servlet API小结:

HttpServletRequest:接口

1、setAttribute()、getAttribute()、getAttributeNames

getParameter()//只能获得表单中的内容

2、getCharacterEncoding()、setCharacterEncoding()

获得、设置request中的数据编码方式

3、getContentType()得到MIME,即IE文件打开的方式

4、Cookie[] getCookies()

得到当前所有的cookie5、getSession()

获得或创建session6、getRequestDispatcher(String path)将目标页面封装,为了forward()进行页面转向。

7、getRequestedSessionId()得到一个session的id

总结:

request对象封装了客户端的请求和相关信息。

包括:

1、cookie2、封装http协议的报头(请求方式、请求服务器的端口、请求服务器ip地址、编码方式、请求的项目用的名字、请求消息的长度、浏览器的信息、客户端信息„„)

3、表单数据

HttpServletResponse:接口(响应)

用它跟客户端联系,并且向客户端发送数据

1、getCharacterEncoding()得到向客户端发送数据的默认编码方式。

2、getContentType()得到向客户端发送数据的默认类型(html或者jpeg等等)。

3、getOutputStream()得到与客户端建立的输出字节流,传输二进制。

4、getWriter()得到与客户建立的输出字符流,传输文本文件。

5、setCharacterEncoding()设置的是要发送给客户端的数据的编码方式。

6、setContentType(String type)设置并告知客户端,执行这些二进制时,用何种类型打开(html、jpeg等等)。

7、addCookie(Cookie cookie)将cookie的键和键值成对的送到客户端

8、一些的set方法用来指定客户端运行时的一些属性。例:缓存、打开方式、消息头的控制等等

9、encodeURL(String url)、encodeRedirectURL(String url)**在地址后追加session的id,用来实现cookie被禁用后,session依然可以使用。

10、sendRedirect(String location)页面的重定向

Cookie:类

1、Cookie(String name,String value)创建Cookie并将键,键值,存入到Cookie中

2、getMaxAge(int)设置Cookie的生命服周期,当参数是负数时:窗口(会话)被关掉时,清空Cookie3、getName()获得Cookie中的键

4、getValue()获得Cookie中的健值

HttpSession:接口

1、getAttribute(String name)、setAttribute(String name)

2、getId()获得session的唯一标识id3、getMaxInactiveInterval()、setMaxInactiveInterval()得到和设置session的失效时间

4、invalidate()使得session失效

5、isNew()布尔类型,判断session是否是新创建的HttpServlet:类

1、doGet(HttpServletRequest req,HttpServletResponse resp)

当用户以get方式发出请求时,servlet调用此方法

2、doPost(HttpServletRequest req,HttpServletResponse resp)当用户以post方式发出请求时,servlet调用此方法

3、public void init()throws ServletException

用户第一次请求servlet的时候,容器需建立servlet对象,同时调用init()方法

4、service(ServletRequest req,ServletResponse res)

开辟多线程,并根据用户提交的方式,选择调用doGet()还是doPost()方法

JavaWeb工程师笔试题题目 篇4

1) JSP注释标记

2) HTML注释

3) JAVA注释 // /星符号/

请分别对它们简单描述一下

2. JSP的page指令常见的属性都有哪些?

Language, contentType, import, errorPage, isErrorPage, extends, session, info, isThreadSafe, buffer, autoflush

3. 假设需要在一个JSP页面里导入java.util.List, java.util.ArrayList, java.io.File,语句应该怎么写?

5. JSP的include指令和include操作有什么区别?

1) 语法结构不同

2) include指令更适合于包含静态页面, include操作更适合于包含动态页面

3)include操作还带有参数 flush=”true|false”

6. 请分别描述一下forward和redirect的区别

1) 使用forward浏览器地址栏不变,redirect浏览器地址栏会改变

2) Forward效率较高

3) Forward可以使用request.getAttribute获取数据,而redirect不可以

7. 在Servlet和JSP里是如何实现 forward和redirect的? 例如要跳转去一个test.jsp页面。

//Servlet

RequestDispatcher rd = this.getServletContext.

getRequestDispatcher(“/test.jsp”);

rd.forward(request, response);

response.sendRedirect(“/test.jsp”);

//JSP

response.sendRedirect(“/test.jsp”);

8. jsp主要内置对象有?

request、response和out,还有exception、session、application、config、pageContext和page

9. 在JSP里,我们可以怎样获取来自客户端请求的IP地址?

Request.getRemoteAddr;

10. 有一个用户名 test, 密码 12345, 请编写一段创建COOKIE的JSP代码, 然后再编写一段读取COOKIE的JSP代码, 在页面上将COOKIE的信息显示出来。

String str = “username= test&password=12345”;

Cookie cookie=new Cookie(“mycookie”, str);

response.addCookie(cookie);

Cookie cookies=request.getCookies;

For(int i=0;i< cookies.length;i++){

Out.print(cookies.getName+”=”+ cookies.getValue);

javaweb实习报告 篇5

下面是一个简单的EJBClient.java代码

packagecom.zuijiajiao.Servlab.HelloWorld.test;

importjava.util.Properties;

importjavax.naming.InitialContext;importjavax.naming.NamingException;

importcom.zuijiajiao.Servlab.HelloWorld.HelloWorld;

publicclassEJBClient {

} publicstaticvoid main(String[] args){

} Properties props = newProperties();

props.setProperty(“java.naming.factory.inital”,“org.jnp.interfaces.NamingContextFactory”);props.setProperty(“java.naming.provider.url”, try {

InitialContextctx = newInitialContext(props);HelloWorld helloWorld =(HelloWorld)ctx.lookup(“HelloWorldBean/remote”);

“localhost:1099”);System.out.println(helloWorld.sayHello(“电子科大”));} catch(NamingExceptione){

} // TODO: handle exception

System.out.println(e.getMessage());其中,红色突出部分代码就是用于设置JNDI的上下文信使。

props.setProperty(“java.naming.factory.inital”,这句代码用于设置JNDI的链接工厂,第一个参数,是固定的写法,有JNDI规范所规定,第二个参数就是JBoss的链接工厂; 于是,JNDI通过这个链接工厂就可以和JBoss进行通信了;

props.setProperty(“java.naming.provider.url”, “localhost:1099”);这句代码用于设置命名服务器的链接URL 第一个参数是固定的写法,有JNDI规范所规定,第二个参数就是JBoss的连接字符串 JNDI通过JBoss的连接字符串就可以知道JBoss它所在的地址,还有它所使用的端口号

“org.jnp.interfaces.NamingContextFactory”);如果访问不同的服务器,那两句代码设置的参数值也是不一样的设置完JNDI的上下文信息后,就可以调用它的lookup方法,根据EJB的JNDI名称(“HelloWorldBean/remote”),去寻找与这个名称绑定(Bind)的EJB代理存根对象,找到代理存根对象之后,他就可以返回到客户端(Client)。在客户端,通过接口文件去引用这个代理存根对象

HelloWorld helloWorld =(HelloWorld)ctx

.lookup(“HelloWorldBean/remote”);通过这个这个代理对象(helloWorld)就可以调用EJB的业务方法。

疑问:如何知道EJB的JNDI名称?

速度当EJB部署到JBoss应用服务器的时候,JBoss服务器可以为EJB默认生成一个JNDI名称

默认生成JNDI名称的规则

注意事项:

Properties props = newProperties();

props.setProperty(“java.naming.factory.inital”,“org.jnp.interfaces.NamingContextFactory”);props.setProperty(“java.naming.provider.url”, “localhost:1099”);用这种方式来设置JNDI的上下文信息,属于“硬编码”设置,也可以通过一个属性文件(xxx.properties)来设置JNDI的上下文信使

通过属性文件来设置JNDI的上下文信使的方法:

在项目的类路径下建立一个名叫JNDI的属性文件(JNDI.properties)(也可以在源目录(src)下建,因为在源目录下建也是可以编译到项目的类路径下)JNDI属性文件代码如下

java.naming.factory.inital = org.jnp.interfaces.NamingContextFactory java.naming.provider.url = localhost:1099

有了属性文件之后,代码就可以这样写了

packagecom.zuijiajiao.Servlab.HelloWorld.test;

importjava.util.Properties;

importjavax.naming.InitialContext;importjavax.naming.NamingException;

importcom.zuijiajiao.Servlab.HelloWorld.HelloWorld;

publicclassEJBClient {

}

原理:

InitialContextctx = newInitialContext();

在new InitialContext这个对象的时候,在InitialContext的构造函数内部他在项目的类路径下寻找这个属性文件 publicstaticvoid main(String[] args){

} try {

InitialContextctx = newInitialContext();HelloWorld helloWorld =(HelloWorld)ctx.lookup(“HelloWorldBean/remote”);

System.out.println(helloWorld.sayHello(“电子科大”));} catch(NamingExceptione){

} // TODO: handle exception

上一篇:高中地理学习的经典口诀下一篇:创新思维方式有哪些