Filter 的基本使用
程序员文章站
2022-06-13 13:19:39
...
第一步打开这个other
第二步打开
然后搜索Filter,点击Next
取包名,然后取class的名字,点击next的步骤
修改这个/jsps/cart/*
添加CartItemServlet
点击Add
过滤掉/jsps/cart/* 和 CartItemServlet
点击下一步finish
将会自动生成LoginFilter
自动生成的web.xml文件
分析的文字:
登录页面的过滤器代码:
package cn.itcast.goods.web.filter;
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.http.HttpServletRequest;
public class LoginFilter implements Filter {
// /**
// * Default constructor.
// */
// public LoginFilter() {
// // TODO Auto-generated constructor stub
// }
// 这个自动生成的构造器,没用到!
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
/*
* 1.获取session中的user
* 2.判断是否为null
* > 如果为null: 保存错误信息,转发到msg.jsp
* > 如果不为null: 放行
*/
HttpServletRequest req = (HttpServletRequest) request;
Object user = req.getSession().getAttribute("sessionUser");
if(user == null){
req.setAttribute("code", "error"); //为了显示X图片
req.setAttribute("msg", "您还没有登录,不能访问本资源");
req.getRequestDispatcher("/jsps/msg.jsp").forward(req, response);
}else{
chain.doFilter(request, response); //放行
}
}
public void init(FilterConfig fConfig) throws ServletException {
}
}
上一篇: PywebLesson02
下一篇: kvm可用存储类型简介(译)