ServletConfig 和 ServletContext

演示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       

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值