您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > JavaWeb章节测试及答案
《JavaWeb程序设计》课程第1、2章章节检测一、选择题:(每题4分,共40分)1、Servlet必须在什么环境下运行?(D)A.操作系统B.Java虚拟机C.Web容器D.Web服务器2、下面那个不是服务器页面技术?(C)A.JSPB.ASPC.PHPD.JavaScript3、要使想服务器发送的数据不在浏览器的地址栏中显示,应该使用什么方法?(A)A.POSTB.GETC.PUTD.HEAD4、考虑下面的HTML页面代码:ahref=”/HelloServlet”请求/a,当用户在显示的超链接上单击时将调用HelloServlet的哪个方法?(B)A.doPost()B.doGet()C.doForm()D.doHref()5、将一个Student类的对象student用名称studobj存储到请求作用域中,下面代码哪个是正确的?(C)A.request.setAttribute(“student”,studobj)B.request.addAttribute(“student”,studobj)C.request.setAttribute(“studobj”,student)C.request.getAttribute(“studobj”,student)6、如果需要向浏览器发送一个GIF文件,何时调用response.getOutputStream()?(B)A.在调用response.setContentType(“image/gif”)之前B.在调用response.setContentType(“image/gif”)之后C.在调用response.setDataType(“image/gif”)之前D.在调用response.setDataType(“image/gif”)之后7、若需要向浏览器发送MicrosoftWord文档,应使用下面哪条语句创建out对象?(D)A.PrintWriteout=response.getServletOutput();B.PrintWriteout=response.getWrite();C.OutputStreamout=response.getWriter();D.OutputStreamout=response.getOutputStream();8、有名为helloweb的Web应用程序,根目录下的WEB-INF文件夹里有哪些内容?(ABC)A.classes目录B.lib目录C.web.xmlD.Server.xml9、对于名为helloweb的Web应用程序,url-pattern的定义为/helloServlet/hello/abc.jsp,那么测试页面abc.jsp用的URL为(A)A.://localhost:8080/helloweb/abc.jspC.://localhost:8080/helloweb/hello/abc.jsp10、想要正确显示中文,下面那一个可以在Servlet的类hello.java中设置?(C)A.request.setContentType(“text/html;charset=gb2312”);B.reponse.setContentType(“text/html;charset=gb2312”);C.request.setContentType(“charset=gb2312”);D.reponse.setContentType(“charset=gb2312”);二、简答题:(每题20分,共60分)1、Servlet属于Java类吗?为什么?它与Applet有什么区别?答:属于java类原因:java的类定义修饰符classclassnameextendssuperclassname{}这里,修饰符指public、private等。classname和superclassname是合法的标识符。extends用来表明classname是superclassname派生的子类。如果是没有派生类,可以省略extendsservlet类publicclassServletDemoFirstextendsHttpServlet{}从结构上来说,符合java的类定义。所以是一个java类。与Applet的区别:Applet具有很好的图形界面(AWT),与浏览器一起,在客户端运行。Servlet则没有图形界面,运行在服务器端。2、请简要说说Servlet的生命周期,并给出状态转换图。答:Servlet生命周期:Servlet加载---实例化---服务---销毁。3、Servelt中有重定向和请求转发,请说明一下HttpServletResponse.sendRedirect()方法、RequestDispatcher的formard()方法和include()方法中哪些属于重定向,哪些属于请求转发?有何区别?答:重定向的方式有:HttpServletResponse的sendRedirect()方法,RequestDispatcher的forward()方法。RequestDispatcher的include()方法属于请求转发。区别:HttpServletResponse.sendRedirect()方法将响应定向到参数location指定的、新的URL。location可以是一个绝对的URL,如response.sendRedirect()也可以使用相对的URL。如果location以“/”开头,则容器认为相对于当前Web应用的根,否则,容器将解析为相对于当前请求的URL。这种重定向的方法,将导致客户端浏览器的请求URL跳转。从浏览器中的地址栏中可以看到新的URL地址,作用类似于上面设置HTTP响应头信息的实现。RequestDispatcher.forward()方法将当前的request和response重定向到该RequestDispacher指定的资源。这在实际项目中大量使用,因为完成一个业务操作往往需要跨越多个步骤,每一步骤完成相应的处理后,转向到下一个步骤。比如,通常业务处理在Servlet中处理,处理的结果转向到一个JSP页面进行显示。这样看起来类似于Servlet链的功能,但是还有一些区别。一个RequestDispatcher对象可以把请求发送到任意一个服务器资源,而不仅仅是另外一个Servlet。include()方法将把RequestDispatcher资源的输出包含到当前输出中。4、实现一登录页面login.jsp,用户名为自己的姓名,如对“张三”,其用户名为“zhangsan”,密码统一为“123”。当登录成功,跳转到index.jsp;否则跳转到error.jsp。请补充完整其Servlet代码。login.jspformaction=login.domethod=posttabletrtd用户名:/tdtdinputtype=textname=username//td/trtrtd密 码:/tdtdinputtype=passwordname=password//td/trtrtdinputtype=submitvalue=登录//tdtdinputtype=resetvalue=取消//td/tr/table/formLoginServlet.javapackagecom.demo;importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;importjavax.servlet.annotation.WebServlet;@WebServlet(name=LoginServlet,urlPatterns={/login.do})publicclassLoginServletextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringname=request.getParameter(username);Stringpwd=request.getParameter(password);if(name!=null&&name.equals(zhangsan)&&pwd!=null&&pwd.equals(123)){session.setAttribute(u,name);//设置session记录用户名response.sendRedirect(index.jsp);}Else{response.sendRedirect(error.jsp);}}}
本文标题:JavaWeb章节测试及答案
链接地址:https://www.777doc.com/doc-2880543 .html