• 在java web 工程中实现登录和安全验证


    登录验证代码

    package security;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import model.User;
    
    
    @WebServlet("/login.do")
    public class Login extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	private final String ERROR_VIEW = "admin-login.jsp";
    
    	protected void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    		String username = request.getParameter("username");//从地址栏获取用户名
    		String password = request.getParameter("password");//从地址栏获取密码
    		
    		//判断用户名密码是否正确
    		if(username.equals("user") && password.equals("88888")) {
    			HttpSession session = request.getSession(true);
    			
    			//密码正确则设置一个session
    			session.setAttribute("user", new User(username,password));
    			putCookie(request,response,username);
    			//跳转到后台界面
    			request.getRequestDispatcher("console/admin.jsp").forward(request, response);
    		}else {
    			request.getRequestDispatcher(ERROR_VIEW).forward(request, response);
    		}
    		
    	}
    	
    	private void putCookie(HttpServletRequest request, HttpServletResponse response, String username) {
    		String value = request.getParameter("login");
    		//设置一个cookie
    		if ("auto".equals(value)) {
    			Cookie cookie = new Cookie("user", username);
    			cookie.setMaxAge(7 * 24 * 60 * 60);
    			response.addCookie(cookie);
    		}
    	}
    
    }
    

    2.过滤器安全验证代码

    package security;
    /**
     * @author 鐜嬭儨鍗?
     */
    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.annotation.WebInitParam;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.commons.lang3.ObjectUtils;
    
    //过滤以/console/,/admin/开头的请求
    @WebFilter(urlPatterns = { "/console/*", "/admin/*" }, initParams = {
    		@WebInitParam(name = "INDEX_VIEW", value = "/index.jsp") })
    public class MemberFilter implements Filter {
    
    	private String INDEX_VIEW;
    
    	@Override
    	public void init(FilterConfig config) throws ServletException {
    		this.INDEX_VIEW = config.getInitParameter("INDEX_VIEW");
    	}
    
    	@Override
    	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    	throws IOException, ServletException {
    		HttpServletRequest req = (HttpServletRequest) request;
    
    		if (ObjectUtils.anyNotNull(req.getSession().getAttribute("user"))) {
    			chain.doFilter(request, response);
    		} else {
    			HttpServletResponse resp = (HttpServletResponse) response;
    			resp.sendRedirect(req.getContextPath() + INDEX_VIEW);
    		}
    	}
    
    	@Override
    	public void destroy() {
    	}
    
    }
    

      

  • 相关阅读:
    T3054 高精度练习-文件操作 codevs
    0812—①
    T1553 互斥的数 codevs
    T1229 数字游戏 codevs
    T3187 队列练习3 codevs
    Android NDK工程的编译和链接以及使用gdb进行调试
    PE文件附加数据感染之Worm.Win32.Agent.ayd病毒分析
    PE文件加节感染之Win32.Loader.bx.V病毒分析
    Android动态调试so库JNI_Onload函数-----基于IDA实现
    android在JNI_OnLoad入口函数下断点动态调试so库
  • 原文地址:https://www.cnblogs.com/max-hou/p/11066650.html
Copyright © 2020-2023  润新知