2003best007 2009-06-04 16:43
浏览 206
已采纳

struts2登录设计思路的问题,求解!

a页面是登录页面,登录成功就转到b页面,并且把a页面里的信息保存到session供操作表时使用,但是如果没有登录的话b页面是不允许访问的,输入b的地址要跳转到登录页面a,还有如果在firefox里成功进入了b,把b的地址复制到opera里怎样调到登录页面?地址复制应该是无效的,有好的解决方法吗?不要很模糊的回答用“拦截器”,”过滤器“,我想知道思路

  • 写回答

2条回答 默认 最新

  • iteye_17762 2009-06-04 22:39
    关注

    web.xml文件中添加:

    UserSessionFilter
    com.yunfei.filter.UserSessionFilter

    <filter-mapping>
        <filter-name>UserSessionFilter</filter-name>
        <url-pattern>这里写你要过滤页面的路径,如admin文件夹下的所有页面,则写/admin/*,如果是b页面,则写/b.jsp
    
                     </url-pattern>
    </filter-mapping>
    

    import java.io.IOException;
    import java.util.List;

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

    import com.yunfei.pojo.User;
    import com.yunfei.pojo.UserList;

    public class UserSessionFilter implements Filter {

    public void destroy() {
        // TODO Auto-generated method stub
    
    }
    
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse res = (HttpServletResponse) response;
        String currentURL = req.getRequestURI(); // 取得根目录所对应的绝对路径:
    
        String targetURL = currentURL.substring(currentURL.indexOf("/", 1),
                currentURL.length()); // 截取到当前文件名用于比较
    
        //System.out.println(targetURL);
        HttpSession session = req.getSession();
        User u = (User) session.getAttribute("UserSession");
        //System.out.println("u1111111111111111111==" + session.getId());
        if (u != null) {
    
                chain.doFilter(request, response);
    
        } else {
            //System.out.println("----");
            req.getRequestDispatcher("/login.html").forward(req, res);
            return;
        }
    }
    
    public void init(FilterConfig filterConfig) throws ServletException {
        // TODO Auto-generated method stub
    
    }
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器