目录 ServletContext接口 1.概念 2.功能 1、获取Web应用程序的初始化参数 2、实现多个Servlet对象共享数据 3、读取Web应用下的资源文件 ServletConfig接口 1.概念 2.ServletConfig的常用方法 ServletCon
目录
- ServletContext接口
- 1.概念
- 2.功能
- 1、获取Web应用程序的初始化参数
- 2、实现多个Servlet对象共享数据
- 3、读取Web应用下的资源文件
- ServletConfig接口
- 1.概念
- 2.ServletConfig的常用方法
ServletContext接口
1.概念
当Servlet容器启动时,会为每个Web应用创建一个唯一的ServletContext对象代表当前Web应用,可以和程序的容器(服务器)来通信。
两种获取方式:
通过request对象获取
ServletContext context = request.getServletContext();
通过HttpServlet获取
ServletContext context = this.getServletContext();
2.功能
1、获取Web应用程序的初始化参数
定义了getInitParameterNames()和getInitParameter(String name)方法分别用来获取参数名和参数值。
package cn.itcast.chapter04.servlet; import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class TestServlet03 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); // 得到ServletContext对象 ServletContext context = this.getServletContext(); // 得到包含所有初始化参数名的Enumeration对象 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>"); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
2、实现多个Servlet对象共享数据
由于一个Web应用中的所有Servlet共享同一个ServletContext对象,因此ServletContext对象的域属性可以被该Web应用中的所有Servlet访问。在ServletContext接口中定义了分别用于增加、删除、设置ServletContext域属性的四个方法,如表1所示。
表1 ServletContext接口的方法
ServletContext context = this.getServletContext(); // 通过setAttribute()方法设置属性值 context.setAttribute("data", "this servlet save data");
3、读取Web应用下的资源文件
ServletContext接口中用于获取资源路径的相关方法,具体如下:
表2 ServletContext接口的常用方法
编写读取itcast.properties资源文件:
package cn.itcast.chapter04.servlet; import java.io.*; import java.util.Properties; import javax.servlet.*; import javax.servlet.http.*; public class TestServlet06 extends HttpServlet { public 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/itcast.properties"); Properties pros = new Properties(); pros.load(in); out.println("Company=" + pros.getProperty("Company") + " <br>"); out.println("Address=" + pros.getProperty("Address") + " <br>"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
ServletConfig接口
1.概念
Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装到一个ServletConfig对象中,通过调用init(ServletConfig cofig)方法将ServletConfig对象传递给Servlet。
2.ServletConfig的常用方法
表1 ServletConfig接口的常用方法
package cn.itcast.chapter04.servlet; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class TestServlet02 extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); // 获得ServletConfig对象 ServletConfig config = this.getServletConfig(); // 获得参数名为encoding对应的参数值 String param = config.getInitParameter("encoding"); out.println("encoding="+param); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
到此这篇关于Java ServletContext与ServletConfig接口使用教程的文章就介绍到这了,更多相关Java ServletContext与ServletConfig内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!