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