当前位置: 代码迷 >> Java Web开发 >> 谁给我个过滤器
  详细解决方案

谁给我个过滤器

热度:274   发布时间:2007-07-26 16:08:01.0
谁给我个过滤器

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

最好是有注释的
搜索更多相关主题的帖子: 过滤器  

----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
自己写呗 那么懒
----------------解决方案--------------------------------------------------------

我不会写啊


----------------解决方案--------------------------------------------------------
回复:(笑海)谁给我个过滤器

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 {
// 这里可以什么都不做

}

}


----------------解决方案--------------------------------------------------------
很久没回来了,怎么我们的网站,发表时有点不正常的,搞了我些时间!~
我已经写得很详细了!~其他的自己解决哦!~
----------------解决方案--------------------------------------------------------
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"); %>


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

在把他发送到下一个页面.
----------------解决方案--------------------------------------------------------
我的问题还没解决  顶起来
----------------解决方案--------------------------------------------------------

当用户没用登陆, 想跳到登陆后的页面时.
上面的是你的问题??
你根本不需要帐号密码查出一个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上配置


----------------解决方案--------------------------------------------------------
  相关解决方案