2024年5月6日发(作者:)

Java Web 试卷

一、选择题:

1.在JSP中使用标记时,不会出现的属性是()

ty D.<以上皆不会出现>

2.J2EE中,()类的()方法用于创建对话。

rvletRequest , getSession;

rvletRequest , NewSession;

ssion , newInstance;

ssion , getSession;

3.以下()中可用于检索session属性userid的值 ()

A. ribute(“userid”) ;

B. ribute(“userid”) ;

C. ametar(“userid”) ;

D. ribute(“userid”)

4.在J2EE中以下对cher描述正确的是()

A. JSP中有一个隐含的对象diapatcher,它的类型是cher ;

B. ServletConfig 有一个方法,getRequestDispatcher可以取回che对象;

C. che有一个方法,forward可以把请求继续传递给别的servlet或者JSP界面;

D. JSP中有个隐含的默认对象request,它的类型是Request. Dispatchet

5.在J2EE中在servlet中的doGet和doPost方法中只有如下代码:()

ribute(”jb” , “aPtech”);

direct(“localhost:8080/servlet/servlet2” );

那么在servlet2中使用()可以把属性jb的值取出来。

A. String str = ribute(“jb”);

B. String str = (string)ribute(“jb”);

C. Object str = ribute(“jb”);

D.取不出来

6.给定一个servlet的代码片段如下:()

public void doGet (HttpServletRequest request , HttpServletResponse response)

throws servlet Exception ,IOException{

__________

n(“hi ketty !”);

}

运行一次servlet时输出如下:hi ketty ! 则应在此Servlet下划线处填:

A. PrintWriter out = ter();

B. PrintWriter out = ter();

C. OutrutStream out = utStream();

D. OutputStream out = ter();

7.在servlet过滤器的生命周期方法中,每当传递请求或响应时,web容器会调用()方法

t er y

8.在J2EE中,对于Httpservlet类的描述,错误的是()

A. 我们自己编写的Servlet继承了Httpservlet类,一定需要覆盖doPost或者doGet;

B. Httpservlet类拓展了GenerleServlet类,实现了GenericServlet类的抽象方法;

C. HttpServlet类中处理客户请求和响应时所使用的两个接口是:HttpServletRequest和

HttpServletResponse;

D. 我们自己编写的servlet继承了HttpServlet类,一般只需要覆盖doPost方法,不必覆盖servlet

方法,因为一个Servlet()方法会调用doPost或者doget方法;

t中,HttpservletResponse的()方法用来把一个Http请求重定向到另外的URL。

A. send URL() B. redirect URL() C. send Redirect () D. redirectResponse()

10. Http是一个()协议。

A. 无状态 B. 有状态 C. 状态良好 D. 局域网

11. Http协议的状态码()表示文件没有创建。

A.200 B.400 C. 500 D. 404

12. 在JSP中,<% = “1+ 4”%> 将输出()

A. 1+4 B. 5 C. 14 D. 不会输出,因为表达式错误

13. 以下代码执行效果为():

A. 1 2 3 4 5 B. 1 3 5 C. i i i D.15

14. 在JSP中,若要在JSP正确使用标签:,在jsp中声称的taglib指令为:

<%@ taglib url = “/WEB-INF/” prefix=”___”%>下划线处应该是()

A. x g D. king

二、填空题:

1. 从Http请求中,获得请求参数,应该调用 ( ameter() )方法。

2. 文件中有如下一行代码,要使user对象可以作用于整个应用程序。

3. EL 表达式的语法:( ${ 表达式 } )

4.核心标签中,用来实现语句控制功能的标签是:< c: if >

5.某JSP有如下代码,显示结果为( 123 )

<%

int a =5 ;

ribute(“a”, “1 2 3”);

ribute(“a”, “4 5 6”);

%>

6.核心标签库中用来实现循环功能的标签是:

7.在J2EE中,使用Servlet过滤器,需要在 中配置

8. JSP EL表达式:${ ame}执行效果等同于: <%=inName()%>

三:简答题(每小题5分,共8题,总计40分)

1. 简述什么是servlet生命周期?

答:Servlet程序是运行在服务器端的一段Java程序,其生命周期将受到Web容器的控

制。生命周期包括加载程序,初始化,服务,销毁,卸载5 个部分。

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service

方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实

例销毁的时候调用其destroy方法。

2. 什么是监听器?举例说明建立和使用监听器的步骤。

监听器就是监听一些对象和属性等的增加、修改和删除,一旦监听到相应事件就会触

