Java Web章节测试及答案

更新时间:2023-11-13 01:16:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《Java Web程序设计》课程第1、2章章节检测

一、选择题:(每题4分,共40分)

1、Servlet必须在什么环境下运行?( D )

A. 操作系统 B. Java虚拟机 C. Web容器 D. Web服务器 2、下面那个不是服务器页面技术?( C )

A. JSP B. ASP C. PHP D. JavaScript

3、要使想服务器发送的数据不在浏览器的地址栏中显示,应该使用什么方法?( A ) A. POST B. GET C. PUT D. HEAD

4、考虑下面的HTML页面代码:请求,当用户在显示的超链接上单击时将调用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、若需要向浏览器发送Microsoft Word文档,应使用下面哪条语句创建out对象?( D )

A. PrintWrite out=response.getServletOutput(); B. PrintWrite out=response.getWrite(); C. OutputStream out=response.getWriter();

D. OutputStream out=response.getOutputStream();

8、有名为helloweb的Web应用程序,根目录下的WEB-INF文件夹里有哪些内容?( ABC )

A. classes目录 B. lib目录 C. web.xml D. Server.xml

9、对于名为helloweb的Web应用程序,的定义为/helloServlet/hello/abc.jsp,那么测试页面abc.jsp用的URL为( A )

A. http://localhost:8080/helloweb/helloServlet/hello/abc.jsp B. http://localhost:8080/helloweb/abc.jsp

C. http://localhost:8080/helloweb/helloServlet/abc.jsp D. http://localhost:8080/helloweb/hello/abc.jsp

10、想要正确显示中文,下面那一个可以在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的类定义

修饰符 class classname extends superclassname{}这 里,修饰符指public、private等。classname和superclassname是合法的标识符。extends用来表明classname是superclassname派生的子类。如果是没有派生类,可以省略extends servlet类

public class ServletDemoFirst extends HttpServlet { }

从结构上来说,符合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()方法将把Request Dispatcher资源的输出包含到当前输出中。

4、实现一登录页面login.jsp,用户名为自己的姓名,如对“张三”,其用户名为“zhangsan”,密码统一为“123”。当登录成功,跳转到index.jsp;否则跳转到error.jsp。请补充完整其Servlet代码。

login.jsp

LoginServlet.java

package com.demo; import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import javax.servlet.annotation.WebServlet;

@WebServlet(name=\public class LoginServlet extends HttpServlet {

public void doPost(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

String name = request.getParameter(\ String pwd = request.getParameter(\

if(name!=null&&name.equals(\ session.setAttribute(\设置session记录用户名 response.sendRedirect(\index.jsp\ } Else{ response.sendRedirect(\error.jsp\}

} }

本文来源:https://www.bwwdw.com/article/y1qv.html

Top