filter的问题?求指教

warmersen 2012-08-06 11:25:46
这是SetFilter.java代码:

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

request.setCharacterEncoding("gbk");
response.setContentType("text/html;charset=gbk");
HttpServletRequest request2 = (HttpServletRequest) request;
HttpServletResponse response2 = (HttpServletResponse) response;
HttpSession session = request2.getSession(true);
String username = (String) session.getAttribute("username");
if (username == "") {
response2.sendRedirect("login.jsp");
}

chain.doFilter(request, response);
}
这是web.xml代码:

<filter>
<filter-name>SetFilter</filter-name>
<filter-class>
com.bbs.filter.SetFilter
</filter-class>

</filter>
<filter-mapping>
<filter-name>SetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

为什么过滤器不起作用呀?
...全文
179 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉他猪 2012-08-07
  • 打赏
  • 举报
回复
你是不是判断错误了啊应该去判断
如果没登陆就去访问受保护的页面此时username是null而不是""
if (username == null)
warmersen 2012-08-07
  • 打赏
  • 举报
回复
还是不管用啊,单个设置字符集过滤,我可以搞定,但设置用户登录过滤,就不会搞了啊,求指正。


还有字符和用户过滤可以写在同一个类吧?
warmersen 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 4 楼 的回复:
Java code


if (userEnName != null) {
chain.doFilter(request, response);
return;
}
else{
response2.sendRedirect("login.jsp");
]
还有web.xml文件中,改为:
<filter-mapping>
<filter-name>……
[/Quote]

哦,那要怎么放行呀?
jackson_fighting 2012-08-07
  • 打赏
  • 举报
回复
字符串比较 用 equals
it491328322 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
Java code


if (userEnName != null) {
chain.doFilter(request, response);
return;
}
else{
response2.sendRedirect("login.jsp");
]
还有web.xml文件中,改为:
<filter-mapping>
<filter-name>S……
[/Quote]

万一人家要拦截servlet呢?还是使用/*比较妥当哦。。。
当然,楼主,你的login.jsp这个请求需要放行噢。。。不然,你永远无法登陆哦。。。
YAVA_2009 2012-08-07
  • 打赏
  • 举报
回复

if (userEnName != null) {
chain.doFilter(request, response);
return;
}
else{
response2.sendRedirect("login.jsp");
]
还有web.xml文件中,改为:
<filter-mapping>
<filter-name>SetFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
这样表示过滤.jsp结尾的文件
liqi_wj 2012-08-07
  • 打赏
  • 举报
回复

if (username ==null || username.equals("")) {
response2.sendRedirect("login.jsp");
}
warmersen 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
从request里面获取到你的请求url,判断是否是请求的logon.jsp,如果是的,直接dofilter,如果不是,就进入你之前的逻辑判断。。。
[/Quote]

还是不会,你帮我看下,我的代码有问题吗?
it491328322 2012-08-07
  • 打赏
  • 举报
回复
从request里面获取到你的请求url,判断是否是请求的logon.jsp,如果是的,直接dofilter,如果不是,就进入你之前的逻辑判断。。。
宏Lee 2012-08-06
  • 打赏
  • 举报
回复
"".equals(username);这样写判断条件

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