Servlets+Jsp+实验4:Servlet容器模型 下载本文

4 实验四 Servlet容器模型

一. 实验目的

1. 掌握Web应用程序的DD文件web.xml的配置方法和作用; 2. 掌握如何通过ServletConfig获取Servlet的初始化参数; 3. 掌握ServletContext的概念,如何获得ServletContext对象; 4. 掌握如何通过RequestDispatcher转发请求。 二. 实验内容

1. 建立一个名为bookstore的Web应用程序

在Tomcat的webapps目录下,建立一个如下所示的目录结构:

|- bookstore

|- html (包含所有的HTML文件) |- jsp (包含所有的JSP文件)

|- images (包含所有的GIF、JPEG和BMP图象文件) |- index.html (默认的HTML文件) |- WEB-INF |-classes ├ lib

├ web.xml

图4.1 bookstore应用程序的目录结构

这样就建立了一个名为bookstore的Web应用程序,本实验后面的题目都在该应用程序下面完成。

2. 使用ServletConfig检索Servlet的初始化参数

【步骤1】编写ConfigDemoServlet程序,内容如下:

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

import javax.servlet.*;

import javax.servlet.http.*;

public class ConfigDemoServlet extends HttpServlet{ String servletName=null; ServletConfig config=null; String email=null;

String telephone=null;

public void init() {

config = getServletConfig();

servletName = config.getServletName(); email = config.getInitParameter(\;

telephone = config.getInitParameter(\; }

public void service(HttpServletRequest request,

HttpServletResponse response)

throws ServletException,IOException{

response.setContentType(\PrintWriter out = response.getWriter(); out.println(\

out.println(\名称:\ out.println(\地址:\ out.println(\电话:\out.println(\} }

【步骤2】修改web.xml文件,在其中添加下面Servlet定义和初始化参数定义

configDemoServlet

com.demo.ConfigDemoServlet

email

hacker@163.com

telephone 8899123

1

configDemoServlet /configDemo.do

【步骤3】在浏览器的地址栏中输入下面URL访问该Servlet:

http://localhost:8080/bookstore/configDemo.do

程序运行结果如图3.2所示:

图3.2 ConfigDemoServlet的运行结果

3. ServletContext的使用

修改上面程序,将email地址和电话使用ServletContext初始化参数传递给ConfigDemoServlet。使用ServletContext对象将email地址和电话信息写入日志文件中,并查看日志文件。

4.下面是一个Servlet,它可以获得有关服务器的信息。

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

import javax.servlet.*;

public class ServerInfo extends GenericServlet { public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { response.setContentType(\ PrintWriter out = response.getWriter(); ServletContext sc = getServletContext(); out.println(\ out.println(\ out.println(\ out.println(\获取服务器端信息\ out.println(\ out.println(\ out.println(\服务器端信息:\ out.println(\ out.println(\ out.println(\站点名\ out.println(\

request.getServerName() + \

out.println(\ out.println(\ out.println(\端口号\ out.println(\ out.println(\ out.println(\ out.println(\服务器类型\ out.println(\ out.println(\ out.println(\ out.println(\支持Servlet版本\

out.println(\

+sc.getMinorVersion()+\