实验8 Servlet事件监听
来源:互联网 发布:mac mini 装win 编辑:程序博客网 时间:2024/05/16 10:35
实验8 Servlet事件监听
一、实验目的
1.定义一个在web应用程序内生成的事件
2.理解上下文、会话及请求不同监听接口的功能
3.利用监听器熟练编写Servlet应用
二、实验内容
1.对Servlet上下文进行监听练习
Dog.javapackage com.mypackage;/** * @author xuhaixin */public class Dog {private String breed;public Dog(String str) {breed = str;}public String getBreed() {// TODO Auto-generated method stubreturn breed;}}
MyServletContexListener.javapackage com.myListener;import javax.servlet.ServletContext;import javax.servlet.ServletContextAttributeEvent;import javax.servlet.ServletContextAttributeListener;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import com.mypackage.Dog;/** * @author xuhaixin */public class MyServletContexListener implementsServletContextAttributeListener, ServletContextListener {public void contextDestroyed(ServletContextEvent arg0) {// TODO Auto-generated method stub}public void contextInitialized(ServletContextEvent arg0) {// 监听上下文创建,创建上下文属性ServletContext sc = arg0.getServletContext();String str = sc.getInitParameter("breed");Dog d = new Dog(str);sc.setAttribute("dogname", d);}public void attributeAdded(ServletContextAttributeEvent arg0) {// 监听上下文属性添加System.out.println("Web上下文中添加属性:" + arg0.getName() + ":"+ arg0.getValue());}public void attributeRemoved(ServletContextAttributeEvent arg0) {// 监听上下文属性删除System.out.println("Web上下文中删除属性:" + arg0.getName() + ":"+ arg0.getValue());}public void attributeReplaced(ServletContextAttributeEvent arg0) {// TODO Auto-generated method stub}}
DispServletContext.javapackage com.myServlet;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;import com.mypackage.Dog;/** * @author xuhaixin * */public class DispServletContext extends HttpServlet {public DispServletContext() {super();}public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}private static final String Content_Type = "text/html;charset=GB2312";public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType(Content_Type);// 设置生成的文档类型PrintWriter out = response.getWriter();// 得到输出字符输出流out.println("<HTML>");// 输出相应的HTML源文件out.println("<HEAD><TITLE>DisServletContext</TITLE></HEAD>");out.println("<BODY bgcolor=\"#ffffff\">");out.println("<p><H3>测试上下文监听器</H1></p>");Dog d = (Dog) getServletContext().getAttribute("dogname");out.println("dog's breed is:" + d.getBreed());out.println("<form method='post' action='/lab8/servlet/DelServletContexAttr'>");out.println("<input type=submit valuse='删除上下文属性' />");out.println("</Form>");out.println("</BODY>");out.println("</HTML>");out.flush();out.close();// 关闭输出流}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}public void init() throws ServletException {// Put your code here}}
DelServletContextAttr.javapackage com.myServlet;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;/** * @author xuhaixin */public class DelServletContextAttr extends HttpServlet {public DelServletContextAttr() {super();}public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}private static final String Content_Type = "text/html;charset=GB2312";public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType(Content_Type);// 设置生成的文档类型PrintWriter out = response.getWriter();// 得到输出字符输出流out.println("<HTML>");// 输出相应的HTML源文件out.println("<HEAD><TITLE>DelServletContextAtrr</TITLE></HEAD>");out.println("<BODY bgcolor=\"#ffffff\">");getServletContext().removeAttribute("dogname");out.println("<h3>上下文属性删除成功!");out.println("</Form>");out.println("</BODY>");out.println("</HTML>");out.flush();out.close();// 关闭输出流}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}public void init() throws ServletException {// Put your code here}}
web.xml
在<web-app>...</web-app>中添加如下配置信息:
<context-param><param-name>breed</param-name><param-value>Great Dane</param-value></context-param><listener><listener-class>com.myListener.MyServletContexListener</listener-class></listener><servlet><servlet-name>DelServletContexAttr</servlet-name><servlet-class>com.myServlet.DelServletContextAttr</servlet-class></servlet><servlet><servlet-name>DispServletContext</servlet-name><servlet-class>com.myServlet.DispServletContext</servlet-class></servlet><servlet-mapping><servlet-name>DelServletContexAttr</servlet-name><url-pattern>/servlet/DelServletContexAttr</url-pattern></servlet-mapping><servlet-mapping><servlet-name>DispServletContext</servlet-name><url-pattern>/servlet/DispServletContext</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><login-config><auth-method>BASIC</auth-method></login-config>
2. 监听Http会话练习。利用监听器熟练编写一个web应用程序,实现输出从数据源获得学生成绩,并处理修改成绩的事件过程。(有做思考题同学,直接给出修改以后的代码即可)
三、结果分析及总结:
本实验介绍Servlet的特殊用法——监听器,监听器可以处理Web应用中的某些特殊事件,类似于Java图形界面编程中提供的事件处理机制。此外,介绍了Servlet事件的上下文、会话事件和请求事件对应的监听器的接口、接口提供的方法和方法的触发形式。对Servlet的三类主要事件编写事件监听器,并对事件做出相应处理。
0 0
- 实验8 Servlet事件监听
- Servlet事件监听
- [Servlet]事件监听,ServletContext的事件监听
- [Servlet]事件监听,ServletContext的事件监听
- 关于Servlet中的事件监听
- [Servlet]HttpSession的事件监听、HttpServletRequest的事件监听
- Jsp/Servlet中的Listener事件监听
- Android移动终端设计实验二+事件监听实验
- java_web学习第三天(Servlet的事件监听)
- Servlet监听
- Servlet监听
- servlet监听
- servlet监听
- servlet监听
- servlet监听
- servlet监听
- servlet监听
- Servlet监听
- 【COCOS2DX-游戏开发之二九】CCEditBox的各种问题
- 前端Html页面滚动条显示问题
- table 表格 细边框 最简单样式
- DWR高级主题之DWR与spring集成
- 挥汗如雨-WebService
- 实验8 Servlet事件监听
- android 4.3 修改默认壁纸
- 图像匹配之距离变换匹配法
- AS3.0 设置sprite的锚点,不改变注册点的的函数
- android fragmentStateViewPagerAdapter 介绍
- JavaScript插件——Bootstrap中的JavaScript
- android的按键处理
- vSphere高级功能(二)—— 分布式资源调度功能DRS实践
- Hadoop-2.2.0中文文档——Apache Hadoop 下一代 MapReduce (YARN)