JavaWeb期末考试题必过宝典

时间:2024.3.31

JAVAWEB

 


 


JavaWeb考试题

1、说出Servlet 的生命周期,并说出Servlet 和CGI 的区别? 【基础】

答:Web 容器加载Servlet 并将其实例化后,Servlet 生命周期开始,容器运行

其init 方法进行Servlet 的初始化,请求到达时运行其service 方法,service

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

定将实例销毁的时候调用其destroy 方法。与cgi 的区别在于servlet 处于服务

器进程中,它通过多线程方式运行其service 方法,一个实例可以服务于多个请

求,并且其实例一般不会销毁,而CGI 对每个请求都产生新的进程,服务完成后

就销毁,所以效率上低于servlet。

2、Servlet 的基本架构。【基础】

答:public class ServletName extends HttpServlet {

public void doPost(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

}

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

}

}

4、JSP 中动态INCLUDE 与静态INCLUDE 的区别?【基础】

答:动态INCLUDE 用jsp:include 动作实现<jsp:include page="included.jsp"

flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并

且可以带参数;静态INCLUDE 用include 伪码实现,它不会检查所含文件的变化,

适用于包含静态页面<%@ include file="included.htm" %>

6、JSP 的内置对象及方法?【基础】

答:request 表示HttpServletRequest 对象。它包含了有关浏览器请求的信息,

并且提供了几个用于获取cookie, header 和session 数据的有用的方法。

response 表示HttpServletResponse 对象,并提供了几个用于设置送回浏

览器的响应的方法(如cookies,头信息等)。

out 对象是javax.jsp.JspWriter 的一个实例,并提供了几个方法使你能用

于向浏览器回送输出结果。

pageContext 表示一个javax.servlet.jsp.PageContext 对象。它是用于方

便存取各种范围的名字空间、servlet 相关的对象的API,并且包装了通用的

servlet 相关功能的方法。

session 表示一个请求的javax.servlet.http.HttpSession 对象。Session

可以存贮用户的状态信息。

application 表示一个javax.servle.ServletContext 对象。这有助于查找

有关servlet 引擎和servlet 环境的信息。

config 表示一个javax.servlet.ServletConfig 对象。该对象用于存取

servlet 实例的初始化参数。

page 表示从该页面产生的一个servlet 实例。

7、JSP 的常用指令?【基础】

答:<%@page language=”java” contenType=”text/html;charset=gb2312”

session=”true” buffer=”64kb” autoFlush=”true” isThreadSafe=”true”

info=”text” errorPage=”error.jsp” isErrorPage=”true” isELIgnored=”

true” pageEncoding=”gb2312” import=”java.sql.*”%>

isErrorPage:是否能使用Exception 对象;isELIgnored:是否忽略EL 表达式;

<%@include file=”filename”%>

<%@taglib prefix=”c”uri=”http://……”%>

8、jsp 有哪些动作?作用分别是什么? 【基础】

答:JSP 共有以下6 种基本动作:

jsp:include:在页面被请求的时候引入一个文件;

jsp:useBean:寻找或者实例化一个JavaBean。;

jsp:setProperty:设置JavaBean 的属性。;

jsp:getProperty:输出某个JavaBean 的属性;

jsp:forward:把请求转到一个新的页面;

jsp:plugin:根据浏览器类型为Java 插件生成OBJECT 或EMBED 标记。

9、jsp 有哪些内置对象?作用分别是什么? 【基础】

答:JSP 共有以下9 种基本内置组件(可与ASP 的6 种内部组件相对应):

request:用户端请求,此请求会包含来自GET/POST 请求的参数;

response:网页传回用户端的回应;

pageContext:网页的属性是在这里管理;

session:与请求有关的会话期;

application:servlet 正在执行的内容;

out:用来传送回应的输出;

config:servlet 的构架部件;

page:JSP 网页本身;

exception:针对错误网页,未捕捉的例外。

10、get 和post 的区别?【基础】

答:Form 中的get 和post 方法,在数据传输过程中分别对应了HTTP 协议中的

GET 和POST 方法。二者主要区别如下:

1)Get 是用来从服务器上获得数据,而Post 是用来向服务器上传递数据;

2)Get 将表单中数据按照variable=value 的形式,添加到action 所指向的

URL 后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post 是将

表单中的数据放在form 的数据体中,按照变量和值相对应的方式,传递到action

所指向URL;

3)Get 是不安全的,因为在传输过程,数据被放在请求的URL 中;Post 的

所有操作对用户来说都是不可见的;

4)Get 传输的数据量小,这主要是因为受URL 长度限制;而Post 可以传输

大量的数据,所以在上传文件只能使用Post;

5)Get 限制Form 表单的数据集必须为ASCII 字符,而Post 支持整个ISO10646

字符集;

6)Get 是Form 的默认方法。

11、什么情况下调用doGet()和doPost()?【基础】

答:Jsp 页面中的form 标签里的method 属性为get 时调用doGet(),为post

时调用doPost()。

12、如何从form 表单中得取checkbox 的值;【基础】

答:可在页面把checkbox 的name 属性取同一个,value 属性取每个条目的id,

后台用getParamter(“name”)能取到checkbox 的一组值。

13、页面中有一个命名为bank No 的下拉列表,写脚本获取当前选项的索引值。

答:用java 或javaScript 的处理方式分别如下:

Java: request.getParameter(“bank No”);

javaScript:

var selectItems = document.getElementsByName(“bank No”);

selectItems[0].value;

14、javascript 常用的方面;【基础】

答:常用于数据输入校验和页面特殊效果等。

15、常用的web 容器和开发工具;【基础】

答:最常用的容器包括:tomcat、weblogic;

开发工具有:eclipse,jbuilder。

16、请画出Servlet 2.2 以上Web Application 的基本目录结构(2 分钟)

答:目录结构如下图所示:

webapps

|

Applocation

|

__________________

| |

JSP 页面WEB-INF

|

___________________

| | |

classes lib web.xml

1.17、JSP 和Servlet 有哪些相同点和不同点,他们之间的联系是什么?有servlet为什么还要jsp?

答:JSP 是Servlet 技术的扩展,本质上是Servlet 的简易方式,更强调应用的

外表表达。JSP 编译后是"类servlet"。Servlet 和JSP 最主要的不同点在于,

Servlet 的应用逻辑是在Java 文件中,并且完全从表示层中的HTML 里分离开来。

而JSP 的情况是Java 和HTML 可以组合成一个扩展名为.jsp 的文件。JSP 侧重于

视图,Servlet 主要用于控制逻辑。

        jsp在其内容显示上更好,servlet在逻辑处理更据优越性,JSP是显示层的。重在显示。Servelt 是控制层的,重在业务逻辑。可以降低耦合、有利于分工。

18、jsp 的四种范围?【基础】

答:a.page 是代表与一个页面相关的对象和属性。一个页面由一个编译好的

Java servlet 类(可以带有任何的include 指令,但是没有include 动作)

表示。这既包括servlet 又包括被编译成servlet 的JSP 页面

b.request 是代表与Web 客户机发出的一个请求相关的对象和属性。一个

请求可能跨越多个页面,涉及多个Web 组件(由于forward 指令和include 动

作的关系)

c.session 是代表与用于某个Web 客户机的一个用户体验相关的对象和属

性。一个Web 会话可以也经常会跨越多个客户机请求

d.application 是代表与整个Web 应用程序相关的对象和属性。这实质上

是跨越整个Web 应用程序,包括多个页面、请求和会话的一个全局作用域。

19、Request 对象的主要方法? 【基础】

答:setAttribute(String name,Object):设置名字为name 的属性值

getAttribute(String name):返回由name 指定的属性值

getAttributeNames():返回request 对象所有属性的名字集合(枚举)

getCookies():返回客户端的所有Cookie 对象,结果是一个Cookie 数组

getCharacterEncoding():返回请求中的字符编码方式

getContentLength():返回请求的Body 的长度

getHeader(String name):获得HTTP 协议定义的文件头信息

getHeaders(String name):返回指定名的request Header 的所有值(枚举)

getHeaderNames():返回所有request Header 的名字(枚举)

getInputStream():返回请求的输入流,用于获得请求中的数据

getMethod():获得客户端向服务器端传送数据的方法

getParameter(String name):获得客户端请求中传送的name 指定的参数值

getParameterNames():获得客户端传送给服务器端的所有参数的名字(枚

举)

getParameterValues(String name):获得有name 指定的参数的所有值

getProtocol():获取客户端向服务器端传送数据所依据的协议名称

getQueryString():获得查询字符串

getRequestURI():获取发出请求字符串的客户端地址

getRemoteAddr():获取客户端的IP 地址

getRemoteHost():获取客户端的名字

getSession([Boolean create]):返回和请求相关Session

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(String name):删除请求中的一个属性

20、如何实现servlet 的单线程模式?【基础】

答:<%@page isThreadSafe=”false”%>

21、页面间对象传递的方法。【基础】

答:request,session,application,cookie 等。

22、详细描述MVC。【基础】

答:基于Java 的Web 应用系统采用MVC 架构模式,即model(模型)、view(视

图)、control(控制)分离设计;这是目前WEB 应用服务系统的主流设计方向。

Model:即处理业务逻辑的模块,每一种处理一个模块;

View:负责页面显示,显示MODEL 处理结果给用户,主要实现数据到页面转

换过程;

Control:负责每个请求的分发,把FORM 数据传递给MODEL 处理,把处理结

果的数据传递给VIEW 显示。

23、MVC 的各个部分都有那些技术来实现?如何实现? 【基础】

答:MVC 是Model-View-Controller 的简写。"Model" 代表的是应用的业务逻

