1 简述什么是Servlet

参考答案

Sun(Oracle)公司制定的一种用来扩展Web服务器功能的组件规范。

2 简述Web工程的目录结构

参考答案

Web工程的目录结构如图-1所示:

图- 1

3 简述什么是HTTP协议

参考答案

HTTP协议是HyperText Transfer Protocol的简写,它是由w3c(万维网联盟)制定的一种应用层协议,用来定义浏览器与web服务器之间如何通信以及通信的数据格式。

4 简述常用的请求头和响应头的键值对

参考答案

请求头中的键值对:

1.Content-Length:105 表示请求消息正文的长度为105。

2. Connection : Keep-Alive表示需要持久连接。

3. Host : localhost表示请求资源的 Internet的主机为localhost,端口为80。

响应头的键值对:

1.Server : Apache/2.0.45表示服务器名字为Apache/2.0.45。

2. Content-Type : text/html表示响应的MIME类型为text/html。

3. Last-Modified:MON 16 Jan 2012 12:44:13表示文档的最后改动时间为2012年1月16日 12点44分13秒,星期一。

5 下列关于HTTP响应代码说法正确的是:()

A.404错误是因为service方法运行时有错误。

B.405错误有可能是访问时路径拼写有误。

C.500错误有可能是web.xml文件中配置错误。

D.工程没有部署一定会出现404错误。

参考答案

本题正确答案为CD。

6 阅读下面的代码,说明序号处代码的含义

public class HelloServlet extends HttpServlet{
	
	public HelloServlet() {
		System.out.println(
				"HelloServlet的构造器正在执行...");
	}


	public void service(HttpServletRequest request,
							HttpServletResponse response)//-------------1
		throws ServletException,IOException{		
		System.out.println("service方法正在执行...");	
		String name = request.getParameter("name");
		String rs = 
			"<span style='color:red;font-size:30px;'>" +
			"hello " + name + 
			"</span>";
		response.setContentType("text/html;charset=utf-8");

		PrintWriter out = response.getWriter();//------------------------2
		out.println(rs);//-----------------------------------------------3		
		out.close();
	}
}

参考答案

本题中三个序号处代码的含义如下:

1.服务器在创建好Servlet对象之后,会调用该方法来处理请求。

2. 获得向浏览器打印的输出流。

3. 向流中输出数据,其实质是,将处理结果存放到response对象上。

7 编写Servlet在网页上显示当前时间

本题的详细要求如下:

参考答案

本题可以按照如下步骤进行编写:

步骤一:新建工程web01_exec

新建web工程web01_exec,如图-1所示。

图- 1

步骤二:新建类DateServlet

首先在工程web01_exec的src下新建包web;然后在该包下新建类DateServlet,是该类继承自HttpServlet,并覆盖service方法;最后在service方法中输出当前系统的时间到浏览器上。代码如下所示:

package web;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DateServlet extends HttpServlet {
	public void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		PrintWriter out = response.getWriter();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		String dateStr = sdf.format(new Date());
		out.println("now:" + dateStr);
		out.close();
	}
}

步骤三:配置web.xml

在web.xml文件中配置DateServlet,代码如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<servlet>
		<servlet-name>dateServlet</servlet-name>
		<servlet-class>web.DateServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>dateServlet</servlet-name>
		<url-pattern>/date</url-pattern>
	</servlet-mapping>
</web-app>

步骤四:部署访问

浏览器的输出效果如图-2所示。

图-2