如何在整个webapp中调用某个实例对象?
来源:互联网 发布:便宜又好用的鼠标知乎 编辑:程序博客网 时间:2024/06/07 02:24
思路:首先我们创建一个普通的类(class),然后利用监听器接口(listener)来初始化类并且添加到属性(setAttribute)中,最后在servlet中调用。
DOG 类:
package com.example;public class Dog {private String breed;public Dog(String breed) {this.breed = breed;}public String getBreed() {return breed;}}
创建一个监听类(只要实现 ServletContextListener 接口即可,注意在contextInitialized中将类初始化!!!不要在contextDestroyed中!!!)
package com.example;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class MyServletContextListener implements ServletContextListener {@Overridepublic void contextDestroyed(ServletContextEvent event) {}@Overridepublic void contextInitialized(ServletContextEvent event) {// TODO Auto-generated method stubServletContext sc = event.getServletContext();String dogBreed = sc.getInitParameter("breed");Dog d = new Dog(dogBreed);sc.setAttribute("dog", d);}}
servlet调用类:
package com.example;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ListenerTester extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("test context attributes set by listener<br>"); out.println("<br>");Dog dog = (Dog) getServletContext().getAttribute("dog");out.println("Dog’s breed is: " + dog.getBreed());}}
xml的配置文件需要配置listener
<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <servlet> <servlet-name>ListenerTester</servlet-name> <servlet-class>com.example.ListenerTester</servlet-class> </servlet> <servlet-mapping> <servlet-name>ListenerTester</servlet-name> <url-pattern>/ListenTest.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <context-param><param-name>breed</param-name><param-value>Great Dane</param-value> </context-param> <listener><listener-class> com.example.MyServletContextListener</listener-class> </listener> </web-app>
- 如何在整个webapp中调用某个实例对象?
- [iOS]在WebApp中如何使用JS调用iOS的函数
- iOS在WebApp中如何使用JS调用iOS的函数
- 如何要在Swift工程中调用OC文件 以及 如何调用某个类的方法
- 如何在整个项目中构造一个通用的共享的唯一的对象
- JAVA中如何调用其他类文件中的对象实例
- qt5.5.1 如何判断某个对象是否属于qt类中实例
- Spring 在applicationContext.xml文件中调用某个对象的方法并赋值
- 在unity中调用某个程序运行
- 如何在Struts2中获取spring的实例化对象
- 如何在oc的类中调用c++对象
- 如何在脚本中调用该对象的component
- 在整个数据库搜索某个字符串在哪个表的哪个字段中
- 在RFT中如何通过脚本获取已添加到某个脚本中的测试对象?
- 在整个库里查某个值并替换
- myeclipse中如何在整个工程中搜索字符串
- 如何在Joomla中锁定某个用户?
- 如何在cmd中进入某个目录
- Linux下硬链接和软链接区别
- it高手与it民工区别
- 【Android】时间与日期Widget(DatePicker 与 TimePicker)
- 消除重复行distinct
- Hibernate的检索方式
- 如何在整个webapp中调用某个实例对象?
- JSON数据的中文乱码问题
- plsql developer 一执行就报错,存储过程编译报错
- 用组件来重构你的游戏实体
- ProgressBar和ProgressDialog(二)
- _stdcall _cdecl fastcall 调用方式详解
- ProgressBar和ProgressDialog(三)
- 用依赖注射模式实现快速安全的游戏对象原型
- 我的心情记录。。。