辑(通过JavaBean,EJB 组件实现), "View" 是应用的表示面(由JSP 页面产

生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通

过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组

件可以进行交互和重用。

24、应用服务器有那些?【基础】

答:BEA WebLogic Server, IBM WebSphere Application Server, Oracle9i

Application Server, JBoss, Tomcat。

25、Servlet 执行时一般实现哪几个方法?【基础】

答:public void init(ServletConfig config)

public ServletConfig getServletConfig()

public String getServletInfo()

public void service(ServletRequest request,ServletResponse

response)

public void destroy()

28、几种会话跟踪技术?【基础】

答:cookie、URL 重写、设置表单隐藏域。

29、BS 与CS 的联系与区别?【基础】

答:C/S 是Client/Server 的缩写,是客户机与服务器结构的应用程序,服务器

通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、

Sybase、Informix 或SQL Server。客户端需要安装专用的客户端软件。B/S是

Brower/Server 的缩写,是浏览器和服务器结构的应用程序,即Web 应用程序,

客户机上只要安装一个浏览器(Browser),如Netscape Navigator 或Internet

Explorer,服务器安装Oracle、Sybase、Informix 或SQL Server 等数据库。

在这种结构下,用户界面完全通过WWW 浏览器实现,一部分事务逻辑在前端实现,

但是主要事务逻辑在服务器端实现。浏览器通过Web Server 同数据库进行数据

交互。

C/S 与B/S 区别:

1)硬件环境不同:

C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过

专门服务器提供连接和数据交换服务;

B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租

用设备. 信息自己管理. 有比C/S 更强的适应范围, 一般只要有操作系统和浏

览器就行;

2)对安全要求不同:

C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度

机密的信息系统采用C/S 结构适宜. 可以通过B/S 发布部分可公开信息;

B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用

户;

3)对程序架构不同:

C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可

以较少考虑;

B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上.

比C/S 有更高的要求B/S 结构的程序架构是发展的趋势, 从MS 的.Net 系列的

BizTalk 20## Exchange 20## 等, 全面支持网络的构件搭建的系统. SUN 和

IBM 推的JavaBean 构件技术等,使B/S 更加成熟;

4)软件重用不同:

C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S 要求下的

构件的重用性好;

B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入

买来的餐桌可以再利用,而不是做在墙上的石头桌子;

5)系统维护不同:

C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升

级难. 可能是再做一个全新的系统;

B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销

减到最小.用户从网上自己下载安装就可以实现升级;

6)处理问题不同:

C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操

作系统相关. 应该都是相同的系统;

B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S 无法作到

的. 与操作系统平台关系最小;

7)用户接口不同:

C/S 多是建立的Window 平台上,表现方法有限,对程序员普遍要求较高;

B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大

部分难度减低,减低开发成本;

8)信息流不同:

C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低;

B/S 信息流向可变化, B-B B-C B-G 等信息、流向的变化, 更像交易中心。

30、过滤器有哪些作用?【基础】

答:可以验证客户是否来自可信的网络,可以对客户提交的数据进行重新编码,

可以从系统里获得配置的信息,可以过滤掉客户的某些不应该出现的词汇,可以

验证用户是否登录,可以验证客户的浏览器是否支持当前的应用,可以记录系统

的日志等等。

31、过滤器的用法?(对客户端的请求统一编码和对客户端进行认证)【基础】

答:首先要实现(implements)Filter 接口,同时覆盖Filter 接口的三个方法:

init(FilterConfig config) //用于获得FilterConfig 对象;

doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) //进行过滤处理一些业务;

destroy() //销毁Filter。

32、简述HttpSession 的作用、使用方法,可用代码说明。(3 分钟)【基础】

答:HttpSession 中可以跟踪并储存用户信息,把值设置到属性中,有2 个方法:

setAttribute(),getAttrribute();

例如:在一个方法中用session.setAttribute(“student”,student);在

session 中设置一个属性名为student,值为一个名为student 的对象。而后可在

同一session 范围内用getAttribute(“student”)取出该属性,得到student

对象。

33、介绍在JSP 中如何使用JavaBeans?【基础】

答:在JSP 中使用JavaBean 常用的动作有:

1)<jsp:useBean />:用来创建和查找bean 对象;

2)<jsp:setProperty />:用来设置bean 的属性,即调用其setXxx()方法;

3)<jsp:getProperty />:用来获得bean 的属性,即调用其getXxx()方法。

34、JSP 和Servlet 中的请求转发分别如何实现?【基础】

答:JSP 中的请求转发可利用forward 动作实现:<jsp:forward />;

Serlvet 中实现请求转发的方式为:

getServletContext().getRequestDispatcher(path).forward(req,res)。

35、Web.Xml 的作用?【基础】

答:用于配置web 应用的信息;如listener、filter 及servlet 的配置信息等。

36、写出熟悉的JSTL 标签。【基础】

答:<c:if>、<c:choose>、<c: when>、<c: otherwise>、<c:forEach>、<c:set>。

38、JSP 标签的作用?如何定义?【中等难度】

答:作用:分离jsp 页面的内容和逻辑;

业务逻辑开发者可以创建自定义标签;

封装业务逻辑;

可重用并且易维护;

易于手工修改、易于工具维护;

提供简洁的语法;

定义:

写标签处理器;

写tld 文件;

讲标签处理器和tld 文件放到同一个包里面;

把jsp 页面和标签库配置部署在一起。

39、写一个自定义标签;【中等难度】

答:代码如下:

import javax.servlet.jsp.tagext.*;

import javax.servlet.jsp.*;

import java.io.*;

public class TimeTag extends SimpleTagSupport{

private boolean isServer = true;

public void setServer(boolean isServer){

this.isServer = isServer;

}

public void doTag() throws JspException, IOException{

JspWriter out = getJspContext().getOut();

if(isServer) {

out.println(new java.util.Date());

}else{

out.println("<script language=\"javascript\">");

out.println("document.write(new Date());");

out.println("</script>");

}

}

}

40、javascript 的优缺点和内置对象;【中等难度】

答:1)优点:简单易用,与Java 有类似的语法,可以使用任何文本编辑工具编

写,只需要浏览器就可执行程序,并且事先不用编译,逐行执行,无需进行严格

的变量声明,而且内置大量现成对象,编写少量程序可以完成目标;

2)缺点:不适合开发大型应用程序;

3)Javascript 有11 种内置对象:

Array、String、Date、Math、Boolean、Number、

Function、Global、Error、RegExp、Object。

1.标签基本构成

    <html>...</html> HTML文件全文的开始结束标记

    <head>...</head> HTML文件头部的开始结束标记

    <title>...</title> HTML文件页面标题的开始结束标记

    <body>...</body> HTML文件体部的开始结束标记

2.form表单基本元素

    text,submit,image,file,checkbox,password,email,seletion

    属性 method action name

3.js使用的三种方式

    1) 事件定义

       < onclick="js代码">

    2)直接嵌入式:可以出现在html的任意位置

    <script type="text/javascript">

   </script>

    3)文件调用

    <script type="text/javascript" src="test.js">

    </script>

4.web相关的view层放在哪

    WebRoot下的*.jsp相关文件都是View层

5.引用的架包放在哪

    web下的Lib文件夹里

6.web.xml在哪

    webInfo文件夹下

7.tomacat端口号修改在哪

    在tomacat的文件夹中的conf文件夹下的server.xml文件内配置

8.css添加的四种方式

    1)行内添加,<body style="width:500px">

    2)import引入@import "import.css"

    3)连接引入<link href="alone.css" rel="stylesheet" type="text/css" />

    4)嵌入 <style type="text/css">

           h2{ color:white;background-color:blue;}

          </style>

         

9.请求重定向和请求转发的区别

    RequestDispatcher.forward方法只能将请求转发给同一个WEB应用中的组件;

    而HttpServletResponse.sendRedirect 方法还可以重定向到同一个站点上的其他应用程序中的资源,

    甚至是使用绝对URL重定向到其他站点的资源。

10.servlet的生命周期

    1. web服务器首先会检查是否已经装载并创建了该servlet实例对象。如果是直接进行第4步,否则执行第2步

    2. 装载并创建该servlet的一个实例对象

    3. 调用servlet实例对象的init方法

    4. 创建一个用于封装http请求消息的httpservletrequest对象和一个代表http响应纤细的httpservletresponse对象,

    然后调用service()方法并将请求和响应作为参数传递进去。

    5. web应用被停止或者重启之前,servlet引擎将卸载servlet,在卸载之前调用servlet的destroy()方法

11.区分jsp和servlet

    JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成擅长于流程控制和事务处理而通过Servlet

    来生成动态网页;JSP由HTML代码和JSP标签构成,可以方便地编写动态网页

    因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.

12.Tomcat的安装和主要目录结构

    1)在Tomcat官网下载相关的压缩包,解压后,即可使用

    2)主要目录结构:

       bin: 开启和关闭tomcat服务等功能所在目录

       lib:包含Tomcat使用的jar文件.unix平台此目录下的任何文件都被加到Tomcat的classpath中

       Logs:存放Tomcat的日志文件

       webapp:包含web项目示例,当发布web应用时,默认情况下把web文件夹放于此目录下

       work:Tomcat自动生成,放置Tomcat运行时的临时文件(如编译后的JSP文件).

       如在Tomcat运行时删除此目录.JSP页面将不能运行.[ jsp生成的sevlet放在此目录下]

13.session怎么区分会话对象

    客户首次访问服务器的一个页面时,服务器就会为该客户分配一个session对象,

    同时为该session对象指定一个唯一的ID,并且将该ID号发送到客户端并写入到cookie中,使得客户端与服务器端的session建立一一对应关系

14.el表达式是什么,怎么用

    1)EL表达式是为了便于存取数据而定义的一种语言

    2)使用${expression}来获取变量的值

      []与.两种运算符来存取数据

      也可以使用各种运算符和函数来对数据进行处理

15.JSTL是什么,怎么用

    1)JSTL是一个实现Web应用程序中常用功能的定制标签库集,由5个不同的功能标签库组成

    2)使用前,必须下载好JSTL,然后复制到Web工程下的/WEB-INFO/lib目录下

      在JSP页面中添加<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 然后就可以使用JSTL了

