Servlet 过滤器应用实例二 检查登录信息并向客户端返回script

来源:互联网 发布:mac贴膜会影响散热吗 编辑:程序博客网 时间:2024/05/21 06:40

1、login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%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><form action="success.jsp" method="post">username:<input type="text" name="username"><br><input type="submit" value="submit"></form>  </body></html>


 

2、filter.java

package com.sun.filter;import java.io.IOException;import java.io.PrintWriter;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;public class EncodeFilter implements Filter {public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest)request;HttpServletResponse resp = (HttpServletResponse)response;String username = req.getParameter("username");String uri = req.getRequestURI();if(uri.endsWith("login.jsp")) {filterChain.doFilter(request, response);return;}if(username != null && "admin".equals(username)) {filterChain.doFilter(request, response);} else {PrintWriter out = resp.getWriter();String script = "<script>alert('error!');window.location.href='login.jsp'</script>";out.write(script);}}public void init(FilterConfig arg0) throws ServletException {}}


 

web.xml 配置略,servlet 略……

 

 

原创粉丝点击