过滤器
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); //请求转发到目的地址
}
}