16.MVC经典架构

    业务应用层是用JAVABEAN来做

    控制层是使用Sevlet来做

    View层是使用HTML来做

17.JSP常用的内置对象及生命周期

    1.request对象的范围:

    2.response:响应对象

    3.pageContext:页面上下文对象

    4.session会话对象

    5.application:应用程序对象

    6.out:输出对象

    7.config:配置对象

    8.page:页面对象

    9.exception:异常对象

18.JSP指令(动作)是什么

    JSP指令分为两者那个:第一是page指令,用来完成导入制定的类、自定义Sevlet的超类等任务

    第二是include命令,用来在JSP文件转换成Servlet时引入其他文件,

    JSP也可以使用taglib指令,来自定义标签。

19.jsp语法

    <%=expression%>来计算表达式并输出结果

    <%Code%>在JSP中写JAVA代码,并把代码插入到Servlet的service方法

    <%!code%>声明,加入到Servlet类

20.javascript 是弱类型语言,和java无关,

    var a=10,

    a=20,

21.程序题.登录校验

   servlet:

    package com.hncj;

    import java.io.*;

    import javax.servlet.ServletException;

    import javax.servlet.*;

public class login extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException {

           String user = "root";

           String passwd = "123456";

           String username = request.getParameter("username");

           String userpass = request.getParameter("password");

           if(user.equals(username)&&passwd.equals(userpass)){

              request.setAttribute("username", username);

              request.setAttribute("userpass", userpass);

              request.getRequestDispatcher("/ok.jsp").forward(request,response);

           }else{

              request.setAttribute("username", username);

              request.setAttribute("userpass", userpass);

              request.getRequestDispatcher("/Error.jsp").forward(request,response);           

           }

    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException {

    }

}

    JSP:

       index:

           <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

           <html>

             <head>

             </head>

             <body>

             <form action="/xx/servlet/login" methond="doGet">

              <input type="text" name="username" value="username"/></br>

              <input type="password" name="password" value="123456"/></br>

              <input type="submit" value="登录"/>

              </form>

             </body>

           </html>

       ok:

           <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

           <html>

             <head> 

              <title>ok</title>

             </head>

             <body>

              user:${username} or password:${userpass} is ok;

             </body>

           </html>

       error:

           <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

           <html>

             <head>

              <title>false</title> 

             </head>

             <body>

              user:${username} or password:${userpass} is false.

             </body>

           </html>

2.tomcat默认端口号是多少?怎样修改端口?

               默认端口是:8080。找到tomcat的安装目录,有个conf文件夹,里面有个server.xml。<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 把这个8080改成你需要的就可以了。

3.重定向与转发技术的区别?

1.转发是服务器行为,重定向是客户端行为。

2.转发时浏览器上的网址不变 ,转发的路径必须是同一个web容器下的url,不能转向到其他web路径上去。重定向时浏览器网址发生变化,得到响应后浏览器自动发送新的http请求,请求的url是新的location地址,在这里location可以重定向到任意URL。

3.转发做了一次请求,重定向至少做了两次请求。

5.添加样式表的方法

               1.行内样式表

               2.嵌入样式表

               3.链接样式表

               4.输入样式表

6.MVC中的M、V、C各指的是什么请述其各自的作用。

M:Model(模型),在j2ee开发中扮演数据封装相关的角色(像javabean);

V:View(视图),在开发中扮演数据显示相关的角色(像jsp,html文件);

C:Controller(控制器),在j2ee开发中扮演数据控制相关的角色(像Servlet、Action等)。

7.什么是cookie? cookie有什么作用?

 Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。

Cookie 为 Web 应用程序保存用户相关信息提供了一种有用的方法。例如,当用户访问您的站点时,您可以利用 Cookie 保存用户首选项或其他信息,这样,当用户下次再访问您的站点时,应用程序就可以检索以前保存的信息。

练习题

1、下面哪一个不是动态网页技术(  D )。

A.ASP     B.JSP    C.PHP     D.HTML

2、下列关于Tomcat说法不正确的是(   B   )。

A.Tomcat是一个Servlet容器。        B.Tomcat是一种编程语言。

C.Tomcat是一个免费开源的项目。     D.Tomcat的默认端口是8080。

3、可以实现不同网页之间的数据共享,而且还可以实现跨机共享数据的JSP对象是(  C  )。

A.Response对象            B.Session对象

C.Application对象          D.Request对象

4、Servlet需要在(   C    )文件中进行配置。

A.context.xml      B.web.config       C.web.xml     D.webapp.xml

5、JSP页面经过编译之后,将创建一个(   B   )。(选择一项)

A.applet                                                                B.servlet

C.application                                                          D.exe文件

6、下列哪个方法用于从ServletContext中检索属性?(    B  )

A.Object getObject(int index)    B.Object getAttribute(String name)

C.String getObjext(int index)    D.String getAttribute(String name)

7、下列哪个接口或类检索与用户相关的会话对象?(   D   )

A.HttpServletResponse     B.ServletConfig

C.ServletContext          D.HttpServletRequest

8、<jsp:useBean>中指定Bean实例的存取范围的属性是(  C   )。

A. id                    B. class                     C. scope                    D. type

9、下列哪个page指令是合法的?(  C    )

A.<%page language=”java”%>  B.<%! page language=”java”%>

C.<%@ page language=”java”%>  D.<%@Page language=”java”%>

10、下列不是JSP隐含变量的是(   C   )。

A.request   B.out.  C.context  D.sesion

11、为了丰富JSP页面的图形化布局,可以使用下面哪个JSP标准动作把一个图像导入到JSP页面中?(  D   )

A.<jsp:image page=”logo.png”/>   B. <jsp:include page=”logo.png”/>

C. <jsp:include file=”logo.png”/>   D.使用JSP标准动作无法做到

12、在JSP中,(   A   )动作用于将请求转发给其他JSP页面。 

A.forward                               B.include

C.useBean                                                D.setProperty

13、在JSP的Model II模式中,模型层对象被编写为(   D  )。

A.Applet                      B.JSP

C.Servlet                      D.JavaBean

14.在JSP的Model II模式中,视图层对象被编写为(    B  )。

A. Applet              B. JSP                     C. Servlet                  D. JavaBean

15.从 “员工” 表的“姓名”字段中找出名字包含“玛丽”的人,下面哪条select语句正确:(   D  )

A.Select * from员工 where 姓名 =’_玛丽_’ 

B.Select * from员工 where 姓名 =’%玛丽_’

C.Select * from员工 where 姓名 like ‘_玛丽%’

D.Select * from员工 where 姓名 like ‘%玛丽%’

16、Page指令中的“contenType”属性是用于指出( B  )。

A.数据库类型     B.网页类型       C.服务器类型     D.用户类型

17、关于web.xml的配置说法错误的是(    D   )。

A.在web.xml描述中,要指定这个Servlet的名字。

B.在web.xml描述中,要指定这个Servlet的类。

C.在web.xml描述中,要为Servlet做URI映射。

D.在web.xml中不可同时指定多个Servlet。

18、(  D  )是JSP中最基本的对象,它是用户与服务器进行交互的基础。

A.Response对象       B.Session对象

C.Application对象     D.Request对象

19、Java是(  C  )公司开发的。

A.Microsoft     B.Adobe      C.Sun      .DMacromedia

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

A.sendURL()                                                   B.redirectURL()

C.sendRedirect()                                              D.redirectResponse()

21、不能实现会话跟踪技术的是(   B   )。

A.URL重写      B.使用application     C.使用Cookie      D.使用session

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

A extends                                                                 B import

C languge                                                                 D contentType

23、下列哪个状态码表示“Not Found 无法找到指定位置的资源”?(  D    )

A.100      B.201      C.400     D.404

24、在web.xml中,有如下代码:

<session - config>

      <session - timeout>30</session - timeout>

</session - config>

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

A.毫秒                                                    B.秒

C.分钟                                                     D .小时

25、session对象的(    B    )方法可以用来设置session对象的超时时间。

A. time()                                                     B. setMaxInactiveInterval()        

C. maxTime()                                               D. invalidate() 

26、用下列哪个方法将使会话失效?(  A    )

A.session.invalidate();     B.session.close();

C.session.destroy();       D.session.end();

27、在JSP中如果要导入java.io.* 包,应该使用(  A   )指令。

A. page         B. include        C. taglib                    D. forward

28、在Servlet里,能正确获取session的语句是(    A   )。 

A.HttpSession session = request.getSession(true);

B.HttpSession session = request.getHttpSession(true);

C.HttpSession session = response.getSession(true);

D.HttpSession session = response. getHttpSession (true);

29、在J2EE中,在一个JSP文件中,有表达式<%=2+3 %>,它将输出( B  )。

A.2+3                                                          B.5               

C.23                                                            D.不会输出,因为表达式是错误的

30、在J2EE的Model Ⅱ模式中,模型层对象被编写为(  D    )。

A.Applet                                                        B.JSP

C.Server                                                         D.JavaBean

31、在J2EE中,使用Servlet过滤器时,需要在web.xml通过( B  )元素将过滤器映射到Web资源。

A.<filter>                                                        B.<filter-mapping>

C .<servlet>                                                     D. <servlet-mapping>

32、要为一个名为TestServlet的服务器小程序指定初始化参数,应该使用下面哪个部署描述文件元素?(   D   )

A. <servlet-param>                   B. <param>

C. <initialization-param>                        D. <init-param>

33、Web应用程序需要用到的数据库驱动程序JAR文件,应该存放在哪个目录中?(  D    )

A. WEB-INF/thirdparty                         B. WEB-INF

C. WEB-INF/classes                    D. WEB-INF/lib

34、给定request是一个HttpServletRequest对象,可使用(   A   )创建一个会话。

