Java Web习题答案.docx
- 文档编号:7179649
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:17
- 大小:27.08KB
Java Web习题答案.docx
《Java Web习题答案.docx》由会员分享,可在线阅读,更多相关《Java Web习题答案.docx(17页珍藏版)》请在冰豆网上搜索。
JavaWeb习题答案
第1章JavaWeb应用开发基础
一、选择题
1.CDE
2.AC
3.ACFG
4.A
5.AB
6.AB
7.ABCD
8.B
9.BCDG
二、简答题
1.
1)首先客户机与服务器需要建立连接。
只要在客户机上单击某个超级链接,HTTP的工作就开始了。
2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:
统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,客户机与服务
器断开连接。
2.(本题略)
3.
<%@pagecontentType="text/html;charset=gb2312"%>
第一个JSP程序
<%=newjava.util.Date()%>
第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
二、简答题
1.
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. include>允许包含动态文件和静态文件,这两种包含文件的结果是不同的。 如果文件是静态文件,那么这种包含仅仅是把包含文件的内容加到JSP文件中。 与include指令包含静态文件的效果是一样的。 如果文件是动态文件,那么这个包含文件会被JSP引擎单独编译执行,由 include>动作请求执行,并将传送回来一个响应输出到 include>动作所在的位置,当这个包含文件执行完毕后,JSP引擎继续执行JSP文件余下的部分。 如果 include>动作包含的文件是动态文件,还可以用 param>子句传递参数名和参数值。 并可以在一个 include>动作中多次使用 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 二、简答题 1. application: 全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为: 应用程序启动到停止。 session: 会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。 生命周期: 会话超时,或者服务器端强制使会话失效。 request: 请求作用域,就是客户端的一次请求。 page: 一个JSP页面。 2. (1)bean类必须有一个零参数(默认)构造函数。 空构造函数在JSP元素创建bean 时被调用。 可以显式地定义一个零参数构造函数,也可省略所有的构造函数,这样系统会自动创建一个空构造函数。 (2)依照JavaBean规范,在JavaBean类中,为了令外界可访问字段xxx,而且不破坏封装的要求,不应当将其定义成public可见域,而是应当为其定义getXxx和setXxx方法,作为对应字段的存取方法。 对于布尔字段而言,通常使用isXxx方法来查询字段值。 这种封装到访问器中的字段称为属性,而getXxx、getXxx方法称为访问器。 (3)在JSP中使用一个JavaBean之前,要先定义一个合法的JavaBean类。 该类必须具有一个缺省构造函数,并且所有的字段只能通过访问器访问。 3. 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程序使用 useBean>操作创建了一个JavaBean对象,而且这个JavaBean组件具有application作用范围,那么这个JavaBean就一直在服务器的内存空间中存在,随时处理客户端的请求,直到服务器关闭为止。 4. 在某些情况下,当响应客户时,需要将客户重新引导至另一个页面,可以使用response的sendRedirect(URL)方法实现客户的重定向,请客户的请求重新发往URL所指定的地址。 在这个过程中,服务器会发送代码为302响应,并引起该请求再次发送给服务器的由sendRedirect方法参数指定的URL。 整个过程经历了两次请求与两次响应。 如果本JSP页面对客户端的请求不做处理,或者没有完全处理结束,可以将此请求转发到其他JSP页面,由其他的JSP页面返回给客户端的响应,并且在请求转发的过程中,可以对请求即对做修改,通常的做法是会在request对象上使用request对象的setAttribute方法设置一些属性,然后再使用JSP的动作指令 forward>进行请求转发。 第5章购物车模块 一、选择题 1.C 2.C 3.AD 二、简答题 1. 会员从访问网站开始到关闭浏览器窗口离开是一次会话,判断是否已经为该会员生成了购物车,可以利用session实现,在会员本次购物的开始,成功购买第一件商品后,将购物车以session的属性形式存放,那么,再次购物时,本次会话并没有结束,属于该会员专业的session对象也没有销毁,只要取出session中的购物车即可判断出是否已经为本次给我过程生成过购物车。 不能。 2. JavaBean方式实例的作用域由scope指定的,可以是page、request、session、application之一,不限于本JSP页面,而new方式生成的实例对象的作用域限制在本页面,在本页面访问结束或请求被转发后,实例对象是不会传到别的页面上去的。 使用new方式是一定会生成实例对象的,而使用 useBean>则不一定,除了scope作用域是page一定会在页面范围内生产外,如果scope作用域是request、session、application之一,JSP引擎会在request、session、application范围类按JavaBean的id进行查找,如果已经存在同名的实例对象,JSP引擎便不再生成新的实例对象,而引用原有的对象。 JSP利用这种机制实现JavaBean在不同页面之间传递。 3. (1)在页面中使用try-catch结构处理异常 在JSP页内使用try-catch来捕获JSP中可能出现的异常,类似于在普通的java代码中,将可能出现异常的脚本代码放在try块中。 但由于JSP页面除了包含HTML标签,还包含各种脚本元素,在JSP中使用try-catch结构会使得整个页面的可读性变差,这种方法并不是理想的解决方案,常用在不太复杂的页面或需要特殊处理异常的页面。 (2)采用JSP提供的更加简洁有效的异常处理机制 使用JSP的错误页面转发机制,可以使用一个特定的JSP页面来处理或显示错误。 相对于前面的try-catch结构处理异常方法,这样能提供一个更为全局的错误处理机制,还能为多个JSP页面提供同一个错误页面来处理错误。 第6章基于MVC模式的订单模块 一、选择题 1.C 2.BCDE 3.AB 4.B 5.A 6.AD 7.D 8.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); }} 2. (1)servlet与servlet之间可以通过session或ServletContext进行通信,如: session.getValue("shoppingcart"); session.putValue("shoppingcart", new shoppingcart()); 或者通过 getServletContext().setAttribute, getAttribute等。 (2)从JSP调用Servlet可用 forward>,请求信息自动转到Servlet,如: --Forwardtoaservlet,这个servlet存放在web-inf的servlet目录下--> forwardpage="/servlet/ServletToJSP"/>