您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > JSP应用与开发技术第12、13、14章-课后习题答案
第12章Servlet基础1.简述Servlet和JSP的关系。答:Servlet是服务器端运行的一种Java应用程序。当浏览器端有请求则将其结果传递给浏览器。在JSP中使用到的所有对象都将被转换为Servlet或者非Servlet的Java对象,然后被执行,所以执行JSP实际上与执行Servlet是一样的。2.简述Servlet的生命周期。答:Servlet的生命周期可分为下面几个阶段:(1)装载Servlet。(2)实例化一个Servlet实例对象。(3)调用Servlet的init()方法进行初始化。(4)服务。(5)卸载。3.简述HttpSession接口的功能和使用方法。答:.HttpSession接口是Servlet提供会话追踪解决方案。HttpSession对象存放在服务器端,只是对cookie和url重写技术的封装应用。使用HttpSession进行会话控制的过程:(1)获得一个HttpSession实例对象;(2)访问和设置与会话相关联信息,维护会话的状态;(3)废弃会话数据。4.简述开发一个Servlet所需要的步骤。答:第一步:编写Servlet实例第二步:在web.xml文件中配置该Servlet第三步:编写其它文件5.编写一个html页面和一个Servelt,实现利用Servelt的doPost方法读取html文件中Form表单内容。答:参考12.6.26.写一个利用HttpSession接口的用户登录的Servlet,当用户已经登录时,返回欢迎信息;否则转向登录页面。答:第一步:编写Servlet实例SessionServlet.java所示。packagecom;importjava.io.*;importjava.util.*;importjavax.servlet.*;importjavax.servlet.http.*;/****使用HttpSession管理会话的登录Servlet*/publicclassLoginServletextendsHttpServlet{protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType(text/html;charset=GB2312);PrintWriterout=response.getWriter();out.println(html);out.println(body);out.println(head);out.println(title使用HttpSession管理会话的登录页面/title);out.println(/head);out.println(body);//获取会话对象HttpSessionsession=request.getSession();//从会话对象中读取数据BooleanisLogin=(Boolean)session.getAttribute(isLogin);if(isLogin==null){isLogin=Boolean.FALSE;}Stringuser=request.getParameter(user);Stringpassword=request.getParameter(pass);if(isLogin.booleanValue()){//从会话对象中读取数据user=(String)session.getAttribute(user);DateloginTime=newDate(session.getCreationTime());out.println(h2欢迎您,+user+!/h2);out.println(h2您的登录时间是:+loginTime+!/h2);}elseif((user!=null)&&(password!=null)){//在会话对象中保存数据session.setAttribute(user,user);session.setAttribute(isLogin,Boolean.TRUE);DateloginTime=newDate(session.getCreationTime());out.println(h2欢迎您,+user+!/h2);out.println(h2您的登录时间是:+loginTime+!/h2);}else{out.println(h2请在下面输入登录信息/h2);out.println(formmethod=\post\action=\login\);out.println(table);out.println(tr);out.println(td用户名:/td);out.println(tdinputname=\user\type=\text\/td);out.println(/tr);out.println(tr);out.println(td密码:/td);out.println(tdinputname=\pass\type=\password\/td);out.println(/tr);out.println(tr);out.println(td/td);out.println(tdinputname=\ok\type=\submit\value=\确定\);out.println(inputname=\cancel\type=\reset\value=\重置\/td);out.println(/tr);out.println(/table);out.println(/form);}out.println(/body);out.println(/html);}}第二步:在web.xml文件中配置该Servletweb-app……!--ServerInfoServletdefinition--servletdescription/descriptiondisplay-namegetSession/display-nameservlet-namegetSession/servlet-nameservlet-classcom.SessionServlet/servlet-class/servlet!--SessionServletdefinition--servlet-mappingservlet-namegetSession/servlet-nameurl-pattern/getSession/url-pattern/servlet-mapping……/web-app第13章使用Servlet过滤器和监听器1、什么是过滤器?什么是监听器?分别应用在哪些方面?答:对Web应用来说,过滤器就是驻留在服务器端,在源数据和目的数据间,对Web请求和Web响应的头属性(Header)和内容体(Body)进行操作的一种特殊Web组件。Servlet监听器是WEB应用程序事件模型的一部分,Servlet监听器用于监听一些WEB应用中重要事件的发生,监听器对象可以在事情发生前、发生后Servlet容器就会产生相应的事件,Servlet监听器用来处理这些事件。2、Filter接口、FilterConfig接口、FilterChain接口的功能分别是什么?提供的方法有哪些?答:所有的过滤器在开发中必须实现javax.servlet.Filter接口,并且提供一个公开的不带参数的构造方法。接口定义了init()、doFilter()和destroy()三方法,和Servelt接口类似,这三个方法分别对应Servlet过滤器生命周期中的初始化、响应和销毁三个阶段。当容器对Filter对象进行初始化时,容器调用Filter的init方法,并传入一个实现FilterConfig接口的对象。Filter可使用该对象获得一些有用的信息。javax.servlet.FilterChain接口由容器实现,容器将其实例作为参数传入过滤器对象的doFilter()方法中。过滤器对象使用FilterChain对象调用过滤器链中的下一个过滤器或者是将调用目标资源。3、ServletContextListener接口、ServletContextAttributeListener接口、4HttpSessionBindingListener接口的功能分别是什么?提供的方法有哪些?答:在Web应用程序启动时需要执行一些初始化任务时,可以编写实现了ServletContextListener接口的监听器类。在ServletContextListener接口中定义了两个事件处理方法,分别是contextInitialize()和contextDestroyed()。为保证属性在整个Web应用范围内的一致性,有必要监视ServletContext对象的任何属性的改变。ServletContextAttributeListener侦听器就是为了这一目的而设立的。该侦听器是一个实现了接口ServletContextAttributeListener的Java类。ServletContextAttributeListener接口共提供了3种方法:(1)publicvoidattributeAdded(ServletContextAttributeEventscab)通知向servlet上下文中添加了一个新属性。在添加属性之后调用本方法。(2)publicvoidattributeRemoved(ServletContextAttributeEventscab)通知现有属性已从servlet上下文中移除。在移除属性之后调用本方法。(3)publicvoidattributeReplaced(ServletContextAttributeEventscab)。如果一个对象实现了HttpSessionBindingListener接口,当这个对象被绑定到Session中或从Session中删除时,Servlet容器会通知这个对象,这个对象在接收到通知后,做初始化操作或清除状态的操作。HttpSessionBindingListener接口提供了如下方法:(1)publicvoidvalueBound(HttpSessionBindingEventevent)当对象正在被绑定到Session中,Servlet容器通知对象它将被绑定到某个会话并标识该会话。(2)publicvoidvalueUnbound(HttpSessionBindingEventevent)当从Session中删除对象时,Servlet容器通知对象要从某个会话中取消对它的绑定并标识该会话。4、jsp乱码如何解决,几种解决方案?答:添加编码方式、使用过滤器。5、如何编写、配置过滤器,举例说明?答:第一步:开发jsp页面。第二步:编写过滤器类第三步:在web.xml文件中添加配置过滤器的代码第四步:验证过滤器运行效果6、如何编写、配置监听器,举例说明?答:第一步:开发jsp页面。第二步:编写监听器类第三步:在web.xml文件中添加配置监听器的代码第四步:验证监听器运行效果第14章JSTL标准标签库1.请简述JSTL与一般的JSP技术有何差异。答:使用JSTL实现动态JSP页面的最大特点在于简单,避
本文标题:JSP应用与开发技术第12、13、14章-课后习题答案
链接地址:https://www.777doc.com/doc-5422872 .html