A. request.getSession()                                  B. request.Session()

C. request.getSession(false)           D. request.createSession()

35、给定一个会话对象s,有两个属性,属性名分别为myAtt1和myAtt2,下列哪行代码会把这两个属性从会话中删除?(    C  )。

A. s.removeAllValues();                    B. s.removeAllAttributes();

C. s.removeAttribute("myAtt1");s.removeAttribute("myAtt2");

D. s.getAttribute("myAtt1",UNBIND); s.getAttribute("myAtt2",UNBIND);

1.在Java中使用关键字     new       来实例化对象。

2.Servlet的生命周期包括加载与实例化、   初始化      提供服务   和销毁四个阶段

3.每一个Servlet都需要在    web.xml      文件中进行部署。

4.Page指令中的    import     属性可以设置导入JSP页面中使用的Java类和接口。

5.page指令中的    ContentType      属性用于指定输出的内容类型和字符集。

6.使用      <jspinclude>       标准动作可以实现动态包含。

7.在JSP页面中的4种作用域是应用作用域、    会话作用域      请求作用域     和页面作用域。

8.将HTTP响应重定向到其他资源,可以使用HttpServletResponse接口的  sendredirect()      方法实现。

9.使用DriverManager类的       getConnection()     方法建立数据库连接对象。

10.JDBC的基本功能包括     建立与数据库的连接        发送SQL语句        和处理数据库操作结果。

11.Struts框架包含    核心控制器           表单bean        、动作对象、JSP页面和配置文件等。

12.在web.xml中注册监听器时需使用<listener>元素,该元素的唯一一个子元素是      <listeneclassr>     

13.在Struts框架中实现MVC,控制器是由     ActionServlet    组件实现的。

JavaWeb程序设计》练习题参考答案

第一章:Servlet基础

 1、下列选项中属于动态网站技术的是 _________(多选)答:PHP/ASP/JSP

A、PHP

B、ASP

C、JavaScript

D、JSP

2、下列关于Servlet的说法正确的是_______(多选)

A、Servlet是一种动态网站技术

B、Servlet运行在服务端

C、Servlet针对每个请求使用一个进程来处理

D、Servlet与普通的Java类一样,可以直接运行,不需要环境支持

参考答案:

Servlet是一种动态网站技术,是运行在服务器端,Servlet针对每个请求使用一个线程来处理,而不是启动一个进程,传统的CGI为每次请求启动一个进程来处理。所以Servlet的效率更高

3、下列关于Servlet的编写方式正确的是______(多选)

A、必须是HttpServlet的子类

B、通常需要覆盖doGet() 和doPost()方法或其一

C、通常需要覆盖service()方法

D、通常要在web.xml文件中声明<servlet>和<servlet-mapping>两个元素

参考答案:A、B、D

必须继承Httpservlet类,不需要覆盖servlce()方法,service()方法是Servlet接口中的方法,Servlet是HttpServlet的父类,该方法会根据请求类型选择执行doGet()或doPost()方法。所以通常需要覆盖doGet() 和doPost()方法或其一。

4、下列关于Servlet生命周期的说法正确的是____(多选)

A、构造方法只会调用一次

B、init()方法只会调用一次

C、service()方法在每次请求此Servlet时都会被调用

D、destroy()方法在每次请求完毕时会被调用。

参考答案:B、C

Servlet生命周期由servlet接口定义,

每次请求会生成一个对象,所以构造方法会调用多次

Init() :

public void init(ServletConfig config) throws ServletException;

       Servlet引擎会在Servlet实例化之后,置入服务之前精确地调用init方法。在调用service方法之前,init方法必须成功退出。

       如果init方法抛出一个ServletException,你不能将这个Servlet置入服务中,如果init方法在超时范围内没完成,我们也可以假定这个Servlet是不具备功能的,也不能置入服务中。

Service() :

public void service(ServletRequest request, ServletResponse response)

             throws ServletException, IOException;

Servlet引擎调用这个方法以允许Servlet响应请求。这个方法在Servlet未成功初始化之前无法调用。在Servlet被初始化之前,Servlet引擎能够封锁未决的请求。

在一个Servlet对象被卸载后,直到一个新的Servelt被初始化,Servlet引擎不能调用这个方法

每次请求都会被调用但是不会被覆盖,覆盖的是相应的do 方法

Destroy():

public void destroy();

       当一个Servlet被从服务中去除时,Servlet引擎调用这个方法。在这个对象的service方法所有线程未全部退出或者没被引擎认为发生超时操作时,destroy方法不能被调用。

这个方法给servlet释放占用的资源的机会,通常用来执行一些清理任务。服务器关闭时才销毁这个Servlet对象

5、下列方式中可以执行TestServlet (路径为/test)的doPost()方法是____(多选)

A、在IE中直接访问http://localhost:8080/网站名/test

B、<form action=”网站名/test”>提交表单

C、<form action=”网站名/test” mothod=”post”>提交表单

D、<form id=forma”>在JavaScript中执行下述代码:

Document.getElementById(“form1”).action=”/网站名/test”;

Document.getElementById(“form1”).method=”post”;

Document.getElementById(“form1”).submit;

参考答案:C、D

A.在地址栏上访问 是get方式

B.在表单里如果不写method,默认也是get方式

6、针对下述JSP页面,在Servlet中需要得到用户选择的爱好的数量,最合适的代码时____

<input type="checkbox" name="channel" value="网络"/>网络;

             <input type="checkbox" name="channel" value="朋友推荐"/>朋友推荐;

             <input type="checkbox" name="channel" value="报纸"/>报纸;

             <input type="checkbox" name="channel" value="其他"/>其他;

A、request.getParameter(“aihao”).length

B、request.getParameter(“aihao”).size

C、request.getParameterValues(“aihao”).length

D、request.getParameterValues(“aihao”).size

参考答案:C

从表单中获取多个值用getParameterValues,求数组的长度为length。

7、用户使用POST方式提交的数据中存在汉字(使用GBK字符集),在Servlet中需要使用下面____个语句处理。

A、request.setCharcterEncoding(“GBK”);

B、request.setContentType(“text/html;charset=GBK”);

C、reponse.setCharcterEncoding(“GBK”);

D、response.setContentType(“text/html;charset=GBK”);

参考答案:A

其中D是设置响应的方式的,A是设置请求的方法。其他两个是错误的。选择:A

8、简述Servlet的生命周期。Servlet在第一次和第二次被访问时,生命周期方法的执行有何区别。

参考答案:

1、 Servlet容器刚被启动时加载,也可以在容器收到客户请求服务时加载

<servlet>

<load-on-startup>1</load-on-startup>

</servlet>

标签<load-on-startup>配置该Servlet的加载方式,可选值为0和1,如果配置为1.Tomcat会在启动时候加载该Servlet,否则,Tomcat会在有人第一次请求该Servlet时才加载该Servlet

2、  加载成功后,Servlet容器便可以创建一个Servlet实例。Servlet加载并实例化后,在处理客户端请求前,容器必须通过调用它的init方法进行初始化

3、 实例创建好后,就要对其初始化。Servlet的init()方法的主要任务就是完成初始化工作。该方法由Servlet容器调用完成。对于每一个Servlet实例,该方法只允许被调用一次。

4、  利用 service 处理请求

在Servlet被成功初始化后容器就可以使用它去处理客户端发来的请求了。在使用HTTP协议发送请求时,容器必须提供代表请求和回应的HttpServletRequest对象和HttpServlerRespons

5、利用destroy()方法终止服务

在Servlet执行完毕或是在处理请求过程中出现UnavailiableException异常,需要移除Servlet,在移除之前,Servlet会调用destroy()方法让Servlet自动释放占用的资源。

l  第一次访问时会执行init()方法,第二次访问不会执行init()方法。

9、简述转发和重定向跳转方式的区别,在Servlet中分别使用什么方法实现?

重定向跳转方式的区别:转发和重定向都可以使浏览器获得另外一个URL所指向的资源,区别是转发共享同一个请求对象,而重定向不共享同一个请求对象。

在Servlet中分别使用什么方法实现?在Servlet中转发使用RequestDespacher接口的forward()方法实现。重定向HttpServletResponse接口的sendRedirect()方法实现

第二章  Servlet会话跟踪

1、下列关于Cookie的说法正确的是_____.(多选)

A、Cookie保存在客户端

B、Cookie可以被服务器修改

C、Cookie中可以保存任意长度的文本

D、浏览器可以关闭Cookie功能

参考答案:A、B、D

Cookie是保存在客户端的,也可以被服务器修改,但是Cookie的长度是有限的,浏览器可以关闭Cookie功能。

2、写入和读取Cookie的代码分别是_______

A、request.addCookies()和response.getCookies();

B、response.addCookie()和request.getCookie();

C、response.addCookies()和request.getCookies();

D、response.addCookie()和request.getCookies();

参考答案:D

3、Tomcat的默认端口是______

A、80

B、8080

C、8088

D、8000

参考答案:B

4、  HttpServletRequest的____方法可以得到会话(多选)

A、getSession()

B、getSession(Boolean)

C、getRequestSession();

D、getHttpSession();

参考答案:A、B(参看p38)

5、  下列选项中可以关闭会话的是______(多选)

A、调用HttpSession的close方法

B、调用HttpSession的invalidate()方法

C、等待HttpSession超时

D、调用HttpServletRequest的getSession(false)方法

参考答案:A、B、 C、D

HttpSession的invalidate()方法,使得回话失效,同时删除属性对象

等待HttpSession超时Session失效。

public HttpSession getSession();

返回与这个请求关联的当前的有效的session。如果调用这个方法时没带参数,那么在没有session与这个请求关联的情况下,将会新建一个session。

public HttpSession getSession(boolean create);

   调用这个方法时带入了一个布尔型的参数,只有当这个参数为真时,session才会被建立。

HttpServletRequest的getSession(false)方法

