演示getlnitParameter()方的使用,具体如下。
(1)在chapter03项目的web.xml文件中为Servlet配置一些参数信息
<servlet>
<servlet-name>iteam</servlet-name>
<servlet-class>cn.itcast.firstapp.servlet.iteam</servlet-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</servlet>
<!-- 映射为iteam2和Test2 -->
<servlet-mapping>
<servlet-name>iteam</servlet-name>
<iteam>/iteam2</url-pattern>
<url-pattern>/iteam</url-pattern>
</servlet-mapping>
在pidan.servlet包中编写TestServlet02类,用于读取web.xml文件中的参数信息
package cn.itcast.firstapp.servlet;
<servlet>
<servlet-name>iteam</servlet-name>
<servlet-class>cn.itcast.firstapp.servlet.iteam</servlet-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</servlet>
<!-- 映射为iteam2和Test2 -->
<servlet-mapping>
<servlet-name>iteam</servlet-name>
<iteam>/iteam2</url-pattern>
<url-pattern>/iteam</url-pattern>
</servlet-mapping>
在pidan.servlet包中编写TestServlet02类,用于读取web.xml文件中的参数信息
package cn.itcast.firstapp.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class iteam
*/
//@WebServlet("/iteam")
public class iteam extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
PrintWriter out = response.getWriter();
ServletConfig config = this.getServletConfig();
String param = config.getInitParameter("encoding");
out.println("encoding="+param);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doGet(request, response);
//PrintWriter out = response.getWriter();
//out.write("this is doPost method");
}
}
ServletContext接口
- 1.获取Web应用程序的初始化参数
使用ServletContext接口获取Web应用程序的初始化参数。
(1)在chapter03项目的web.xml文件中,配置初始化参数信息和Servlet信息
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//response.getWriter().append("Served at: ").append(request.getContextPath());
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
ServletContext context = this.getServletContext();
Enumeration<String> paramNames = context.getInitParameterNames();
out.println("all the paramName and paramValue are following:");
while (paramNames.hasMoreElements()) {
String name = paramNames.nextElement();
String value = context.getInitParameter(name);
out.println(name + ":" + value);
out.println("<br />") ;
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doGet(request, response);
//PrintWriter out = response.getWriter();
//out.write("this is doPost method");
}
启动Tomcat服务器,访问TestServlet03,显示的结果
- 2. 实现多个Servlet对象共享数据
在 chapter03 项目的pidan.servlet包中创建两个Servlet 类TestServlet04和TestServlet05,这两个Servlet类中分别使用ServletContext接口中的方法设置和获取属性值
package pidan.servlet;
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet04 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext context = this.getServletContext();
context.setAttribute("data", "this servle save data");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
package pidan.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet05 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
ServletContext countext = this.getServletContext();
String data=(String) countext.getAttribute("data");
out.println(data);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
启动Tomcat服务器,先访问TestServlet04,将数据存入ServletContext对象,然后访问TestServlet05
3.读取Web应用下的资源文件
使用ServletContext对象读取资源文件
(1)创建一个资源文件。在chapterO3项目中右键单击src目录,选择【New】→【Other】
选项,进入创建文件的界面
点击Next,【File name】文本框中的内容为资源文件的名称,在此,将创建的资源文件命名为pidan.properties,并且选择存放的目录为src目录。单击【Finish】按钮,完成配置文件的创建。在创建好的itcast.properties文件中,输入如下所示的配置信息
、
Company = pidan
Address = ChongQing
(2)编写读取 pidan.properties资源文件的Servlet。在pidan.servlet包中创建一个名称为TestServlet06的Servlet类
package pidan.servlet;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Properties;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet06 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
ServletContext context = this.getServletContext();
PrintWriter out = response.getWriter();
InputStream in = context.getResourceAsStream("/WEB-INF/classes/pidan.properties");
Properties pros = new Properties();
pros.load(in);
out.println("Coompany="+ pros.getProperty("Company")+ "<br />");
out.println("Address="+ pros.getProperty("Address")+ "<br />");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}}
(3)启动Tomcat 服务器访问TestServlet06