} ;
}
}
}
* forward(request,response)作用是将请求转发到end.jsp, * request封装了请求信息,response封装了响应信息。
* 注意是forward方式,这种方式只转发请求,不产生新的request对象。 * */
request.getRequestDispatcher(\
response);
} else {
//调用下一个filter或原始内容
chain.doFilter(request, response);
public void init(FilterConfig arg0) throws ServletException { System.out.println(\初始化方法!\}
Servlet文件:
package cn.servlet;
import java.io.IOException; import java.io.PrintWriter;
import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;
public class ServletTest extends HttpServlet {
public void destroy() {
super.destroy();
System.out.println(\结束!!\public ServletTest() { }
super();
}
}
public void init() throws ServletException { System.out.println(\开始!!\}
public void service(HttpServletRequest request, HttpServletResponse }
throws ServletException, IOException {
response)
// 设置编码
response.setContentType(\// 新建输出对象,是结果输出
PrintWriter out = response.getWriter();
// 接受请求参数
String username = request.getParameter(\String password = request.getParameter(\
//建立session
HttpSession session = request.getSession(); session.setAttribute(\
//建立application
ServletContext application= getServletContext(); application.setAttribute(\
//页面跳转
if(username.equals(\ }
out.println(session.getAttribute(\out.println(application.getAttribute(\out.println(\你好这里是service方法\out.flush(); out.close();
response.sendRedirect(\response.sendRedirect(\}else{
Form表单文件:
Listener开发
Listener中文名为监听器,从字面上可以看出,Listener
主要用来监听,通过Listener可以监听容器中某一执行动作,并根据其要求作出相应的响应。
在Servlet2.4中共有8个Listener接口,可以将其分为8
类:
第一类:与ServletContext有关的Listener接口:
包括两个Listener接口: ServletContextListener和ServletContextAttributeListener;
第二类:与HttpSession有关的Listener接口:
包括四个Listener接口:为HttpSessionListener,HttpSessionAttributeListener,HttpSessionBindingListener和HttpSessionActivationListener;
第三类:与ServletRequest有关的Listener接口: 包括两个Listener接口:为ServletRequestListener和
ServletRequestAttributeListener;
1.ServletContextListener接口
该接口中有两个方法一个是新建contextInitialized()方
法。一个是销毁contextDestroyed()方法,这两个方法还包括一个参数sce,其类型为ServletContextEvent.同过ServletContextEvent对象的getServletContext()方法可以获得ServletContext对象。 DEMO:
package cn.servlet;
import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener;
public class ServletContextListenerDemo implements ServletContextListener { }
public void contextInitialized(ServletContextEvent arg0) { }
System.out.println(\新创一个ServletContextListener\); public void contextDestroyed(ServletContextEvent arg0) { }
System.out.println(\销毁一个ServletContextListener\);
要配置的web.xml
2.ServletContextAttributeListener接口
本接口中包括三个方法:一个是attributeAdded()方法,
用来监听application范围内属性的添加;一个是attributeReplaced()方法,用来监听application范围属性的替换;一个是attributeRemove()方法,用来监听application范围属性的移除;在这三个方法中还包括一个参数scaba其类
型
为
ServletContextAttributeEvent,
通
过
ServletContextAttribute对象的getName()方法可获取属性的名,通过其getValue方法的可获得属性值; DEMO:
package cn.servlet;
import javax.servlet.ServletContextAttributeEvent; import javax.servlet.ServletContextAttributeListener;
public class ServletContextAttributeListenerDemo implements
public void attributeAdded(ServletContextAttributeEvent arg0) {
System.out.println(\添加的application的属性名为:
ServletContextAttributeListener {
\值为:\
public void attributeRemoved(ServletContextAttributeEvent arg0) {
System.out.println(\移除的application的属性名为:}
\值为:\