为了确保session能够被完全维持。Servlet开发者必须在响应被提交之前调用该方法。

       如果带入的参数为假,而且没有session与这个请求关联。这个方法会返回空值。

6、  在HttpSession中写入和读取数据的方法是_____

A、setParameter()和getParameter()

B、setAttributer()和getAttribute()

C、addAttributer()和getAttribute()

D、set()个get()

参考答案:B

getParameter()是获取参数,addAttributer()是保存Cookie到客户端set()和get()是一对修改属性的方法,

7、下列关于ServletContext的说法正确的是_____(多选)

A、一个应用对应一个ServletContext

B、ServletContext的范围比Session的范围要大。

C、第一个会话在ServletContext中保存了数据,第二个会话读取不到这些数据

D、ServletContext使用setAttributer()和getAttribute()方法操作数据。

参考答案:A、B、D

Servlet上下文是运行Servlet的逻辑容器,同一个上下文中共享存有其中的信息和属性,

在Servlet中定义了一个ServletContext接口,用于存取Servlet运行的环境或者上下文信息。

ServletContext对象可以通过使用ServletConfig对象的getServletContext()方法获得,在Servlet中提供的getServletContext()方法也可是直接获得ServletContext对象。

l  getServletContext:

       public ServletContext getServletContext();

       返回这个Servlet的ServletContext对象。

8、关于HttpSession的getAttibute()和setAttribute()方法,正确的说法是_____(多选)

A、getAttributer()方法返回类型是String

B、getAttributer()方法返回类型是Object

C、setAttributer()方法保存数据时如果名字重复会抛出异常

D、setAttributer()方法保存数据时如果名字重复会覆盖以前的数据

参考答案:B、D

Servlet API解释如下:

getAttribute(java.lang.String name)

        Returns the object bound with the specified name in this session, or null if no object is bound under the name.

可以运行以下代码测试:

HttpSession session=request.getSession();

              session.setAttribute("name", "limei");

              session.setAttribute("name", "liyan");

              out.print("ppp:"+session.getAttribute("name"));

9、使得HttpSession失效的三种方式是______、_______、和_________

参考答案:关闭浏览器、调用session的invalidate方法和等待session超时

10、测试在其他浏览器下Session的生命周期,如:Firefox、Chrome等。

略。

第三章 JSP基础

1、下列关于JSP执行过程的说法正确的是____ (多选)

A、JSP在容器启动时会被翻译成Servlet,并编译为字节码文件。

B、JSP在第一次被请求时会被翻译成Servlet,并编译成字节码文件。

C、在第二次请求时,将不再执行翻译步骤

D、如果JSP页面有错误将不再执行翻译步骤。

参考答案:B、C、D

JSP是一种Servlet,但是与HttpServlet的工作方式不太一样。HttpServlet是先由源代码编译为class文件后部署到服务器下,先编译后部署。而JSP则是先部署源代码后编译为class文件的。先部署后编译。JSP会在客户端第一次请求JSP文件时被编译为HttpJspPage(接口Servlet的一个子类),该类被服务器临时存放在服务器的工作目录里面。

举例说明JSP编译过程:客户端第一次请求greeting.jsp。Tomcat首先将jsp文件转化为标准的Java源代码,greeting_jsp.java,存放在Tomcat工作目录下,并将其编译为greeting_jsp.calss,编译完后再运行class文件来响应客户端请求。以后访问jsp时,服务器将不再重新编译JSP文件而是直接调用class文件来响应客户端请求。

2、下列不属于JSP构成元素的是_____

A、脚本

B、声明

C、表达式

D、JavaScript

   参考答案:D

3、下列注释方式可以再JSP中使用并且客户端无法查看的是____

A、<!—注释-->

B、<%注释%>

C、<%--注释--%>

D、<%!注释%>

参考答案:C

在JSP页面中可以使用<%-- --%>的方式来注释,服务器编译JSP时会会忽略<%-- --%>之间的内容,所以生成的注释在客户端是看不到的。

4、下列JSP表达式的写法正确的是_____(多选)

A、<%=”abcdefg”.length()%>

B、<%=”abcedfg”+123%>

C、<%=new java.util.Date()%>

D、<%=this%>

参考答案:A、B、C、D

都是表达式,abcdefg是字符串,length()是求该字符串的长度,123是数字,会自动转为字符,new java.util.Date()是一个匿名对象,显示当前的系统时间。This代表本类对象的引用变量。其值为org.apache.jsp.prime_jsp@171194d。

1、  在JSP页面中有下述代码,第二次访问此页面的输出是______

  <%!

   Int x=0;

   %>

   <%

Int y=0;

%>

<%=x++>,<%=y++>

A、0,0

B、0,1

C、1,0

D、1,1

参考答案:C

声明中定义的是全局变量,可以在整个应用中使用。所以第二次访问时变量x为1,以后每次访问会自增,而在脚本中定义的变量只在本页面内有效。第二次访问和第一次访问一样没有变化都是0.

2、  找出下述代码中的错误

<%!

   int x;

   int method(){

     return x++);

}

%>

<%

   int x=method();

   int y;

%>

<%=method();%>

参考答案:<%=method();%>修改为<%=method()%>.表达式后面不允许有分号。

3、  编写JSP页面,输出100以内的素数

核心参考代码

<% int m,i,j;

   boolean f;

for(i=2;i<=100;i++)

{f=true;

m=(int)Math.sqrt(i);

 for(j=2;j<=m;j++)

if(i%j==0)

{

f=false;break;

}

}

if (f)

out.print(i+" ");

%>

第四章 JSP指令和动作

1、下列page指令的使用正确的是______(多选)

A、<%@ page import="java.util.*  java.sql.* "%>

B、<%@ page import="java.util.*, java.sql.* "%>

C、<%@ page import="java.util.*;java.sql.* "%>

D、<%@page import="java.util.*" %>

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

参考答案:B、D

Import属性可以在当前页中引入JSP脚本代码中需要用到的其他类,需要引入多个类或包时,

可以在中间使用逗号隔开:

<%@ page import="java.util.*, java.sql.* "%>

或使用多个page指令:

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

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

2、下列useBean标准动作使用正确的是_____

A、<jsp:useBean id="a" class="java.util.Date" scope="request"></jsp:useBean>

B、<jsp:useBean name="a" class="java.util.Date" scope="request"></jsp:useBean>

C、<jsp:useBean id="a" class="Date" ></jsp:useBean>

D、<jsp:useBean name="a" class="java.util.Date" scope="request"></jsp:useBean>

参考答案:A

Id指定该JavaBean的实例的变量名,通过这个id可以访问这个实例。

class指定JavaBean的类名,如果需要创建一个新的实例,容器会使用class类指定的类并调用午餐构造方法来完成实例化。

scope指定JavaBean的作用范围。

type 指定JavaBean对象的类型,通常在查找已存在的JavaBean时使用,这时不会产生新的对象。

3、下列setProperty标准动作使用正确的是______(多选)

A、<jsp:setProperty  name="id" property="name" value="name"/>

B、<jsp:setProperty  id="id" property="name" value="name"/>

C、<jsp:setProperty  name="id" property="name" value="name"/>

D、<jsp:setProperty  id="id" property="name" value="name"/>

参考答案:A、C

name指定JavaBean对象名,与userBean标准动作中的id相对应,property指定JavaBean中需要赋值的属性名,value指定属性设置的值,参数param指定请求中的参数名(该参数可以来自于表单(URL传递参数等).

4、下列关于getProperty标准动作的说法正确的是_______(多选)

A、当JavaBean不存在所访问的属性时,显示null

B、当JavaBean不存在所访问的属性时,发生异常

C、getProperty标准动作实际上是调用对应属性的get方法

D、以上都不对。

参考答案:B、C

5、存在以下JavaBean和JSP页面

Person.java

package x;

public class Person {

       String name;

       public String getName() {

              return name;

       }

       public void setName(String name) {

              this.name = name;

       }

}

Index.jsp

<jsp:useBean id="p" class="com.haiersoft.entity.Person"></jsp:useBean>

   <jsp:setProperty property="name" name="p" value="Mike"/>

   <jsp:setProperty property="name" name="p" param="names"/>

   <jsp:getProperty property="name" name="p"/>

访问http://localhost:8080/项目名/index.jsp?name=John时的页面输出为_____

参考答案:C

<jsp:setProperty property="name" name="p" param="names"/>

name指定JavaBean对象名,与useBean标准动作中的id相对应。

property 指定JavaBean中需要赋值的属性名

value指定要为属性设置的值

param指定请求中的参数名(该参数可以来自表单、URL传递参数等)并将该参数的值赋给property所指定的属性)

从地址栏上传递的参数是name,JSP页面中设置的参数为names,所以该参数没有获得值,对应属性中的值为value=”Mike”中的值Mike

6、广义上讲,满足_______、_____和_______三个要求的Java类可以称为JavaBean ,

参考答案:(1)是一个公共类 含有公有的无参构造方法

          (2)属性私有

          (3)属性具有公有的get和set方法

8.7、简述include指令和include标准动作的区别。

               include指令用于在当前JSP中包含其他文件,可以是JSP、HTML或文本文件,包含的过程发生在将JSP翻译成Servlet时,是静态包含。

               include标准动作用于在JSP页面动态包含其它页面,是在运行时完成包含,是动态包含。

第五章 JSP内置对象

1、下列属于JSP内置对象的是________(多选)

A、request

B、response

C、session

D、servletContext

参考答案:A、B、C

JSP内置对象有9个:request、response、session、application、out、pageContext、config、page、exception.

2、下列关于JSP内置对象的说法正确的是_______(多选)

   A、内置对象无需定义,可直接使用

   B、内置对象无法再JSP的声明部分使用

  C、内置对象只能在JSP脚本部分使用。

 D、只有使用Tomcat作为JSP容器时才能使用内置对象。

参考答案:A

