JavaWeb编程技术(沈泽刚版)教材习题参考答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第4章JavaWeb编程习题解析4.1第1章习题解析1.略。2.答:URL称为统一资源定位符,URL通常由4部分组成:协议名称、页面所在主机的DNS名、可选的端口号和资源的名称。URI称为统一资源标识符,是以特定语法标识一个资源的字符串。URI由模式和模式特有的部分组成,它们之间用冒号隔开,一般格式如下:schema:schema-specific-partURI是URL和URN的超集。3.答:①是URL,①和②都是URI,③是URN4.答:动态Web文档技术包括服务器端动态文档技术和客户端动态文档技术,前者包括CGI技术、服务器扩展技术和HTML页面中嵌入脚本技术。其中HTML页面中嵌入脚本技术包括ASP、PHP和JSP技术。最流行的客户端动态文档技术是在HTML页面中嵌入JavaScript脚本代码。使用JavaScript可以设计交互式页面。与服务器端动态文档不同,JavaScript脚本是在客户端执行的。5.答:Servlet是用ServletAPI开发的Java程序,它运行在Servlet容器中。Servlet容器是运行Servlet的软件,主要用来扩展Web服务器的功能。6.答:开发Servlet的一般步骤包括:(1)编写Servlet源程序;(2)编译;(3)将Servlet部署到Servlet容器中;(4)访问执行Servlet。7.答:tomcat-install\lib\servlet-api.jar文件。8.答:部署描述文件名是web.xml,它是XML文件,应该存放在Web应用程序的\WEB-INF目录中。9.答:当服务器找不到用户请求的资源时将发生404错误。10.答:JSP页面是嵌入了Java脚本元素的HTML页面。11.答:Servlet主要用来实现业务逻辑和控制逻辑,JSP页面主要用来实现表示逻辑。JavaWeb编程习题解析93第4章4.2第2章习题解析1.答:Servlet接口定义了下面5个方法:publicvoidinit(ServletConfigconfig)publicvoidservice(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOExceptionpublicvoiddestroy()publicServletConfiggetServletConfig()publicStringgetServletInfo()2.答:Servlet是在容器中运行的组件,有一个从创建到销毁的过程,其中包括加载和实例化、初始化、提供服务以及销毁几个阶段。其中生命周期方法有init()、service()和destroy()等3个。3.答:发生下列事件,浏览器向服务器发出请求。(1)用户点击了HTML页面中的超链接;(2)用户在HTML页面中填写一个表单并点击提交按钮;(3)用户在浏览器的地址栏中输入URL并按回车键。4.答:查询串5.答:HTTP请求结构由请求行、请求头、空行和请求数据组成。请求行由方法名、请求资源的URI和使用的HTTP版本3部分组成。6.答:HTTP响应结构由状态行、响应头和响应数据3部分组成。状态行由HTTP版本、状态码和简短描述3部分组成。7.答:GET请求主要用来从服务器检索资源,POST请求主要用来向服务器发送数据。它们的详细比较请参阅教材的表2.8。8.答:在ServletRequet接口中定义了setAttribute()、getAttribute()、getAttributeNames()和removeAttribute()方法来处理请求作用域的属性。9.答:forward()方法转发请求是服务器端控制权的转向,客户端地址栏中不显示转发后的资源地址。sendRedirect()方法是服务器向浏览器发送302状态码,它使浏览器连接到新的位置,浏览器地址栏可看到地址的变化。使用重定向,资源不能位于WEB-INF目录中。10.答:可先通过请求对象的getParameterNames()方法得到Enumeration对象,然后在其上得到每个请求参数名,再通过getParameter()得到请求参数值。11.答:A12.答:B13.答:E14.答:action=courseServlet.doHttpServletcom.demo.CourseServletcourseServlet15.答:①E②D③C④B⑤AJava实验指导与习题解析944.3第3章习题解析1.答:Web应用程序是运行在应用服务器之中的。应用服务器为Web应用程序提供一种简单的和可管理的对系统资源的访问机制。2.答:web.xmlbankapp\WEB-INF3.答:D4.答:A5.答:D6.答:F7.答:E8.答:D9.答:getServletConfig().getServletContext()或getServletContext()10.答:B11.答:B12.答:D13.答:因为Applet只能运行在客户端,所以可以将它放在Web应用程序的文档根目录的任何位置,但不能将其放在WEB-INF目录或其子目录中。14.答:不能这样做,至少不能直接这样。部署描述文件不允许为一个名称指定多个参数,所以必须像下面这样:init-paramparam-namecountries/param-nameparam-valueAustralia,Brazil,India,UK,US/param-valueinit-param然后在Servlet中解析param-value串的值并解释字符串中列出的多个值。15.答:packagecom.demo;importjavax.servlet.*;importjavax.servlet.http.*;importjava.io.*;publicclassHelloCounterServletextendsHttpServlet{privateIntegervisits=0;publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletException{response.setContentType(text/html;charset=gb2312);PrintWriterout=response.getWriter();visits=visits+1;try{Thread.sleep(2000);}catch(InterruptedExceptione){log(Exceptionduringsleeping.);}out.println(htmlbody);out.println(欢迎您!br+该Servlet已被访问+visits+次。);out.println(/body/html);}}修改后的Servlet如下:JavaWeb编程习题解析95第4章packagecom.demo;importjavax.servlet.*;importjavax.servlet.http.*;importjava.io.*;publicclassHelloCounterServletextendsHttpServlet{privateIntegervisits=0;privateStringdbPath=null;publicvoidinit(){try{dbPath=getServletContext().getRealPath(/WEB-INF/counter.db);FileInputStreamfis=newFileInputStream(dbPath);DataInputStreamdis=newDataInputStream(fis);visits=dis.readInt();dis.close();}catch(Exceptione){log(Errorloadingpersistentcounter,e);}}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletException{response.setContentType(text/html;charset=gb2312);PrintWriterout=response.getWriter();synchronized(this){visits=visits+1;out.println(htmlbody);out.println(欢迎您!br+该Servlet已被访问+visits+次。);out.println(/body/html);}}publicvoiddestroy(){try{FileOutputStreamfos=newFileOutputStream(dbPath);DataOutputStreamdos=newDataOutputStream(fos);dos.writeInt(visits);dos.close();}catch(Exceptione){log(Errorstoringpersistentcounter,e);}}}4.4第4章习题解析1.答:使用请求对象(即HttpServletRequest接口)的getSession()方法。2.答:如果客户在指定时间内没有访问服务器,则该会话超时。对超时的会话对象,服务器使其失效。通过会话对象的setMaxInactiveInterval()方法设置会话最大超时时间。Java实验指导与习题解析96web.xml文件使用session-config元素的子元素session-timeout设置最大超时时间,如下所示。session-configsession-timeout20/session-timeout/session-config这里的最大超时时间是对整个应用程序的所有会话有效,session-timeout元素指定的时间单位是分钟。setMaxInactiveInterval()方法参数单位是秒。3.答:有些客户浏览器可能不支持Cookie或用户阻止所有的Cookie,此时不能用Cookie实现会话。4.答:使用响应对象(即HttpServletResponse接口)的encodeURL()方法或encodeRedirectURL()方法。5.答:不能。因为许多用户是通过代理服务器访问Internet的,此时服务器得到的是代理服务器的IP地址而不是实际用户的IP地址,因此这些用户的IP地址不唯一。6.答:D7.答:A,B8.答:A,D9.答:C10.答:A,C11.答:C12.答:C,D13.答:B,C14.答:C15.答:B16.答:A17.答:C18.答:A,B,D,F19.答:具有很大的影响。该应用程序将不能维护用户的状态。Servlet容器将为每个客户的每次请求都创建一个新的会话。修改这个问题的唯一方法是修改Servlet代码加入URL重写功能。4.5第5章习题解析1.答:包含JSP指令、JSP小脚本和JSP表达式。2.答:合法的JSP表达式:%=500%%=anInt*3.5/100-500%%=aBool%%=false%%=!false%%=getChar()%%=Math.random()%%=aFloatObj%%=aFloatObj.floatValue()%%=aFloatObj.toString()%不合法的JSP表达式:%=aVector%%=aBool;%%=inti=20%%=sBuff.setLength(12);%JavaWeb编程习题解析97第4章3.答:C4.答

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功