发某种活动,做出相应处理。

建立:

1、打开Web应用的部署描述文件

2、增加事件声明标记。事件声明定义的事件监听类在事件发生时被调用。

标记必须在标记和标记之间。可以为每种事件定义多

个事件监听类,Apusic应用服务器按照它们在部署描述文件声明的顺序监听。

使用:

1、创建新的类并实现事件对应的接口

2、定义不接受参数、访问属性为public的构造函数

3、实现接口的方法

4、编译并拷贝到对应Web应用的WEB-INF/classes目录下,或者打包成jar文件

拷贝到WEB-INF/lib目录下

3. 什么是Filter?举例说明Java Web 项目中使用filter的步骤

Filter可认为是Servlet的一种“加强版”,它主要用于对用户请求进行预处理,也可

以对HttpServletResponse进行后处理,是个典型的处理链。Filter也可以对用户请求

生成响应。

步骤:1. void setFilterConfig(FilterConfig config) //设置filter 的配置对象;

2. FilterConfig getFilterConfig() //返回filter的配置对象;

3. void doFilter(ServletRequest req,ServletResponse res,FilterChain chain) //执行filter

的工作

4.简介使用JDBC的步骤?

答:1.加载驱动程序

e(”");

2.建立连接

Connection conn = nection("jdbc:mysql/localhost:3306/”mldn","用户名

","密码")

3 执行操作;

4 关闭数据库连接

5简述JSP指令元素(page include)

答:Page指令用于设置JSP页面的属性,这些属性将用于和JSP容器通信,控制所生成的

servlet结构。形式:<%@ page %>

include指令JSP页面中用以包含其它页面的命令。

有两种:<%@ include file=” ”%>(指令元素)

(动作元素)

taglib指令:声明用户使用的自定义标签。

声明用户使用自定义的标签,将标签库描述符文件导入到jsp页面。

6.简述JSP 9个内置对象。

答::ter页面输出

t (rvletrequest)得到用户的请求信息

se(响应 rvletResponse)服务器向客户端的回应信息

n(会话 ssion)用来保存每一个用户的信息

ntext(ntext) jsp的页面容器

ation(应用程序 tContext)表示所有用户的共享信息

(tConfig) Servlet的配置信息,可取得初始化参数

(当前JSP的实例,)从页面表示出来一个servlet实例

它代表JSP被编译成Servlet,可以使用它来调用Servlet类中所定义的方法

ion(运行时的异常,ble)被调用的错误页面的结果,只有在错误页

面中才可使用,

7. 什么是EL表达式?什么是JSTL?简述JSTL的核心标签。

EL表达式(Expression Language):是jsp2.0新增功能,可以方便的访问标志位中的属性内

容。JSTL是一个不断完善的开放源代码的JSP标准标签库,包含两个部分:标签库和EL

语言,它是一个实现Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代

和条件判断、数据管理格式化、XML操作以及数据库访问。

JSTL 核心标签库标签:

1.表达式控制标签:

2.流程控制标签:

3.循环标签:

操作标签:

8.定义一个Student类,有姓名、年龄、性别、属性,把多个Student实例放入List中,要求

标签循环显示Student内容。

(1)导入JSTL的jar包,(导入到WEB-INF/lib)且将核心文件copy到WEB-INF下)

(2)代码如下:

:

public class Student{

}

<%@ page import=".*" %>

<%@ page import=".*" %>

<%@ taglib uri="/WEB-INF/" prefix="c" %>

<%@ page import=".*" %>

Insert title here

private String name ;

private int age;

private String sex;

public Student(){}

public Student(String name, int age, String sex) {

}

public String getName() {

}

public void setName(String name) {

}

public int getAge() {

}

public void setAge(int age) {

}

public String getSex() {

}

public void setSex(String sex) {

}

= sex;

return sex;

= age;

return age;

= name;

return name;

super();

= name;

= age;

= sex;

%>

<%

List list = new ArrayList();

Student student1 = new Student("刘鹏",20,"男");

Student student2 = new Student("裴柏军",20,"女");

(student1);

(student2);

ribute("ref",list);

${e()}、${()}、${()}

试卷二

一 选择题

1 J2EE中,()类的()方法用于创建对话。

A HttpservletRequest , getsession

B HttpservletResponse, newsession

C HttpSession , newInstance

D HttpSession , getSession

2 给定一个Servlet的doGet方法的代码片段,如下

ribute(“name”, “zhang”);

direct(“localhost:8080/servlet/Myservlet”);

那么在Myservlet中可以使用(0方法把属性name的值取出来

A String str = ribute(“name”);

B String str = (String)ribute(“name”);

C Object str = ribute(“name”);

D 无法取出来

3 编写servlet的doPost方法时,需要抛出异常为

A servletException, IOException;

B servletException, RemoteException;

C HttpservletException, IOException;

D HttpservletException, RemoteException;

4 以下()可用于检索session属性userid

A ribute(“userid”);

B ribute(“userid”);

C ameter(“userid”);

D ribute(“userid”);

5 在J2EE中,以下对RequestDispatcher描述正确的是()

A JSP中有个隐含的对象diapatcher,它的类型是RequestDispatcher;

B Servletconfig有个方法,getRequestDispatcher可以返回RequestDipatcher对象;

C RequestDispatcher有个方法,forward可以请求继续传递给别的Servlet或者JSP界面;

D JSP中有个隐含的默认对象request,它的类型是RequestDipatcher

6 在web应用程序的目录结构中,在WEB-INF文件夹外的文件为

A jsp文件 B class文件 C jar文件 D 文件

7 给定一个servlet程序代码片段,如下()

Public void doPost (HttpservletRequest request, HttpservletResponse, response)

throws servletException,IOException{

sion().getAttribute(“A”); //第二行

}

假设第二行返回的对象引用不是null,那么这个对象存储在()范围中

A page B session C request D application

8 给定一个servlet的代码片段如下:()

Public void doGet (HttpservletRequest request, HttpservletResponse, response)

throws servletException,IOException{

____________

n(“hi, kitty!”);

(); }

运行此servlet时输出如下:hi Kitty!

则在此servlet下划线处填充如下代码

A PrintWriter out = ter();

B PrintWriter out = ter();

C OutPutStream out = putsream();

D OutPutStream out = ter();

9 在J2EE中,对于Httpservlet类的描述错误的是()

A. 我们自己编写的Servlet继承了Httpservlet类,一定需要覆盖doPost或者doGet;

B. Httpservlet类拓展了GenerleServlet类,实现了GenericServlet类的抽象方法;

C. HttpServlet类中处理客户请求和响应时所使用的两个接口是:HttpServletRequest和

HttpServletResponse;

D. 我们自己编写的servlet继承了HttpServlet类,一般只需要覆盖doPost方法,不必覆盖servlet

方法,因为一个Servlet()方法会调用doPost或者doGet方法;

10 给定其servlet程序的片段如下,用户在浏览器地址栏中键盘键入正确的请求URL,并回

车后,在控制台上显示的结果是()

Public void doGet (HttpservletRequest request, HttpservletResponse, response)

throws servletException,IOException{

n("get");

}

Public void doPost(HttpServletRequest request,HttpServletResponse response)

Throws servletException, IOException{

n(“post”);

}

A get B post C get post D post get

11在 J2EE中,重定向带另一个页面,以下()语句是正确的

A direct (“Http://”);

B direct();

C direct(“Http://”);

D direct();

12 J2EE中,servlet API为使用Cookie 提供了()类

A

B

C

D

13.在JSP中,以下的page指令设置了使用的脚本语言是Java,且导入了.*和*

包,正确的是(D)

A.<%@ page Language=”Java” , import=”* ; .*” %”>

B.<%@ page Language=”Java” import=”.* ; *” %”>

C.<%@ page Language=”Java” ; import=”.*”; *”%”>

D.<%@ page Language=”Java” import=”.* , .* “% >

14.在JSP中,test,jsp文件如下,试图运行时,将发生(D)

<% String str=null;%>

Str is <%=str%>

A,转译器有误 B,编译servlet源码时发生错误

C,执行编译后的servlet发生错误 D,运行后,浏览器显示:str is null

15.从Http请求中,获得请求参数,应该调用()

A,request对象的getAttribute()方法 B,request对象的getParameter()方法

C,Session对象的getAttribute()方法 D,Session对象的getParameter()方法

16.在一个Filter中,处理fliter业务的是()

A,dealFilter(servletRequest request,ServletResponse response,FilterChain chain)

B,dealFilter(servletRequest request,ServletResponse response)

C,doFilter(ServletRequest request,servletResponse response,Filter Chain chain)

D,doFilter(ServletRequest request,ServletResponse response)

17.在J2EE中,给定某servlet代码如下,编译运行该文件,以下陈述正确的是(B)

Public class servlet extends Httpservlet{

Public void init() throws ServletException{}

Public void service(HttpservletRequest resquest,HttpservletResponse response )

Throws servletException IOException{

printWriter out=ter();

n(“hello”);

}

}

A,编译该文件时会提示缺少doGet或者doPost()方法,编译不能成功通过

B,编译后,把放在正确位置,运行该servlet,在浏览器中会看到输出文字,hello!

C,编译后,把放在正确位置,运行该servlet,在浏览器中看不到任何输出的文

D,编译后,把放在正确位置,运行该servlet,在浏览器中会看到运行期错误信

t可以在以下()三个不同的作用域存储数据

A. 请求、会话和上下文 B. 响应、会话和上下文

C. 请求、响应和会话 D. 请求、响应和上下文

19.J2EE中,servlet API为使用cookie,提供了()类

A, B,okie

C, D,okie

20 在JSP页面中,保存数据的范围由小到大依次是()

A pageContext,request,application,session;

B pageContext,application ,session,request;

C pageContext,request,session,application

D pageContext,session,request,application

21. 在Servlet过滤器的生命周期方法中,每当传递请求或响应时,web容器会调用()方法

(选择一项)

A. Init B. Servlet C doFilter D destroy

22. Servlet中,HttpServletResponse的()方法用来把一个Http请求重定向到另外的URL。

A sendURL() B redirectURL() C sendRedirect() D redirectResponse()

23 在JSP中,page指令的()属性用来引入需要的包或类()

A extend B import C language D contentType

24 在JSP页面中,等效于HttpServletResponse的内置对象是()

A out B response C request D config

25 在JSP页面中,能够完成输出操作的内置对象是()

A out B response C request D congfit

26 编写一个Filter,除继承HttpServlet类外还需要继承()

A 继承Filter类

B 实现Filter接口

C 继承HttpServlet类

D 实现HttpServlet类接口

27 在WEB应用程序的目录结构中,在WEB-INF文件夹中的lib目录是放()文件的

A jsp文件

B class文件

C jar文件

D 文件

28 Servlet程序的入口点是()

A init B main C servlet D doGet

29 在J2EE中,在中,有如下代码:

30

上述代码定义了默认的会话超长时长,时长为30()

A毫秒 B秒 C分钟 D小时

二 填空题

1 Struts 2 框架由( WebWork )和( XWork )框架发展而来。

2 Struts 2 以( 过滤器 )为核心,采用( 拦截器 )的机制来处理用户的请求。

3 ActionSupport 类实现了( Action )接口和( ValidationAware )等接口。

4 通过控制器类中的( validate )方法来输出校验错误信息。

三/简答题

1 MVC三层分别代表什么?

答: 模型层(Model):完成一个独立的业务操作组件,一般都是以JavaBean或者EJB的

形式进行定义的。

显示层(view):主要负责接收Servlet传递的内容,并且调用JavaBean,将内容显示

给用户。

控制层(Controller):主要负责所有的用户请求参数,判断请求参数是否合法,根据

请求的类型调用JavaBean执行操作并将最终的处理结果交由显示层进行显示。

2 简述SERVLET中doPost和doGet的区别?

答:首先判断客户端发送HTTP请求使用的是get方法还是post方法,如果使用get方法时

就调用doGet()方法,如果使用post方法时就调用doPost()方法

doGet调用用于获取服务器信息,并将其做为响应返回给客户端。Get调用在URL里显示正

传送给servlet的数据,不安全。get只有一个流,参数附加在url后,大小个数有严格限制

且只能是字符串。

doPost用于客户端把数据传送到服务器端,也会有副作用。但好处是可以隐藏传送给服务器

的任何数据,Post适合发送大量的数据。post的参数是通过另外的流传递的,不通过url,

所以可以很大,也可以传递二进制数据。

四/附加题

1. 给一个数据库表EMP,子段分别为ENO,ENAME,SALARY,DNO,用JDBC连接

MySQL数据库并向数据库中插入代码?(写出连接代码)

Public static final String DBDRIVER=””;

Public static final String DBURL=”jbdc:mysql://localhost:3306/EMP”;

Public static final String DBUSER=”root”;

Public static final String DBPASS=”mysqladmin”;

Connection conn = null;

Statement stmt = null;

String sql = “insert into EMP(ENO,ENAME,SALARY,DNO)

Values(1,’gaofeng’,100000,1)”;

e(DBDRIVER);

Conn = nection(DBURL,DBUSER,DBPASS);

stmt = statement();

stmt = executeUpdata(sql);

();

();