过滤器

 

 void init(FilterConfig config): 用于完成Filter 的初始化。 
 void destroy(): 用于Filter 销毁前,完成某些资源的回收。 
 void doFilter(ServletRequest request, ServletResponse response,FilterChain chain): 实现过滤功能,该方法就是对每个请求及响应增加的额外处理。

index.jsp主界面的一些代码

<form action="" method="post">
用户名:<input type="text" name="uname">
<input type="submit" value="提交">
</form>

因为提交方式是post提交所以在servlet的dopost方法写

HttpSession session = request.getSession();  //servlet里创建session对象
String uname = request.getParameter("uname");  //得到index界面用户名内容
if("admin".equals(uname)){            //自己设定的条件——如果是admin就跳转admin页面,反之就跳转普通user页面。
session.setAttribute("admin", uname);      //用session存储值
response.sendRedirect("http/admin.jsp");
}else{
session.setAttribute("user", uname);
response.sendRedirect("http/user.jsp");
}

web.xml文件配置

<filter>
<filter-name>go</filter-name>
<filter-class>org.lzx.servlet.go</filter-class>  //包名下的go文件
<init-param>
<param-name>encode</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>go</filter-name>  
<url-pattern>/http/*</url-pattern>  //自己创建的http文件夹里所有需要过滤的页面
</filter-mapping>

过滤器页面的方法

public void doFilter(ServletRequest request, ServletResponse response,  
FilterChain chain) throws IOException, ServletException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
HttpSession session= ((HttpServletRequest) request).getSession();  //过滤器页面创建session对象
String user = (String) session.getAttribute("user");  //查找key值为user的value
if(user == null){      //如果为空就会提示——例如直接输入登录后网页的地址是不会过去的。
out.print("登录错误");
}else{
chain.doFilter(request,response);  //请求转发到目的地址
}
}

 

posted on 2018-01-21 22:11  小欣柑  阅读(103)  评论(0编辑  收藏  举报

导航