《JavaWeb编程技术》课后习题答案.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《JavaWeb编程技术》课后习题答案.pdf》由会员分享,可在线阅读,更多相关《《JavaWeb编程技术》课后习题答案.pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 键入文字Java Web编程习题解析习题解析i.略。什么是URL,什么是U R L 它们都由哪几个部分组成,URL和 URI之间有什么关系?2.答:URL称为统一资源定位符,URL通常由4 部分组成:协议名称、页面所在主机的DNS名、可选的端口号和资源的名称。URI称为统一资源标识符,是以特定语法标识一个资源的字符串。URI由模式和模式特有的部分组成,它们之间用冒号隔开,一般格式如下:schema:schema-specific-partURI是 URL和 URN的超集。3.答:是 U R L,和都是U R L 是 URN动态web文档技术有哪些?服务器端动态文档技术的客户端动态文档技术有何
2、不同?4.答:动 态 W eb文档技术包括服务器端动态文档技术和客户端动态文档技术,前者包 括 CGI技术、服务器扩展技术和HTML页面中嵌入脚本技术。其中HTML页面中嵌入脚本技术包括ASP,PHP和 JSP技术。最流行的客户端动态文档技术是在HTM L页面中嵌入JavaScript脚本代码。使用JavaScript可以设计交互式页面。.与服务器端动态文档不同,JavaScript脚本是在客户端执行的。什么是Servlet?什么是Servlet容器?它的主要作用是什么?5.答:Servlet是用Servlet API开发的Java程序,它运行在Servlet容器中。Servlet容器是运行S
3、ervlet的软件,主要用来扩展Web服务器的功能。简述开发一个Servlet的上体步骤6.答:开发Servlet的一般步骤包括:(1)编写Servlet源程序;(2)编译;(3)将Servlet部署到Servlet容器中;(4)访问执行Servlet。要使一个Servlet能够正确编译的运行,应该将什么文件加到CLASSPATH环境变量中?7.答:libservlet-api.jar 文件。w e b 应用程序的部署描述文件名是什么?它是什么类型的文件?应该存放在什么目录中?8.答:部署描述文件名是web.xm l,它 是 X M L文 件,应该存放在W eb应用程序的W EB-INF目录中
4、。什么是4 0 4 错误?9.答:当服务器找不到用户请求的资源时将发生404错误。什么是JSP页面?它 与 H T M L 页面有什么关系?10.答:JSP页面是嵌入了 Java脚本元素的HTML页面。Servlet与 J SP各适用于什么场合?11.答:Servlet主要用来实现业务逻辑和控制逻辑,JSP页面主要用来实现表示逻辑。岁章习题解析Servlet接口中定义了哪几个方法?I.答:Servlet接口定义了下面5个方法:public void init(ServletConfig config)public void service(ServletRequest request,Serv
5、letResponse response)throws ServletException,lOExceptionpublic void destroy()public ServletConfig getServletConfig()public String getServletInfo()简 述 Servlet的生命周期,生命周期方法有哪几个?2.答:Servlet是在容器中运行的组件,有一个从创建到销毁的过程,其中包括加载和实例化、初始化、提供服务以及销毁几个阶段。其中生命周期方法有init()、service()和destroy。等3个。发生哪些事件,浏览器会向服务器发出请求?3.答:发
6、生下列事件,浏览器向服务器发出请求。(1)用户点击了 HTML页面中的超链接;(2)用户在HTML页面中填写一个表单并点击提交按钮;(3)用户在浏览器的地址栏中输入URL并按回车键。4.答:查询串5.答:HTTP请求结构由请求行、请求头、空行和请求数据组成。请求行由方法名、请求资源的URI和使用的HTTP版本3部分组成。6.答:HTTP响应结构由状态行、响应头和响应数据3部分组成。状态行由HTTP版本、状态码和简短描述3部分组成。7.答:GET清求主要用来从服务器检索资源,POST请求主要用来向服务器发送数据。它们的详细比较请参阅教材的表2.8。8.答:在 ServletRequet接口中定义
7、了setAttribute。、getAttribute()getAttributeNames()和removeAttribute()方法来处理请求作用域的属性。9.答:forward。方法转发请求是服务器端控制权的转向,客户端地址栏中不显示转发后的资源地址。sendRedirect。方法是服务器向浏览器发送302状态码,它使浏览器连接到新的位置,浏览器地址栏可看到地址的变化。使用重定向,资源不能位于WEB-INF目录中。10.答:可先通过请求对象的getParameterNames()方法得到Enumeration对象,然后在其上得到每个请求参数名,再通过getParameter。得到请求参数
8、值。11.答:A 1 2.答:B 1 3.答:E14.答:action=n courseServlet.doHttpServletcom.demo.CourseServletcourseServlet15.答:E D C B A驾 章 习 题 解 析1.答:Web应用程序是运行在应用服务器之中的。应用服务器为Web应用程序提供一种简单的和可管理的对系统资源的访问机制。2.答:web.xml bankappWEB-INF3.答:D 4.答:A 5.答:D6.答:F 7.答:E 8.答:D9.答:getServletConfig().getServletContext()或getServletCo
9、ntext()10.答:B 11.答:B 1 2.答:D13.答:因为Applet只能运行在客户端,所以可以将它放在Web应用程序的文档根目录的任何位置,但不能将其放在W EB4NF目录或其子目录中。14.答:不能这样做,至少不能直接这样。部署描述文件不允许为一个名称指定多个参数,所以必须像下面这样:countriesAustralia,Brazil,India,UK,US然后在Servlet中解析param-value串的值并解释字符串中列出的多个值。15.答:package com.demo;import javax.servlet.*;import javax.servlet.http.
10、*;import java.io.public class HelioCounterServlet extends HttpServletprivateInteger visits=0;public void doGet(HttpServletRequest request,HttpServletResponse response)throws lOException,ServletException response.setContentType(ntext/html;charset=gb2312);PrintWriter out=response.getWriter();visits=vi
11、sit s+1;try(Thread.sleep(2000);catch(InterruptedException e)log(uException during sleeping.;)out.printin(Hn);out.printin(欢迎您!+”该 Servlet 已被访问”+visits+”次。n);out.printin(Hn);修改后的Servlet如下:package com.demo;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;public class HelloCounterServ
12、let extends HttpServletprivate Integer visits=0;private String dbPath=null;public void init()trydbPath=getServletContext().getRealPath(n/WEB-INF/counter.dbn);FileInputStream fis=new Fileinputstream(dbPath);DataInputStream dis=new DatalnputStream(fis);visits=dis.readlnt();dis.close();catch(Exception
13、e)log(nError loading persistent counter1,e);)public void doGet(HttpServletRequest request,HttpServletResponse response)throws lOException,ServletException response.setContentType(ntext/html;charset=gb2312);Printwriter out=response.getWriter();synchronized(this)visits=visits+1;out.printIn(H);out.prin
14、tin(欢迎您!H+”该 Servlet 已被访问”+visits+”次。”);out.printIn(nn);|public void destroy()tryFileOutputStream fos=new FileOutputStream(dbPath);DataOutputStream dos=new DataOutputStream(fos);dos.writelnt(visits);dos.close();catch(Exception e)log(*Error storing persistent counter*,e);)号 章 习 题 解 析1.答:使用请求对象(即HttpS
15、ervletRequest接口)的getSession。方法。2.答:如果客户在指定时间内没有访问服务器,则该会话超时。对超时的会话对象,服务器使其失效。通过会话对象的setMaxInactivelnterval。方法设置会话最大超时时间。web.xml文件使用元素的子元素vsession-timeouA设置最大超时时间,如下所示。20这里的最大超时时间是对整个应用程序的所有会话有效,元素指定的时间单位是分钟。setMaxInactivelnterval。方法参数单位是秒。3.答:有些客户浏览器可能不支持Cookie或用户阻止所有的Cookie,此时不能用Cookie实现会话。4.答:使用响应
16、对象(即HttpServletResponse接 口)的 encodeURL()方法或encodeRedirectURL。方 法。5.答:不能。因为许多用户是通过代理服务器访问Internet的,此时服务器得到的是代理服务器的IP地址而不是实际用户的IP地址,因此这些用户的IP地址不唯一。6.答:D 7.答:A,B9.答:C 1 0.答:A,C12.答:C,D 1 3.答:B,C15.答:B 1 6.答:A18.答:A,B,D,F8.答:A,D11.答:C1 4.答:C1 7.答:C19.答:具有很大的影响。该应用程序将不能维护用户的状态。Servlet容器将为每个客户的每次请求都创建一个新的
17、会话。修改这个问题的唯一方法是修改Servlet代码加入URL重写功能。驾 章 习 题 解 析1.答:包含JSP指令、JSP小脚本和JSP表达式。2.答:合法的JSP表达式:不合法的JSP表达式:3.答:C4.答:正确声明应为:5.答:B是合法的。解析:JSP表达式中百分号和等号之间不能有空格。6.答:D。解析:A中import的属性值中应该有等号。B的import属性值应该在一个字符串中指定。C,属性之间不允许有逗号。E,bgcolor不是合法的属性名。F,true不是buffer属性合法值。G,指令名、属性名和值都是大小写敏感的,Page应为page。7.答:B,CA.非法:等号表明它是表
18、达式,但表达式不能以分号结束,产生的Servlet代码将发生语法错误。out.print(myObj.ml(););B.合法:将被转换成:out.print(x=y);/y的值5赋给x并将其打印输出C.合法:这是合法的小脚本,因为在方法调用语句的后面有分号。即使该方法返回一个值,它也是合法的,因为返回的值将被忽略。8.答:不能在小脚本中定义方法。上 面代码一旦被转换成Servlet,spService()方法就会像下面这样:public void _jspService(.)/其他代码int x=0;int incr()return+x;out.write(nThe value of x is
19、*);out.print(incr();)由于incr()方法定义在spService()方法内,所以代码不能编译。9.答:The value of i is 3注意:如果代码写成下面形式:答卷口答12.45.%for(i=0;iThe value of i is 输出结果将为:The value of i isThe value of i isThe value of i is 310.答:不能在japlnit()方法中使用application对象。11.答:The sum of x and y is 9变量x将被声明两次:一次是作为类的全局变量,因为使用了语句,另一次是在spServic
20、e。方法中声明的局部变量,因为使用的代码是 o:B13.答:C,E:out.write(nrnn);int count=0;out.write(n The page count is now:rnn);out.print(+count);out.write(/htmlrn);16.答:Page 改为 page/声明缺少分号/去掉分号17.答:D18.答:小脚本%!int y=3;声明 旨 令 动作 session、request和pageContext。fflsetAttribute()方法和getAltribute。方法在这些对象上设置和获得属性。在叩plication作用域上的对象可以被S
21、ervlet容器的所有的Web应用程序访问。25.答:可以使用pageContext的findAttribute。方法,该方法将依次在页面作用域、请求作用域、会话作用域和应用作用域中查找指定名称的属性。第。章习题解析1.答:B 2.答:3.答:这两种表示等价,但 第 种表示使用了 JSP脚本元素,第二种表示使用的是动作。它们的功能类似,但有一点细微的差别。pageContext.include。方法在包含其他组件之前总是刷新当前页面的输出,而vjsp:include只有在flush属性值明确设置为true时才刷新当前页面的输出,如下所示:4.答:请求对象的getParameter。方法的返回值
22、类型是S tring,因 此 display.jsp中的Integer 应改为 String0 使用vjsp:param和 request.getParameter()机制只能传递和梅索 String类型的参数。要传递其他对象类型的参数,必须在包含页面中使用request.setAttribute(),在被包含页面中使用request.getAttribute()05.答:D 6.答:C 7.答:B8.答:可以。页面customerDisplay.jsp文件可以使用vjsp:getProperty输出bean的属性值,只要它也包含一个与customerlnput.jsp相同的vjsp:useB
23、ean声明并且该声明出现在 明前面即可。9.答:10.答:不能在同一个vjsp:useBean声明中同时使用beanName和 class属性。11.答:必须使用property指定 bean的属性。param用来指定请求参数,并且不能在同一个vjsp:setProperty动作中同时指定param和 value属性。12.答:使用代码段1是只有在指定作用域中找不到customer的bean对象时才执行标签体,使用代码段2在任何时候都执行属性设置标签。13.答:可以在一个动作中设置bean的全部属性:但不能在一个动作中获得全部属性值。14.答:C1 5.答:MVC模式称为模型-视图-控制器模式
24、。该模式将Web应用的组件分为模型、视图和控制器,每种组件完成各自的任务。该模型将业务逻辑和数据访问从表示层分离出来。实 现 MVC模式的一般步骤:(1)定义JavaBeans表示数据;(2)使用Servlet处理请求;(3)填 写 JavaBeans对象数据;(4)将结果存储在作用域对象中;(5)将请求转发到JSP页面;(6)最后在JSP页面中从JavaBeans中取出数据。雪 章 习 题 解 析1.答:两层模型即客户机/服务器模型,在两层模型中应用程序直接通过JDBC驱动程序访问数据库。三层模型是浏览器/应用服务器/数据库服务器结构,在该结构中浏览器向应用服务器发出请求,应用服务器通过JD
25、BC驱动程序访问数据库。2.答:传统的数据库连接的一般步骤是:(1)加载JDBC驱动程序。(2)建立连接对象。(3)创建语句对象,语句对象有 3 种:Statements PreparedStatement 和 CallableStatement(,(4)执行SQL语句得到结果集对象,调用ResultSet的有关方法就可以完成对数据库的操作。(5)关闭建立的各种对象。缺点是每次访问数据库都要建立连接对象,请求结束需关闭连接对象。这将耗费大量的时间,可能导致增大请求的响应时间。3.答:连接Oracle数据库代码如下。Class.forName(oracle.jdbc.driver.OracleD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaWeb编程技术 JavaWeb 编程 技术 课后 习题 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内