10Servlet-filter 实例

来源:互联网 发布:哈萨克歌软件 编辑:程序博客网 时间:2024/06/05 05:53

过滤器(filter) 登陆检测功能。




SessionFilter.java  过滤器


package com.tao.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class SessionFilter implements Filter {public void destroy() {// TODO Auto-generated method stub}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {// TODO Auto-generated method stubHttpServletRequest resq = (HttpServletRequest) request;HttpServletResponse resp = (HttpServletResponse) response;HttpSession session = resq.getSession();String username = (String) session.getAttribute("user");if (username != null && !username.equals("")) {System.out.println(username);} else {String msg = "你还没有登陆!";HttpSession hs = resq.getSession();hs.setAttribute("error", msg);resq.getRequestDispatcher("/login.jsp").forward(resq, resp);}}public void init(FilterConfig filterConfig) throws ServletException {// TODO Auto-generated method stub}}
LoginServlet.java  

package com.tao.servlet;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 javax.servlet.http.HttpSession;public class LoginServlet extends HttpServlet {/** * Constructor of the object. */public LoginServlet() {super();}/** * Destruction of the servlet. <br> */public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String username=request.getParameter("username");System.out.println(username);HttpSession session=request.getSession();session.setAttribute("user", username);response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println("  <BODY>");out.print(username);out.println("  </BODY>");out.println("</HTML>");out.flush();out.close();}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}/** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */public void init() throws ServletException {// Put your code here}}
login.jsp  登陆页面

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'login.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>${error }<form action="<%=path%>/servlet/LoginServlet" method="post"><table><tr><td>username:</td><td><input type="textbox" name="username" value="${un }"></td></tr><tr><td>password:</td><td><input type="password" name="password" value="${pw }"></td></tr><tr><td></td><td><input type="submit" value="login" /></td></tr></table></form></body></html>
web.xml  配置文件 ★

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" 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_2_5.xsd"><display-name></display-name><servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>LoginServlet</servlet-name><servlet-class>com.tao.servlet.LoginServlet</servlet-class></servlet><servlet-mapping><servlet-name>LoginServlet</servlet-name><url-pattern>/servlet/LoginServlet</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><filter><filter-name>ef</filter-name><filter-class>com.tao.filter.MyFilter</filter-class></filter><filter-mapping><filter-name>ef</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter><filter-name>sf</filter-name><filter-class>com.tao.filter.SessionFilter</filter-class></filter><filter-mapping><filter-name>sf</filter-name><url-pattern>/page/*</url-pattern></filter-mapping></web-app>

打开page/MyJsp.jsp  ,因为没有从login.jsp进入,所以没有给session中的"user"传值,过滤器检测到,就跳转到login.jsp页面,如下图:




0 0
原创粉丝点击