JSP内置对象是指由JSP容器加载的,不用声明就可以直接在JSP页面中使用的对象。

3、下列request和response内置对象的使用正确的是______(多选)

A、request.getRequestDispatcher(“index.jsp”).forward();

B、response.sendRedirect(“index.jsp”);

C、request.getParameterValues(“name”);

D、response.setContentType(“text/html;charset=gbk”);

参考答案:B、C、D

l  request常用的方法有:

String getParameter (String name):根据参数名称得到单一参数值

String getParameterValues(String name):根据参数名称得到一组参数值。

l  response常用方法:

(1)void setContentType(String name):设置相应内容的类型和字符编码

例如:设置响应内容类型为text/html,字符编码为gbk

response.setContentType(“text/html;charset=gbk”);

(2)void sendRedirect(String url):重定向到指定的URL资源

例如:使用response对象的sendRedirect()方法实现页面的重定向 response.sendRedirect(“index.jsp”);


4、  在1.jsp中有下述代码

<%

    request.setAttribute("name","JSP");

    session.setAttribute("name","JSP");

    response.sendRedirect("2.jsp");

   %>

2.jsp

<%

    out.println(request.getAttribute("name"));

  

 out.println(session.getAttribute("name"));

   %>

A、 JSP

JSP

B、 null

JSP

C、JSP JSP

D、null JSP

参考答案:D


在1.jsp 中分别在request和session范围内保存了数据,然后重定向到2.jsp页面,在2.jsp页面中输出名称为name的值,request范围内只在当前页面有效,session在会话中有效,故选择D,输出没有换行。所以不选择B

5、  pageContext、request、session、application四个内置对象的作用范围从小到大依次为___________

A、 request、pageContext、session、application

B、 request、session、pageContext、application

C、 request、session、application、pageContext

D、 pageContext、request、session、application

参考答案:D

pageContext的范围是当前页面,,在一个JSP页面有效

request的指从HTTP请求到服务器处理结束,返回响应的整个过程,在这个过程中使用forward方法跳转多个JSP,在这些页面里都可以使用这个变量。

session的有效范围是当前会话,从浏览器打开到浏览器关闭这个过程。

application的有效范围是整个应用程序,作用域中的变量,它们的存活期是最长的,如果不进行手工删除,它们就一直可以使用。

6、  在Servlet的doGet()和doPost()方法中,如何得到与JSP内置对象out、request、rsponse、session、application分别对应的对象?

(1)可以通过以下代码获取out对象:

PrintWriter out = response.getWriter();

(2)Servlet直接继承了HttpServlet类,可以直接使用request和response对象

    (3)可以通过以下代码获取session对象

HttpSession session=request.getSession();

(4)application是javax.servlet.ServletContext类的对象

       Application对象需要通过ServletConfig.getServletContext()来获取。

      Servlet自动定义了ServletConfig对象。故可以使用以下代码获取application对象

     ServletContext  application =this.getServletContext();

或者:

ServletConfig config=getServletConfig();

              ServletContext application=config.getServletContext();

第六章 ELJSTL

1、  下列关于EL的说法正确的是________

A、EL可以访问所有的JSP内置对象

B、EL可以读取JavaBean的属性值

C、EL可以修改JavaBean的属性值

D、EL可以调用JavaBean的任何方法

参考答案:A、B

2、  下列EL的使用语法正确的是______(多选)

A、${1+2==3?4:5}

B、${param.name+paramValues[1]}

C、${someMap[var].someArray[0]}

