Java Web习题答案Word文档下载推荐.docx
- 文档编号:20279636
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:17
- 大小:27.08KB
Java Web习题答案Word文档下载推荐.docx
《Java Web习题答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java Web习题答案Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
h2align="
center"
>
%=newjava.util.Date()%>
/h2>
/body>
/html>
第2章E-Store电子商城项目概述
1.BD
2.CD
3.AC
4.BCD
5.C
6.BD
7.ACD
8.ABD
9.C
10.C
11.C
JSP页面的JSP元素主要有:
指令(Directives)、注释(comment)、脚本(Scriptlet)、动作(Actions)和内置对象。
2.
request:
request是HttpServletRequest类的对象。
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获得用户通过浏览器提交的请求以及相关cookie、header、session等信息。
response:
response是HttpServletResponse类的对象,表示了对客户的请求返回的动态响应。
Response对象提供了用于设置送回浏览器的响应的方法(如cookies、header信息等)。
out:
out对象是javax.jsp.JspWriter的一个实例,提供了将response对象向浏览器输出结果的方法。
pageContext:
pageContext表示一个javax.servlet.jsp.PageContext对象。
它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。
session:
session表示一个请求的javax.servlet.http.HttpSession对象。
session对象在某个客户(浏览器)对网站的第一个JSP页面访问时自动创建,并可以存贮用户的状态信息,一个session对象存储一个用户的会话信息,完成对该用户的会话管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。
当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要用到session对象。
application:
application对象是javax.servle.ServletContext类的实例对象。
当web服务器启动后,对应与部署在这个服务器上的每一个Web应用都会产生一个application对象,当客户在所访问的某个网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。
与session不同的是,对于同一个web应用来说,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。
page:
page对象表示该JSP页面本身
第3章前台商品展示模块
1.ACE
2.BC
3.B
4.BC
5.B
6.BC
7.CD
8.D
9.ABC
1.
1)在页面中引入数据库包java.sql并声明数据库操作对象
%@pageimport="
java.sql.*"
%>
%
Connectionconnection=null;
//声明连接对象
Statementst=null;
//声明数据库操作的语句对象
ResultSetrs=null;
//声明数据库查询结果集对象
2)加载数据库驱动
Class.forName("
com.microsoft.sqlserver.jdbc.SQLServerDriver"
).newInstance();
3)创建数据库连接
这需要创建Connection(java.sql包)类的一个实例,并使用DriverManager(java.sql包)的方法getConnection来尝试建立用url指定的数据库的连接。
connection=
DriverManager.getConnection(
"
jdbc:
sqlserver:
//localhost:
1433;
DatabaseName=shopping"
"
sa"
"
123456"
);
//加载数据库连接
2.
1.include指令
在JSP页面中使用<
%@include%>
指令时,将会在JSP编译时在该指令出现的地方插入一个包含文本或代码的文件,这个包含的过程是静态的。
静态的包含是指在编译时就能确定包含文件的内容,直接被插入到JSP文件中去,形成一个JSP文件,包含的文件可以是HTML文件、文本文件或JSP文件等。
(1)如果某个包含文件被改变,包含此文件的JSP文件也需要重新编译,否则不能反映包含文件的修改效果。
(2)file="
relativeURL"
这个包含文件的路径名一般来说是指相对路径,必须在编译的时候就能确定,而不能使用变量代替。
(3)不可以在file所指定的文件后接任何参数,如:
%@includefile="
longin.jsp?
name=browser"
是不允许的。
2.<
jsp:
include>
允许包含动态文件和静态文件,这两种包含文件的结果是不同的。
如果文件是静态文件,那么这种包含仅仅是把包含文件的内容加到JSP文件中。
与include指令包含静态文件的效果是一样的。
如果文件是动态文件,那么这个包含文件会被JSP引擎单独编译执行,由<
动作请求执行,并将传送回来一个响应输出到<
动作所在的位置,当这个包含文件执行完毕后,JSP引擎继续执行JSP文件余下的部分。
如果<
动作包含的文件是动态文件,还可以用<
param>
子句传递参数名和参数值。
并可以在一个<
动作中多次使用<
子句,传递多个参数给动态文件。
3.
1)request对象
request对象是JSP九种内置对象中最重要的对象,是javax.servlet.http.HttpServletRequest和javax.servlet.ServletRequest类的子类的对象。
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息和用户提交信息。
request对象包含了有关浏览器请求的信息,并且提供了多个用于获取与用户请求有关数据的有用的方法。
实际web应用中常用的是通过request对象的getParameter方法可以得到用户提交的请求参数。
所有来自客户端的请求有关数据经Web服务器处理后,由request对象进行封装,传递给JSP页面。
2)response对象
response对象包含了服务器对客户的请求做出动态的响应,向客户端发送数据。
JSP页面执行完成后,JSP引擎将页面产生的响应封装成response对象,然后发送到客户端以形成对客户请求的响应。
和request一样,response对象也由JSP引擎(容器)产生,可以使用response对象提高的方法对响应进行操作。
4.
根据HTTP规范,GET一般用于获取/查询资源信息,而POST可能修改服务器上的资源。
在形式上,GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?
分割URL和传输数据,参数之间以&
相连,如:
login.jsp?
name=admin&
password=123456&
verify=%E4%BD%A0%E5%A5%BD。
POST把提交的数据则放置在是HTTP包的BODY中,不会像GET方法一样附在URL之后。
GET方法和POST方法在提交信息的长度上有所不同,GET方法是将请求参数加在URL之后,因而信息长度受到URL长度的限制,这个限制是特定的浏览器及服务器对它的限制。
IE对URL长度的限制是2083字节(2K+35)。
对于其他浏览器,如Navigator、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。
而理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,起限制作用的是服务器的处理程序的处理能力。
实际使用的时候,通常将POST作为复杂和安全的数据传递方法,因为请求的信息是放在BODY中,所以安全、而且丰富。
第4章前台用户模块
1.C
2.ABD
3.ACD
4.D
5.BC
6.C
7.ABD
全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:
应用程序启动到停止。
会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。
生命周期:
会话超时,或者服务器端强制使会话失效。
请求作用域,就是客户端的一次请求。
一个JSP页面。
(1)bean类必须有一个零参数(默认)构造函数。
空构造函数在JSP元素创建bean
时被调用。
可以显式地定义一个零参数构造函数,也可省略所有的构造函数,这样系统会自动创建一个空构造函数。
(2)依照JavaBean规范,在JavaBean类中,为了令外界可访问字段xxx,而且不破坏封装的要求,不应当将其定义成public可见域,而是应当为其定义getXxx和setXxx方法,作为对应字段的存取方法。
对于布尔字段而言,通常使用isXxx方法来查询字段值。
这种封装到访问器中的字段称为属性,而getXxx、getXxx方法称为访问器。
(3)在JSP中使用一个JavaBean之前,要先定义一个合法的JavaBean类。
该类必须具有一个缺省构造函数,并且所有的字段只能通过访问器访问。
Scope属性具有四个可能的值,分别是:
application、session、request和page,分别代表JavaBean的四种不同的生命周期和四种不同的使用范围。
Page表示myBean的作用范围是本页面,并且myBean的生命周期为本JSP页面的运行周期,当JSP页面运行结束,那么该JavaBean组件的生命周期也结束。
page作用范围的JavaBean组件的作用范围只限于当前的JSP页面中,它无法在别的JSP页面中起作用。
request,JavaBean组件对象的生命周期和JSP内置对象request一样。
一般情况下,当一个JSP页面使用<
forward>
动作将请求转发到另外一个JSP页面或者是使用<
include>
动作导入另外的JSP页面时,第一个JSP页面会把request对象传送到下一个JSP页面,而属于request作用范围的JavaBean组件对象也将伴随着request对象送出,被第二个JSP程序接收。
Session,如果为了使JSP中创建的JavaBean组件对象的生命周期与会话一致,则在使用<
useBean>
动作创建JavaBean组件对象时,应指定scope值为session,此时在整个会话周期内都可以使用这个对象。
如果JavaBean的Scope属性被指定为application,那么它的生命周期和JSP的application对象相同。
具体来说:
如果某个JSP程序使用<
操作创建了一个JavaBean对象,而且这个JavaBean组件具有application作用范围,那么这个JavaBean就一直在服务器的内存空间中存在,随时处理客户端的请求,直到服务器关闭为止。
在某些情况下,当响应客户时,需要将客户重新引导至另一个页面,可以使用response的sendRedirect(URL)方法实现客户的重定向,请客户的请求重新发往URL所指定的地址。
在这个过程中,服务器会发送代码为302响应,并引起该请求再次发送给服务器的由sendRedirect方法参数指定的URL。
整个过程经历了两次请求与两次响应。
如果本JSP页面对客户端的请求不做处理,或者没有完全处理结束,可以将此请求转发到其他JSP页面,由其他的JSP页面返回给客户端的响应,并且在请求转发的过程中,可以对请求即对做修改,通常的做法是会在request对象上使用request对象的setAttribute方法设置一些属性,然后再使用JSP的动作指令<
进行请求转发。
第5章购物车模块
2.C
3.AD
会员从访问网站开始到关闭浏览器窗口离开是一次会话,判断是否已经为该会员生成了购物车,可以利用session实现,在会员本次购物的开始,成功购买第一件商品后,将购物车以session的属性形式存放,那么,再次购物时,本次会话并没有结束,属于该会员专业的session对象也没有销毁,只要取出session中的购物车即可判断出是否已经为本次给我过程生成过购物车。
不能。
JavaBean方式实例的作用域由scope指定的,可以是page、request、session、application之一,不限于本JSP页面,而new方式生成的实例对象的作用域限制在本页面,在本页面访问结束或请求被转发后,实例对象是不会传到别的页面上去的。
使用new方式是一定会生成实例对象的,而使用<
则不一定,除了scope作用域是page一定会在页面范围内生产外,如果scope作用域是request、session、application之一,JSP引擎会在request、session、application范围类按JavaBean的id进行查找,如果已经存在同名的实例对象,JSP引擎便不再生成新的实例对象,而引用原有的对象。
JSP利用这种机制实现JavaBean在不同页面之间传递。
(1)在页面中使用try-catch结构处理异常
在JSP页内使用try-catch来捕获JSP中可能出现的异常,类似于在普通的java代码中,将可能出现异常的脚本代码放在try块中。
但由于JSP页面除了包含HTML标签,还包含各种脚本元素,在JSP中使用try-catch结构会使得整个页面的可读性变差,这种方法并不是理想的解决方案,常用在不太复杂的页面或需要特殊处理异常的页面。
(2)采用JSP提供的更加简洁有效的异常处理机制
使用JSP的错误页面转发机制,可以使用一个特定的JSP页面来处理或显示错误。
相对于前面的try-catch结构处理异常方法,这样能提供一个更为全局的错误处理机制,还能为多个JSP页面提供同一个错误页面来处理错误。
第6章基于MVC模式的订单模块
2.BCDE
3.AB
4.B
5.A
6.AD
7.D
1.publicclassGetDataServletextendsHttpServlet{
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
PrintWriterout=response.getWriter();
Stringvalue1=this.getInitParameter(“a”);
Stringvalue2=this.getInitParameter(“b”);
out.println(value1);
out.println(value2);
}}
(1)servlet与servlet之间可以通过session或ServletContext进行通信,如:
session.getValue("
shoppingcart"
session.putValue("
new
shoppingcart());
或者通过
getServletContext().setAttribute,
getAttribute等。
(2)从JSP调用Servlet可用<
,请求信息自动转到Servlet,如:
<
bodybgcolor="
green"
!
--Forwardtoaservlet,这个servlet存放在web-inf的servlet目录下-->
forwardpage="
/servlet/ServletToJSP"
/>
(3)从Servlet调用JSP可以使用RequestDispatcher接口的forward(req,resp)方法,请求信息需要显示传递,如:
publicclassServletToJSPextendsHttpServlet{
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{
resp.setContentType("
charset=gb2312"
req.setAttribute("
servletName"
ServletToJSP"
getServletConfig().getServletContext().
getRequestDispatcher("
/servlet_jsp/ServletUseJsp.jsp"
).forward(req,resp);
}
}
3.
Servlet与JSP的功能差不多,都是处理请求并返回响应。
其实JSP就是Servlet,所有的JSP页面最终都会被服务器转换成Servlet来执行。
服务器在获得请求的时候会先根据JSP页面生成一个Java文件,然后使用jdk的编译器将此文件编译,最后运行得到的class文件处理用户的请求并返回响应。
如果再有请求访问这个JSP页面,服务器会先检查JSP文件是否被修改过,如果被修改过,则重新生成Java重新编译,如果没有,就直接运行上次得到的class文件。
优点:
Servlet是一个Java类,需要编译之后才能使用,虽然显示页面的时候会让人头疼,不过在进行业务操作和数据运算方面就比JSP稳健的多。
JSP在页面显示上虽然比Servlet灵活,但却容易出错,出错后又找不到良好的方式来测试JSP中代码,尤其在需要进行复杂的业务逻辑时。
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
概括来说,分层式设计可以达至如下目的:
分散关注、松散耦合、逻辑复用、标准定
义。
缺点:
1、降低了系统的性能。
这是不言而喻的。
如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。
这种修改尤其体现在自上而下的方向。
如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
5.本题略。
第7章使用过滤器实现用户授权验证
1.BC
2.BCD
3.ABD
5.AD
6.D
7.C
servlet1:
filter1filter3
servlet2:
filter1filter2filter3
servlet3:
filter1filter3
1)建立一个实现Filter接口的类。
这个类需要三个方法,分别是:
doFilter、init和destroy。
doFilter方法包含主要的过滤代码(见第2步),init方法建立设置操作,而destroy方法进行清除。
2)在doFilter方法中放入过滤行为。
doFilter方法的第一个参数为ServletRequest对象。
此对象给过滤器提供了对进入的信息(包括表单数据、cookie和HTTP请求头)的完全访问。
第二个参数为ServletResponse,通常在简单的过滤器中忽略此参数。
最后一个参数为FilterChain,如下一步所述,此参数用来调用servlet或JSP页。
3)调用FilterChain对象的doFilter方法。
Filter接口的doFilter方法取一个FilterChain对象作为它的一个参数。
在调用此对象的doFilter方法时,激活下一个相关的过滤器。
如果没有另一个过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。
4)对相应的servlet和JSP页面注册过滤器。
在部署描述符文件(web.xml)中使用filter和filter-mapping元素。
5)禁用激活器servlet。
防止用户利用缺省servletURL绕过过滤器设置。
第8章使用监听器实现在线人数统计
1.D
2.B
3.D
6.A
7.B
第一步:
创建监听器类OnlineCount.java,实现ServletContextListener、HttpsessionListener接口。
第二步:
为监听行为添加代码,实现四个方法。
第三步:
将session监听器配置到web.xml配置文件中
第9章基于Struts框架的应用开发
1.AF
2.BD
3.CD
7.A
8.A
9.B
Struts框架包含有两个独立的部分,其中第一个部分是Struts框架的API——利用这
些API中各个相关的类和接口,开发者可以编写基于Struts框架技术的Web应用组件;
另一部分是Struts框架表示层中的各种标签库——主要是由Html、Bean、Logic和Tiles等标签
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java Web习题答案 Web 习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)