- Java code
public class GetCUIListen implements Filter{ private HttpServletRequest httpServletRequest; @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { // TODO Auto-generated method stub httpServletRequest=(HttpServletRequest)arg0; User user; if(httpServletRequest.getSession().getAttribute("currentUser")==null&&(user=getUser())!=null) httpServletRequest.getSession().setAttribute("currentUser",user ); System.out.println("doFilter"); arg2.doFilter(arg0, arg1); } private User getUser() { // TODO Auto-generated method stub // System.out.println(hibernateTemplate==null); //我本来想spring注入进来的,可是不对// session.beginTransaction();// User user=(User) session.load(User.class, "wubuqilai@gmail.com");// session.getTransaction().commit();// session.close();// return user; return null; } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub System.out.println("init"); } }
功能就是从cookie中读取用户的email ,然后在session中通过数据库获取用户的全部信息,
本来要写一个listen 类,可是无法获取httpServletRequest类
还有数据库也获取不到啦,我从写一个session的话,没有hibernate xml文件,我都封装在web.xml里啦
------解决方案--------------------
filter你去看看声明顺序,如果被框架的先拦截去了,自然自定义的就悲剧了
------解决方案--------------------
自定义的Filter你在web.xml中配置的时候,写在struts2 Filter的前面,不然不起作用的。
------解决方案--------------------
自定义的要放在前面吧?
------解决方案--------------------
这个和顺序有关系吗 请问