实验8 Servlet事件监听
2014-04-23 14:18
141 查看
实验8 Servlet事件监听
一、实验目的
1.定义一个在web应用程序内生成的事件
2.理解上下文、会话及请求不同监听接口的功能
3.利用监听器熟练编写Servlet应用
二、实验内容
1.对Servlet上下文进行监听练习
web.xml
在<web-app>...</web-app>中添加如下配置信息:
2. 监听Http会话练习。利用监听器熟练编写一个web应用程序,实现输出从数据源获得学生成绩,并处理修改成绩的事件过程。(有做思考题同学,直接给出修改以后的代码即可)
三、结果分析及总结:
本实验介绍Servlet的特殊用法——监听器,监听器可以处理Web应用中的某些特殊事件,类似于Java图形界面编程中提供的事件处理机制。此外,介绍了Servlet事件的上下文、会话事件和请求事件对应的监听器的接口、接口提供的方法和方法的触发形式。对Servlet的三类主要事件编写事件监听器,并对事件做出相应处理。
一、实验目的
1.定义一个在web应用程序内生成的事件
2.理解上下文、会话及请求不同监听接口的功能
3.利用监听器熟练编写Servlet应用
二、实验内容
1.对Servlet上下文进行监听练习
Dog.java package com.mypackage; /** * @author xuhaixin */ public class Dog { private String breed; public Dog(String str) { breed = str; } public String getBreed() { // TODO Auto-generated method stub return breed; } }
MyServletContexListener.java package 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 implements ServletContextAttributeListener, 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.java package 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.java package 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的三类主要事件编写事件监听器,并对事件做出相应处理。
相关文章推荐
- 简单Servlet事件监听
- ServletRequestListener请求的监听事件
- Servlet之监听事件细究
- [Servlet]HttpSession的事件监听、HttpServletRequest的事件监听
- 监听事件Servlet监听器的那些事儿
- Servlet事件监听器、监听servletContext域对象创建和销毁、监听三个域对象属性变化
- servlet监听事件
- java_web学习第三天(Servlet的事件监听)
- 关于Servlet中的事件监听
- Android移动终端设计实验二+事件监听实验
- [Servlet]事件监听,ServletContext的事件监听
- [Servlet]事件监听,ServletContext的事件监听
- Jsp/Servlet中的Listener事件监听
- 关于Servlet中的事件监听
- Spring知识点回顾(07)事件发布和监听
- android--ListView(控件+二种适配器+监听事件)
- vue 元素v-if时候监听click事件控制台报错出现Cannot set property 'onclick' of null
- android监听文件和目录的创建删除移动等事件
- JAVA JComboBox的监听事件(ActionListener、ItemListener)
- ListView当滚屏滚到最下边时事件监听