JSP之应用Servlet过滤器进行身份验证

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

1、Servlet过滤器的作用描述

(1)在HttpServletRequest到达Servlet 之前,拦截客户的HttpServletRequest。

根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据。

(2)在HttpServletResponse 到达客户端之前,拦截HttpServletResponse。

根据需要检查HttpServletResponse,可以修改HttpServletResponse头和数据。

2、应用Servlet过滤器进行身份验证

假设网站根目录下的login1.htm、longin1.jsp用于用户登录,而chap08目录下的文件需要用户登录后才能访问。

(1)编写Servlet过滤器

@WebFilter("/FilterStation")

public class FilterStation extends HttpServlet implements Filter {

PRivate FilterConfig filterConfig;

public FilterStation() {

super();

}

public void destroy() {

}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

Httpsessionsession=((HttpServletRequest)request).getSession();

response.setCharacterEncoding("gb2312");

if(session.getAttribute("me")==null){

PrintWriter out=response.getWriter();

out.print("<script>alert('请登录!');location.href='../login1.htm'</script>");

}

else{

// pass the request along the filter chain

chain.doFilter(request, response);

}

}

public void init(FilterConfig fConfig) throws ServletException {

// TODO Auto-generated method stub

this.filterConfig=fConfig;

}

}

(2)配置web.xml

<filter>

<filter-name>filterstation</filter-name>

<filter-class>zhou.FilterStation</filter-class>

</filter>

<filter-mapping>

<filter-name>filterstation</filter-name>

<url-pattern>/chap08/*</url-pattern>

</filter-mapping>

(3)login1.htm代码

<html>

<head>

<title>用户登录</title>

</head>

<body>

<form method="POST" action="login1.jsp">

<p>用户名:<input type="text" name="user" size="18"></p>

<p>密码:<input type="text" name="pass" size="20"></p>

<p><input type="submit" value="提交" name="ok">

<input type="reset" value="重置" name="cancel"></p>

</form>

</body>

</html>

(4)login1.jsp代码

<%@ page contentType="text/html;charset=GB2312" %>

<html>

<head><title>Session 应用演示</title></head>

<%

if (request.getParameter("user")!=null && request.getParameter("pass")!=null)

{

String strName=request.getParameter("user");

String strPass=request.getParameter("pass");

if (strName.equals("admin") && strPass.equals("admin"))

{

session.setAttribute("login","OK");

session.setAttribute("me",strName);

response.sendRedirect("chap08/welcome.jsp");

}

else

{

out.print("<script>alert('用户名或密码错误');location.href='login1.htm'</script>");

}

}

%>

</html>

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航