注册 登录
编程论坛 J2EE论坛

谁给我个过滤器

笑海 发布于 2007-07-26 16:08, 1131 次点击

当用户没用登陆, 想跳到登陆后的页面时. 用过滤器处理这个请求.

最好是有注释的
11 回复
#2
欢天喜地2007-07-26 16:32

你在过滤器中添加这样的代码就可以了
if(session对象.getSession()==false)
(
跳转到登陆页面
)

#3
无理取闹2007-07-26 16:41
自己写呗 那么懒
#4
笑海2007-07-26 17:57

我不会写啊

#5
qsrock2007-07-26 21:02
回复:(笑海)谁给我个过滤器

package 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;
import javax.servlet.http.HttpSession;

public class EncodingFilter implements Filter {

public void destroy() {
// 这里可以什么都不做

}

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

HttpServletRequest req=(HttpServletRequest)request;
HttpSession session=req.getSession(false);
//看用户登陆没,假如你的User是用户类
User user=(User)session.getAttribute("...");//这里你之前要有session.serAttribute("...",arg)
//接下来是判断user是否为null,null即没有登陆
if(user!=null){你想把页面跳到那里}
else{你想把页面跳到那里}
filterChain.doFilter(request, response);//不要忘记这行

}

public void init(FilterConfig arg0) throws ServletException {
// 这里可以什么都不做

}

}

#6
qsrock2007-07-26 21:05
很久没回来了,怎么我们的网站,发表时有点不正常的,搞了我些时间!~
我已经写得很详细了!~其他的自己解决哦!~
#7
笑海2007-07-26 23:04
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chin) throws IOException, ServletException {
String errors = "errors.jsp";
HttpServletRequest hreq =(HttpServletRequest)req;
HttpServletResponse hres = (HttpServletResponse)res;
isLOG = (String) hreq.getSession().getAttribute("LOG");
if(isLOG!=null&&(isLOG.equals("true")||isLOG=="true")){
chin.doFilter(req,res);
hreq.getSession().removeAttribute("LOG");
return ;
}
else{
hres.sendRedirect(errors);
}
}


在JSP页面中 <%session.setAttribute("LOG","true"); %>


这样写 效果也是可以的 但是不知道写好不好 这样的话 那是不是重用性就差了
#8
笑海2007-07-26 23:08
回复:(qsrock)回复:(笑海)谁给我个过滤器
你这样是 是不是要在JSP页面根据 帐号密码查出一个USER的对象

在把他发送到下一个页面.
#9
笑海2007-07-27 11:47
我的问题还没解决  顶起来
#10
qsrock2007-07-27 21:43

当用户没用登陆, 想跳到登陆后的页面时.
上面的是你的问题??
你根本不需要帐号密码查出一个USER的对象,只要它登陆了,user就不为null,给你写多点注释,剩下的要自己解决了!

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

HttpServletRequest req=(HttpServletRequest)request;
HttpSession session=req.getSession(false);
//获得session,这个session是你之前就应该有的,没有它就不会创建

//看用户登陆没,假如你的User是用户类
User user=(User)session.getAttribute("...");//这里你之前要有session.serAttribute("...",arg)
//接下来是判断user是否为null,null即没有登陆
if(user!=null){你想把页面跳到那里} //如果user不为null,就表示用户已经登陆了
else{你想把页面跳到那里} //user为null用户没有登陆,你可以在这里把它跳转到登陆页面
filterChain.doFilter(request, response);//不要忘记这行

}


记得做完Filter要在web.xml上配置

#11
笑海2007-07-27 23:24
老兄 我不是看不懂代码

我是说逻辑

结帖了 兄弟们我结帖了
#12
qsrock2007-07-28 23:20

我都不知道你用什么来写!~我是用struts的Action来做逻辑的!当然你也可以在jsp页面中做逻辑咯`~

1