ServletConfig对象

可以通过web.xml文件中的<init-param>标签来初始化参数,这些参数会在创建servlet实例时将其封装到ServletConfig对象中,并在调用service中的init方法时将其传递给servlet;

设置参数:

<init-param>
<param-name>name</param-name>
<param-value>lzj</param-value>
<init-param>

定义ServletConfig对象,通过init方法将其传给Servlet以便开发人员对其进行调用;

private ServletConfig config ;//定义ServletConfig对象,web容器在创建servlet对象时会自动将参数传入;
public void init(ServletConfig config) throws ServletException{
this.config = config
}//将其传给Servlet;
......
String paramVal = this.config.getInitParameter("name");//获取指定的初始化参数;
Enumeration<String>e = config.getInitParameterNames();//获取所有的初始化参数;
while (e.hasMoreElements()){
String name = e.nextElement();
String value = config.getInitParameter(name);
response.getWriter().print(name + " = " + value+ "<br/>");//打印输出初始化参数;

ServletContext对象

web容器在启动时会为每个web应用程序都创建一个ServletContext对象,所有的Servlet都共享这个对象,因此可以通过这个对象来实现Servlet对象之间的通讯,可以通过ServletConfig中的getServletContext的方法来获取SercletContext对象;

//在第一个Servlet中获取ServletContext对象并储存数据;
ServletContext context = this.getServletConfig.getServletContext();
context.setAttribute("date",date);
//在第二Servlet中提取获得data数据;
ServletContext context = this.get.ServletContext();
String data = context.getAttribute("data");

除了上面所说的<init-param>可以设置初始化参数,还可用<context-param>标签来设置参数,再用ServletContext方法中的getInitParameter()方法来获取;

<context-param>
<param-name>name</param-name>
<param-value>lzj</param-value>
<context-param>//在web.xml设置后初始化参数;
........
ServletContext context = this.getServletContext();
String Paramval = context.getInitParameter("name");//通过getInitParameter方法获取初始化参数;

除了实现数据通讯、初始化参数,ServletContext还可以用来实现转发;

通过ServletContext对象中的getRequestDispatcher得到RequestDispatcher对象,再调用forward方法实现转发;

ServletContext context = this.getServletContext();
RequestDispatcher rd = context.getRequestDispatcher("/servlet/ServletContextDemo5");
rd.forward(request, response);

最新文章

  1. html内的空格占位
  2. day1作业--三级菜单
  3. 解析nginx负载均衡
  4. [Flex] ButtonBar系列——flex3 ButtonBar属性labelPlacement标签相对于指定图标的方向
  5. TransactionScope事务对多个数据库的操作
  6. hdu 3758 Factorial Simplification
  7. c++中&amp;amp;和&amp;amp;&amp;amp;有什么差别
  8. “Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED”
  9. FFmpeg 学习(六):FFmpeg 核心模块 libavformat 与 libavcodec 分析
  10. Springboot 系列(一)Spring Boot 入门篇
  11. 如何一步一步新建一个Owin项目
  12. 自动化测试的Selenium的python版安装与使用
  13. [luogu2292][L语言]
  14. Nowcoder contest 370B Rinne Loves Graph 【分层图最短路】
  15. IT痴汉的工作现状11-程序猿的烦恼
  16. 检测SQLServer复制订阅进度
  17. 如何在Windows下运行linux shell脚本
  18. hbase权限管理
  19. Status Code:405 Method Not Allowed
  20. docker images 详解

热门文章

  1. canvas画随机的四位验证码
  2. stylus快速上手
  3. passwd - 密码文件
  4. SQL Server 2008将数据库数据导出到脚本
  5. Linux性能优化从入门到实战:13 内存篇:内存指标/工具总结、问题定位和调优
  6. glDrawArrays 和 glDrawElements
  7. git上传文件夹的问题
  8. 阿里云轻应用云服务器配置tomcat
  9. [web 安全] xxe
  10. 基于Nginx和uWSGI在Ubuntu上部署Django项目