过滤器内容
************************************************************************************
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request = (HttpServletRequest)arg0;
HttpServletResponse response = (HttpServletResponse)arg1;
//验证用户是否登录
Cookie[] cookies = request.getCookies();
String sysUser = null;
if(cookies != null){
for(int i = 0; i<cookies.length; i++){
Cookie c = cookies[i];
if(c.getName().equalsIgnoreCase("sysUser")){
sysUser = c.getValue();
}
}
}
if(null == sysUser){
response.sendRedirect("/web/web/account/login.jsp");
}
arg2.doFilter(arg0, arg1);
}
**************************************************************************************
web.xml
<filter>
<filter-name>ValidateFilter</filter-name>
<filter-class>net.filter.ValidateFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ValidateFilter</filter-name>
<url-pattern>/web/user/*</url-pattern>
</filter-mapping>
*********************************************************************************在未登录的情况下我在地址栏输入
hhttp://127.0.0.1:8080/web/web/user/index.jsp
会正常过滤,跳转到登录页面
可当我输入
http://127.0.0.1:8080/web/user.do?method=doIndex
却不能正常的过滤跳转到登录页面
同样是跳转到user文件下的index.jsp页面为什么第一个可以实现过滤而第二个不行
是不是因为过滤是针对地址栏的网址来实现过滤。ssh过滤器
************************************************************************************
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request = (HttpServletRequest)arg0;
HttpServletResponse response = (HttpServletResponse)arg1;
//验证用户是否登录
Cookie[] cookies = request.getCookies();
String sysUser = null;
if(cookies != null){
for(int i = 0; i<cookies.length; i++){
Cookie c = cookies[i];
if(c.getName().equalsIgnoreCase("sysUser")){
sysUser = c.getValue();
}
}
}
if(null == sysUser){
response.sendRedirect("/web/web/account/login.jsp");
}
arg2.doFilter(arg0, arg1);
}
**************************************************************************************
web.xml
<filter>
<filter-name>ValidateFilter</filter-name>
<filter-class>net.filter.ValidateFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ValidateFilter</filter-name>
<url-pattern>/web/user/*</url-pattern>
</filter-mapping>
*********************************************************************************在未登录的情况下我在地址栏输入
hhttp://127.0.0.1:8080/web/web/user/index.jsp
会正常过滤,跳转到登录页面
可当我输入
http://127.0.0.1:8080/web/user.do?method=doIndex
却不能正常的过滤跳转到登录页面
同样是跳转到user文件下的index.jsp页面为什么第一个可以实现过滤而第二个不行
是不是因为过滤是针对地址栏的网址来实现过滤。ssh过滤器
解决方案 »
- 求教一个HQL语句
- Extjs3.0整合ssh时提交表单,总是执行failure函数,不知道为什么,请各位大虾指教!
- 登陆界面文本框提示怎么搞
- struts dao 和 spring dao的区别?
- struts加了过滤器以后出现的错误,帮忙给看看:javax.servlet.ServletResponse.setCharacterEncoding(Ljava/lang/String;)V
- 有关Hibernate与Oracle10g问题,急....
- 分页显示
- 基于weblogic的filter的问题,江湖救急!
- java时间问题
- 毕业设计选题,有工作经验的指点指点!
- RMI在linux开启端口花了好几分钟 怎么解决?
- jdbc连接数据库时 报这个错误怎么解决啊?
http://127.0.0.1:8080/web/user.do?method=doIndex
所以要用以上的方式来进入打开页面,同样是跳转到user/index.jsp<forward name="index" path="/web/user/index.jsp"></forward>
http://127.0.0.1:8080/web/user.do?method=doIndex
所以要用以上的方式来进入打开页面,同样是跳转到user/index.jsp<forward name="index" path="/web/user/index.jsp"></forward>
没明白你意思啊 ,这个跟跳转方式无关啊,都会被filter拦截的。。你配置的是/web/user/*
请求路径中满足 /web/user/* 才会验证是否登录
http://127.0.0.1:8080/web/web/user/index.jsp
http://127.0.0.1:8080/web/user.do?method=doIndex
显然第二种不满足 ,要想满足,,
更改struts下的namespace,
或者
<filter-mapping>
<filter-name>ValidateFilter</filter-name>
<url-pattern>/web/user/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ValidateFilter</filter-name>
<url-pattern>/user.do</url-pattern>
</filter-mapping>
或者
除了登录页面意外干脆配置/* 拦截所有请求
http://127.0.0.1:8080/web/user.do?method=doIndex
所以要用以上的方式来进入打开页面,同样是跳转到user/index.jsp<forward name="index" path="/web/user/index.jsp"></forward>
没明白你意思啊 ,这个跟跳转方式无关啊,都会被filter拦截的。。你配置的是/web/user/*
请求路径中满足 /web/user/* 才会验证是否登录
http://127.0.0.1:8080/web/web/user/index.jsp
http://127.0.0.1:8080/web/user.do?method=doIndex
显然第二种不满足 ,要想满足,,
更改struts下的namespace,
或者
<filter-mapping>
<filter-name>ValidateFilter</filter-name>
<url-pattern>/web/user/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>ValidateFilter</filter-name>
<url-pattern>/user.do</url-pattern>
</filter-mapping>
或者
除了登录页面意外干脆配置/* 拦截所有请求怎么更改struts下的namespace。
配置成“<url-pattern>/user/*</url-pattern>”这样就可以了