原理
Web应用程序有严格定义的目录结构,它需要一个称为部署描述文件的文件web.xml来配置。对应用程序的每个Servlet,可以在web.xml中定义若干个初始化参数,然后通过ServletConfig对象获取这些参数。
ServletContext对象表示该应用程序的环境,通过该对象可以获得应用程序范围的初始化参数、容器版本信息、资源的URL、在其中存放共享数据以及登录日志等。
1. 在IDE中建立一个Web应用程序,建立如下所示的目录结构:
|- exp05
|- webroot
|- html (包含所有的HTML文件)
|- jsp (包含所有的JSP文件)
|- images (包含所有的GIF、JPEG和BMP图象文件)
|- index.html (默认的HTML文件)
|- WEB-INF
|-classes
├ lib
├ web.xml
图1 exp05应用程序的目录结构
【步骤1】修改web.xml文件,在其中添加Servlet定义和初始化参数 定义。
<servlet>
<servlet-name>ConfigDemoServlet</servlet-name>
<servlet-class>com.demo.ConfigDemoServlet</servlet-class>
<init-param>
<param-name>email</param-name>
<param-value>hacker@163.com</param-value>
</init-param>
<init-param>
<param-name>telephone</param-name>
<param-value>8899123</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ConfigDemoServlet</servlet-name>
<url-pattern>/ConfigDemoServlet</url-pattern>
</servlet-mapping>
【步骤2】编写ConfigDemoServlet程序,读取web.xml文件中该servlet的名称和初始化参数email、telephone,并将这两个参数的值在响应的HTML文本中输出。
package com.demo;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "ConfigDemoServlet")
public class ConfigDemoServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
//设置网页响应类型
response.setContentType("text/html");
//实现具体操作
PrintWriter out = response.getWriter();
ServletConfig config = getServletConfig();
String name = config.getServletName();
//String name = this.getServletName();
String email = this.getInitParameter("email");
String telephone = this.getInitParameter("telephone");
out.println("<html><body");
out.println("<br>");
out.println("select名称:"+name+"<br>");
out.println("Email地址:"+email+"<br>");
out.println("电话:"+telephone+"<br>");
out.println("</body><