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 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?