利用Filter完成的登录功能【练习】

来源:互联网 发布:mac zookeeper 客户端 编辑:程序博客网 时间:2024/05/17 16:14

利用Filter过滤器,做了一个简易的登录功能:

项目目录结构:

这里写图片描述

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>    <form action="http://localhost:8080/filter-login/loginServlet" method="post">        用户名:<input type="text" name="user">        密码:<input type="text" name="password">        <input type="submit" value="登录">    </form></body></html>

login-success.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>    <h3>登录成功!!!</h3>    </body></html>

loginServlet.java

package com.filter.servlet;import java.io.IOException;import javax.servlet.FilterChain;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.filter.filter.PasswordFilter;import com.filter.filter.UsernameFilter;/** * Servlet implementation class loginServlet */@WebServlet("/loginServlet")public class loginServlet extends HttpServlet {    private static final long serialVersionUID = 1L;    public loginServlet() {        super();        // TODO Auto-generated constructor stub    }    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        // TODO Auto-generated method stub        doPost(request, response);    }    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        request.getRequestDispatcher("/login-success.jsp").forward(request,response);    }}

UsernameFilter.java:

package com.filter.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.annotation.WebFilter;import javax.servlet.http.HttpServletResponse;/** * Servlet Filter implementation class UsernameFilter */@WebFilter("/UsernameFilter")public class UsernameFilter implements Filter {    /**     * Default constructor.      */    public UsernameFilter() {        // TODO Auto-generated constructor stub    }    public void destroy() {        // TODO Auto-generated method stub    }    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {        if (request.getParameter("user").equals("admin")){            chain.doFilter(request, response);            System.out.println("登录名放行");        }        else{            request.getRequestDispatcher("/index.jsp").forward(request,response);        }    }    public void init(FilterConfig fConfig) throws ServletException {        // TODO Auto-generated method stub    }}

PasswordFilter.java:

package com.filter.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.annotation.WebFilter;import javax.servlet.http.HttpServletResponse;/** * Servlet Filter implementation class PasswordFilter */@WebFilter("/PasswordFilter")public class PasswordFilter implements Filter {    public PasswordFilter() {        // TODO Auto-generated constructor stub    }    public void destroy() {        // TODO Auto-generated method stub    }    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {        if (request.getParameter("password").equals("123123")){            chain.doFilter(request, response);            System.out.println("密码放行");        }        else{            request.getRequestDispatcher("/index.jsp").forward(request,response);        }    }    public void init(FilterConfig fConfig) throws ServletException {        // TODO Auto-generated method stub    }}
原创粉丝点击