D、${someArray[“0”]

参考答案:A、B

   数组的下标应该是常量,不能是变量。

3、  关于JSTL条件标签的说法正确的是________(多选)

A、单纯使用if标签可以表达if…else ….的语法结构

B、when标签必须在choose标签内使用

C、otherwise标签必须在choose标签内使用

D、以上都不正确

参考答案:B、C

<c:choose>用于条件选择,和<c:when>以及<c:otherwise>一起使用

4、  下列代码的输出结果是_______

A、1 2 3 4 5 6 7 8

B、3 5

C、4 6

D、4 5 6

<%

  int[] a=new int[] {1,2,3,4,5,6,7,8};

  pageContext.setAttribute("a",a);

 %>

<c:forEach  items="${a }" var="i" begin="3" end="5"  step="2" >

       ${i }

</c:forEach>

参考答案:C

定义了一个数组a并且初始化

pageContext为JSP内置对象,用于存储当前页面的相关信息。

pageContext.settribute(“a”,a);将对象a存储为名称a(前面的a是键,后面的a是值是一个对象)

<c:forEach  items="${a }" var="i" begin="3" end="5"  step="2" >

其中的items="${a },这里的对象是a,用<c:forEach>标签遍历对象的所有元素

5、  下列指令中,可以导入JSTL核心标签库的是_______(多选)

A、<%@taglib url="http://java.sun.com/jsp/jstl/core" prefix="c" %>

B、<%@taglib url="http://java.sun.com/jsp/jstl/core" prefix="core" %>

C、<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

D、%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="core" %

参考答案:C

taglib指令中,uri属性指明标签库描述文件的路径;prefix属性指明标签库的前缀。

6、  下列代码中,可以取得ArrayList类型的变量x的长度的是_______

A 、${fn.size}

B、<fn:size value=”${x}”/>

C、${fn:length(x)}

D、<fn:length value=”${x}”/>

参考答案:

7、  JSTL分为____、____、_____、____、______五部分

参考答案:

JSTL标签库分为五部分:核心标签库、国际化输出标签库(I18N标签库)、XML标签库、SQL标签库、EL函数库

JAVA WEB部分:

1.    基于HTTP协议的Servlet通常继承__C______, 也可以继承__B______。这些类型都实现了接口___A_____。

A. javax.servlet.Servlet      B. javax.servlet.GenericServlet

C. javax.servlet.http.HttpServlet

2.    我们实现的基于HTTP协议的Servlet的服务方法签名正确的有__    BCD_____________。

A.    public void doGet(ServletRequest req, ServletResponse res) throws IOException, ServletException

B.    public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException

C.    public void service(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException

D.    public void service(ServletRequest req, ServletResponse res) throws IOException, ServletException

重写服务方法,一般是以下两种方式:

doGet(HttpServletRequest req,HttpServletResponse res)

doPost(HttpServletRequest req,HttpServletResqonse res)

HttpServlet继承自GenericServlet,其中的service方法自动实现;

GenericServlet的调用方法:

容器

-->service(ServletRequest req,ServletResponse res)

-->service(HttpServletRequest req,HttpServletResponse res)

-->METHOD="GET"-->doGet(HttpServletRequest req,HttpServletResponse res)

-->METHOD="POST"-->doPost(HttpServletRequest req,HttpServletResponse res)

API中有D这个方法

3.    在Servlet中要输出内容,使用HttpServletResponse的方法_setContentType 设置内容,对于文本类型调用方法__ getWriter _获得一个___ PrintWriter ___的输出流, 对于二进制类型调用_ getOutputStream 获得_ ServeltOutputStream _的输出流。调用HttpServletRequest的方法_ getParameter 解析有名参数,调用_ getInputStream 获得一个_ ServletInputStream _的输入流。在Servlet中也可以调用_ ServletContext 和_ HttpServletRequest _的方法_ getRequestDispatcher __获得__ RequestDispatcher __, 将请求的处理权交给一个新的资源。

A. ServletInputStream   B. ServletContext    C. HttpServletRequest

D. setContentType      E. getInputStream     F. getOutputStream

G. getRequestDispatcher  H. RequestDispatcher   I. getParameter

J. ServeltOutputStream  K. getWriter          L. PrintWriter

4.    控制一个Servlet的生命周期的方法有__C______, _____B___和____A____。其中___C_____在所有的请求到来之前调用,____A____在撤消应用或关闭web container时调用。Servlet通常只有一个实例,被所有的访问者共享,因此要注意资源的同步。

A. destroy            B. service             C. init

5.    以下是部署在主机www.briup.com 80口上的web应用webdev的部署描述文件web.xml的一部分:

<servlet>

   <servlet-name>accountServlet</servlet-name>

   <servlet-class>com.tarena.account.AccountServlet</servlet-class>

   <init-param> //配置初始化参数

<param-name>interestRate</param-name>

<param-value>0.012</param-name>

</init-param>

   </servlet>

   <servlet-mapping>

<servlet-name>accountServlet</servlet-name>

<url-pattern>/account/*</url-pattern>

   </servlet-mapping>

  …

一个客户在浏览器的地址栏输入了如下URL:

http://www.briup.com/webdev/account/deposit?accno=1212&amt=1000

调用____G_HttpServlet___或_____E_Servletconfig__的方法____F__getInitParameter__可以获得初始参数interestRate的值。在accountServlet中调用HttpServletRequest的getRequestURI返回___H__/webdev/account/deposit___, 调用getQueryString返回____B_ accno=1212&amt=1000___,调用getContextPath返回___A__ /webdev___, 调用getServletPath返回______C_/account_,调用getPathInfo返回___D__/deposit ___。

A. /webdev     B. accno=1212&amt=1000    C. /account

D. /deposit      E. Servletconfig            F. getInitParameter

G. HttpServlet   H. /webdev/account/deposit

6.    在Java Web开发中,跟踪客户状态的手段可通过__B__ Session____和___F__Cookie

___; 增加一个新的cookie, 调用___E_HttpServletResponse____的___C__ addCookie___方法;要在服务器端查询cookie, __A_HttpServletRequest__的_D_getCookies方法。Session的类型是_H__HttpSession__, 获得session的途径是调用_A_HttpServletRequest__的方法_G__getSession___。

A. HttpServletRequest     B. Session            C. addCookie

D. getCookies           E. HttpServletResponse   F. Cookie

G. getSession            H. HttpSession

7.    将session与浏览器联系起来的手段有Cookie和URL rewriting, 所用Cookie变量却省为__B______, URL rewriting的却省参数是_____A___。URL rewriting通过调用HttpServletResponse的___D_____重写重定向资源,调用__C______重写一般资源。

A. jsessionid     B. JSESSIONID      C. encodeURL

D. encodeRedirectURL

URL重写:服务器在响应之后返回的url后加一个jsessionid

8.    Java Web应用中往往通过设置不同作用域的属性来达到通讯的目的。如果某个对象只在同一请求中共享,通过调用_B__HttpServletRequest___的setAttribute方法设置属性, 也可通过_C_ServletRequestListener___事件侦听器实现;如果在不同的请求中传递某一客户的状态,调用_A__HttpSession__的setAttribute方法设置属性,也可通过_F_HttpSessionListener___事件侦听器实现;如果某个对象被所有的访问者共享,把这个对象设置为_D__ServletContext___的属性即可,也可通过_E__ ServletContextListener___事件侦听器实现。

A. HttpSession    B. HttpServletRequest    C. ServletRequestListener

D. ServletContext  E. ServletContextListener  F. HttpSessionListener

9.    Filter必须实现接口__I__Filter__, 它只有一个实例,控制生命周期的方法是_F_init___,__G__doFilter__和_H_destroy____; 在提供服务之前被调用方法的参数类型是_J_FilterConfig(init的参数)___;服务方法的参数类型是_B__ServletRequest___,__C_ServletResponse__和_A_FilterChain_。如果要截取请求,我们会提供_E__HttpServletRequestWrapper___类型的封装类;如果截取应答,我们会提供__D_HttpServletResponseWrapper__类型的封装类,截取应答的标志是在调用_A_ FilterChain___类型对象的_G__doFilter __方法后继续有代码处理应答。

A. FilterChain       B. ServletRequest          C.ServletResponse

D.HttpServletResponseWrapper  E. HttpServletRequestWrapper

F. init             G. doFilter                 H. destroy

I. Filter           J. FilterConfig(init的参数)

10.   以下JSP代码属于指令directive的有__BGK__;属于表达式(expression)的有_AH_______;属于申明(declaration)的有__F______;属于脚本程序(scripleting)的有_EJ_______;属于action的有_CDI_______。

A.    <%=12%>

B. <%@include file=”header.html”%>

C. <jsp:forward page=”cart.jsp”/>

      D. <jsp:include page=”header.html”/>

      E. <% int i = 10; %>

      F. <%! int i = 10; %>

G. < %@taglib uri=”http://java.sun.com/jstl/core” prefix=”c”%>

H. <%=new java.util.Date()%>

I.     <jsp:useBean id=”gzhu” class=”com.tarena.Instructor”/>

J.     <% response.sendRedirect(“http://www.tarena.com”); %>

K.    <%@page contentType=”text/html; charset=gb2312”%>

11.   在directive page中,__B______属性可反复出现, ___AC_____属性的却省值为true, ____E____属性的值指向处理异常的页面,______D__表示激活EL。

A. autoFlush           B. import              C. session

D.isELIgnored=false    E. errorPage

jsp的page指令(directive)

  jsp的page指令(directive)影响着由JSP页面生成的Servlet的整体结构!page指令的功能包括

(1)类的导入(2)Servlet父类的制定(3)内容类型的设置(4)页面会话的设置(5)页面缓冲的设置

(6)错误页面的设置(7)控制线程行为

page属性(attribute)值的两边的双引号也可以用单引号代替,单引号不能省略,若属性值本身含有引号,则在它们之前加上反斜杠来转义。

page 的几个重要的指令:1.import  唯一的一个允许多次出现的attirbute. 默认情况下有以下几个是自动导入的包,java.lang.*;  java.servelt.*;  javax.servlet.jsp.*; javax.servlet.http.*!

2.pageEncoding用来单独设置页面的字符集。%@page pageEncoding="GB2312"%

3.contentType设置响应报头标明发送到客户端的MIME类型和页面字符集!

<%@ page contentType="text/html;charset=gb2312"%>

4.session 属性控制页面的会话特性!%@page session="true|false"%   默认值为true.

5.buffer 和 autoFlush 属性

buffer 设置缓冲区的大小 <%@ page buffer="sizekb|none"%> 

autoFlush 当缓冲区满后自动清空!%@page autoFlush="true|false"%  默认值为true,为false时会抛出一个异常。

6. errorPage 和isErrorPage (attribute)

<%@page errorPage="RelativeURL "%>指定一个页面处理当前页面抛出但未捕获的异常对象。

%@page isErrorPage="true|false"% 表明当前页面是否可以作为其他jsp页面的错误页面 。可以将此页面放在WEB-INF目录中,有助于提高程序的安全性。

1、<%@ page buffer="25kb" autoFlush="true" %>

2、buffer="none | 8kb | sizekb"

buffer的大小被out对象用于处理执行后的JSP对客户浏览器的输出。缺省值是8kb

3、autoFlush="true | false"

设置如果buffer溢出,是否需要强制输出,如果其值被定义为true(缺省值),输出正常,如果它被设置为false,如果这个buffer溢出,就会导致一个意外错误的发生.如果你把buffer设置为none,那么你就不能把autoFlush设置为false.

12.   有一个JavaBean com.briup.Student, 在JSP中用action在session作用域里创建一个对象hellen的语句是___<jsp:useBean id=”hellen” scope=”session” class=”com.briup.Student”/>____。

什么是JavaBean?(参见文档)

13.   以下_ABCD_______是JSP中正确的注释:

A. <%--comments--%> 真正的注释               B. <% //comments  %>

C. <!--comments --> 会写在页面当中                 D. <%! /* comments */ %> JAVA中的单行和多行注释

14.   以下__AB______是错误的:

A.    <%! int i = 10; int j = 10; i += j; %>

B.    <% int getHash(String str) { return str.hashCode(); } %> 声明脚本

C.    <%! class A { void print(){System.out.println(“in A”);}} %>

15.   在JSP中有很多隐含变量,request的类型是C_javax.servlet.http.HttpServletRequest______, response的类型是_I__javax.servlet.http.HttpServletResponse__, page的类型是__E__javax.servelet.jsp.JspPage_,pageContext的类型是__B__javax.servlet.jsp.PageContext____,  session的类型是_D__javax.servlet.http.HttpSession_____, application的类型是____G__ javax.servlet.ServletContext__, config的类型是__F_javax.servlet.ServletConfig_, out的类型是_H__ javax.servlet.jsp.JspWriter_____, exception的类型是___A__java.lang.Throwable___。

A. java.lang.Throwable     B. javax.servlet.jsp.PageContext

C.javax.servlet.http.HttpServletRequest 

D. javax.servlet.http.HttpSession

E. javax.servelet.jsp.JspPage    F. javax.servlet.ServletConfig

G. javax.servlet.ServletContext  H. javax.servlet.jsp.JspWriter

I.javax.servlet.http.HttpServletResponse

参见PDF97页

16.   JSP在处理客户请求前会被编译成servlet, JSP中declaration中定义的变量和方法在运行时成为对应servlet的___B_____变量和方法; scripting会成为服务方法____C____的语句。JSP的生命周期受到____A____,___C_____和___D_____的控制。

A. jspInit      B. member     C. _jspService   D. jspDestroy

调出一个编译后的JSP文件给学生看

D:\JAVA\Tomcat-5.5.25\work\Catalina\localhost\RunCommunity\org\apache\jsp\pages

17.   在web应用webdev的WEB-INF的目录下有一个标签库描述文件sample.tld, 其内容部分如下:

   <tag>

        <name>hello</name>

        <tag-class>com.tarena.tags.HelloTag</tag-class>

        <body-content>empty</body-content>

         <attribute>

            <name>user</name>

            <required>true</required>

            <rtexprvalue>false</rtexprvalue>

            <type>java.lang.String</type>

        </attribute>

        <example></example>

    </tag>

在hello.jsp中要使用标签hello, 因此必须先引入该标签库,语句是__<%@taglib uri=”/WEB-INF/sample.tld” prefix=”s”%>_____。要用hello标签在页面上给”world“打招呼的语句是___<s:hello user=”world”/>_____________。

18.   在web应用webdev的WEB-INF/tags目录下放置了一些标签文件,用前缀”me”引入这些标签到一个jsp的 directive taglib的表达式是___<%@taglib tagdir=”/WEB-INF/tags” prefix=”me”%>__。

19.   一个没有body的标签其tag handler要实现接口__C______;如果某个标签有body, 但   标签不与body交互,tag handler要实现接口___E_____, 如果要与body交互,tag handler要实现接口____D____。通常前两种情况的tag handler会继承___A_____, 最后一种情况tag handler会继承_____B___。

A.    javax.servlet.jsp.tagext.TagSupport

B.    javax.servlet.jsp.tagext.BodyTagSupport

C.    javax.servlet.jsp.tagext.Tag

D.    javax.servlet.jsp.tagext.BodyTag

E.    javax.servlet.jsp.tagext.IterationTag

20.   在EL中以下____B____可以获得requestURI:

A.    ${requestScope.request.requestURI}

B.    ${pageContext.request.requestURI}

C.    ${requestScope.requestURI}

21.   EL中可使用一些隐含对象,通过____C____可以访问request中的属性(attriubte), 通过___A_____可以访问session中的属性, 通过___B_____可以访问application中的属性, 通过___D_____可以访问浏览器输入的参数,通过____G____可以访问请求头中的参数,通过____E____可以访问web应用的参数,通过____F____可以访问cookie。

A. sessionScope        B. applicationScope       C. requestScope

D. param              E. initParam             F. cookie

G. header

22.   在EL中能够访问的函数(function)必须是_____A___。

A. public static          B. protected         C. protected static

D. public static void      F. protected static void

23.   在EL中访问JavaBean Student的对象smallTank的属性name正确的是__ABC______。

A. ${smallTank.name}           B. ${smallTank[‘name’]}

C. ${smallTank[“name”]}        D. ${smallTank(‘name’)}

SESSION AAA=”aa”

APPLICATION(aa=”hhhh”)

applicationScope['aa'] 此种情况只能用方括号

25.   使用Tomcat,我们通常会设置环境变量_C_ CATALINA_HOME_指向安装目录; web应用的却省部署目录在安装目录下的___A__webapps___子目录;如果有多个web应用共享的包如数据库驱动程序,我们应该将其放置在安装目录的__D__common/lib__子目录;Tomcat的主要配置文件是安装目录下__B_conf _子目录下的___F__server.xml___;Tomcat 5的应用相关的配置文件放在安装目录下___E__conf/Catalina/<host>___子目录。

A. webapps        B. conf               C. CATALINA_HOME

D. common/lib     E. conf/Catalina/<host>  F. server.xml

练习题

一、 选择题

1. 表单中的数据要提交到的处理文件由表单的( A )属性指定。

A.method     B. name    C. action    D. 以上都不对 

2. 要运行JSP程序,下列说法不正确的是( B )

A. 服务器端需要安装Servlet容器,如Tomcat等。

B. 客户端需要安装Servlet容器,如Tomcat等。

C. 服务器端需要安装JDK。

D. 客户端需要安装浏览器,如IE等。

3. 当发布Web应用程序时,通常把Web应用程序的目录及文件放到Tomcat的(  C)目录下。

A.work     B. temp    C. webapps    D. conf 

4. 下面有关HTTP协议的说法不正确的是( D )

A. HTTP协议是Web应用所使用的主要协议

B. HTTP协议是一种超文本传输协议(Hypertext Transfer Protocol),是基于请求/响应模式的

C. HTTP是无状态协议

D. HTTP的请求和响应消息如果没有发送并传递成功的话,HTTP可以保存已传递的信息

5. 下面有关Servlet的描述错误的是(C  )。

A. 一个Servlet就是Java中的一个类

B. Servlet是位于Web 服务器内部的服务器端的Java应用程序

C. Servlet可以由客户端的浏览器解释执行

D. 加载Servlet的Web服务器必须包含支持Servlet的Java虚拟机    

6. 下面不属于JSP指令的是:( B )

A. include   B. import    C. page    D. taglib

7. ( B )动作用于转向另一个页面。

A. next         B. forward         C. include           D. param

8. 在项目中已经建立了一个JavaBean,该类为:bean.Student,该bean具有name属性,则下面标签用法正确的是:( C )

A.<jsp:useBean id="student" class="Student" scope="session">

</jsp:useBean>

B.<jsp:useBean id="student" class="Student" scope="session">

</jsp:useBean>

C.<jsp:useBean id="student" class="bean.Student" scope="session">

</jsp:useBean>

9. 下列选项中,(  B)可以准确地获取请求页面的一个文本框的输入(文本框的名称为name)。

A. request.getParameter(name) 

B. request.getParameter(”name”) 

C. request.getParameterValues(name)

D. request.getParameterValues(“name”)

10. 使用response对象进行重定向时,使用的方法是( C )。

A. getAttribute    B. setContentType   

 C. sendRedirect     D. setAttribute

11. session对象中用于设定指定名字的属性值,并且把它存储在session对象中的方法是( A )。

A. setAttribute    B. getAttributeNames  

C. getValue      D. getAttribute

12. 在application对象中用(B  )方法可以获得application对象中的所有变量名。

A. getServerInfo     B. nextElements()  

C. removeAttribute   D. getRealPath

13. 有关struts 2的说法不正确的是( B )

A. Struts是一个用于简化MVC框架(Framework)开发的Web应用框架

B. 应用Struts 2不需要进行配置

C. Struts 2 含有丰富的标签

D. Struts2采用了WebWork的核心技术

14. Web应用的数据共享方式不包括( C )。

A.基于请求的共享   B.基于会话的共享

C.基于页面的共享   D.基于应用的共享

15. 要在页面上输出2+3=${2+3},则对应的程序代码应为(A  )。

A. 2+3=\${2+3}

B. 2+3=${2+3}    

C. 2+3=/${2+3}    

D. 以上都不对 

16. 下面有关EL中“.“和“[ ]“两种存取运算符的说法不正确的是( C  )

A. 两者在某些情况下是等效的

B. “[ ]“运算符主要用来访问数组、列表或其他集合

C. 如果要动态取值时,两者都可以实现

D. 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用“[ ]“ 

17. 要使用JSTL的核心标签库,需要在JSP源文件的首部加入如下声明语句( A )

A. <%@ taglib prefix="c" 

uri="http://java.sun.com/jsp/jstl/core" %>

B. <%@ taglib prefix=”x” 

uri=”http://java.sun.com/jsp/jstl/xml”%>

C. <%@ taglib prefix=”fmt” 

uri=”http://java.sun.com/jsp/jstl/fmt”%>

D. <%@ taglib prefix=”sql”

uri=”http://java.sun.com/jsp/jstl/sql”%>

18. 以下(  B)标签用于实现循环功能,类似与Java语句中的for循环。

A.  <c:set>           B. <c:forEach>  

B.  <c:Tokens>        D. <c:import> 

19. 以下URL中语法不正确的是(  D )

A.http://www.bta.net.cn:80/software/home.html

B.telnet://bdysseu.bbb.com:70

C.ftp://ftp.btbu.edu.cn

D.www0.btbu.edu.cn 

20. page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是:( D )

A. <%@ page %>作用于整个JSP页面。  

B. 可以在一个页面中使用多个<%@ page %>指令。

C. 为增强程序的可读性,建议将<%@ page %>指令放在JSP文件的开头,但不是必须的。

D. <%@ page %>指令中的属性只能出现一次。

第二题:填空。

1. 在编写Servlet时,需要继承       HttpServlet       类,在Servlet中声明doGet()和doPost()需要       HttpServletRequest      和       HttpServletResponse       类型的两个参数。

2. jsp主要内置对象有:     application        、exception、 pageContext、cookie  request 、     response            、____session_     __、out、config、page。

3. 使用useBean动作标记的时候scope属性有4种选项,作用范围由小到大是______page___、___request______、___session______、_____application____,其中____session_____是指当关闭浏览器的时候这个javabean失效, ____ _application____是指当关闭服务器的时候这个javabean失效。

更多相关推荐:
教务处关于期末考试总结报告

20xx年春学期期中考试总结报告一、高一、高二年级期中考试成绩分析1、学科分析高一年级学科均分及格的学科有语文学科(99.9),地理学科(选修和必修)和必修班的政治学科,高二年级只有语文学科均分及格。有的学科均…

小学期末考试小结

期末考试小结20xx——20xx学年第一学期的期末考试已经结束,我校圆满地完成了此次任务。考试后的质量分析如同一面明镜,不仅显示了考试中学生知识掌握应用的情况,还反射出教师在教学中的得与失,更让我们更为清醒地认…

期末考试报告格式及要求

现代信息查询与利用综合报告模板课题名称大学生心理健康教育研究一需求分析1课题背景1研究意义在经济转轨社会转型竞争加剧的大背景下高校大学生心理健康教育工作显得尤为重要大学生是青年中知识层次较高很有发展潜力和创造性...

学期期末总结报告

学期期末总结报告学期即将结束回顾这一学期来我们在一起生活学习每个人都做出了一点骄傲的成绩大家之间的感情也不断增加互相团结班级也蒸蒸日上工作学习方面都有了较为令人满意的成绩一个学期的顺风顺水最后也给了我们不少警示...

期末考试工作总结

20xx-20xx学年第一学期期末考试工作总结本学期教育局对全县九年级进行统一测试,学校领导高度重视,把严肃考风考纪作为一项重要工作来抓。梁校长主持召开了全校考前动员会,参加人员为全体教师,教务处按照教育局的要…

中专生期末个人总结范文三篇

中专生期末个人总结范文三篇中专生期末个人总结范文三篇篇一时间过的真快转眼间又到了这个学期的最后阶段回顾一下过去刚来到农校报道的那一天还历历在目怪不得人们常说岁月入流回首这一年的点点滴滴朝朝暮暮对我来说真是飞跃的...

大一新生期末个人总结范文

转眼间,大一已过,步入大二。回忆大一的生活,有许多收获,同时存在着些许不足。学习中,对我们每个人来说都算是一个考验吧!从高中那种有人安排有人监督的学习方式转变成没人管没人约束的学习方式,让每个刚步入大学的人来说…

20xx年保福小学期末考试质量分析报告

20xx年保福小学期末考试质量分析报告一试卷评价本次考试的试卷由区教研室统一命题纵观整个试卷本期末测查试卷是一份精心设计有价值的试卷内容覆盖面广重点突出有一定的代表性试卷题量适中难易适度有一定的层次性分值分配合...

期末考试质量分析报告

学生考试质量分析报告年级科目教师日期

四年级数学期末考试质量分析报告

四年级数学期末考试质量分析报告西板小学杨小金一试卷特点与试题分析一试卷结构合计满分值100分80分钟完卷基础概念占29分计算占30分选择占12分实践操作占9分解决问题占20分本套试题基本覆盖了四年级数学下册各章...

白车勒小学20xx年春季学期期末考试质量分析报告

白车勒小学20xx年春季学期期末考试质量分析报告一试卷评价这次期末考试的试卷由宜良县教育局教研室统一提供由竹山中学校统一调配监考和统一阅卷本次考试成绩的真实性较高基本反应出平时的教学情况纵观整个试卷本期末测查试...

期末考试成绩分析报告二年

二年级语文期末总结从整体上看本次测试学生成不是很理想有些同学因为做题不细心读题不认真基础知识掌握不牢直接影响班级整体成绩这就要求在后半学期的教育教学中因材施教即要保证优秀率有所提高还要保证中下水平的学生跟上去狠...

期末考试总结范文(47篇)