• jsp中用户未登录,防止其他链接访问


    方法1:  用session

    方法2 :  用filter

    方法1:  在处理登录的servlet中写如下语句

    //设置session的失效时间单位为 秒
    request.getSession().setMaxInactiveInterval(1*60);

    (还可以在web.xml中写如下语句,设置失效时间。不过前者优先级别高。

    <session-config>
    <session-timeout>1</session-timeout> <!-- 单位为分钟 -->
    </session-config>


    //作用有,可以让主要获取登陆者的姓名。
    request.getSession().setAttribute("loginuser", username);


    //还可以设置非法访问,在jsp页面写入如下代码
    /*<%
    //使用session技术判断用户是否登陆过,没有登录过则session获得username为null
    if(session.getAttribute("loginuser")==null){
    response.sendRedirect("index.jsp"); //userName为空,则跳转到登陆界面
    }
    %>*/
    方法2 :写一个类实现filter的三个方法 destroy()  doFilter() init(),然后在web.xml中设置一下。
     isLoginFilter.java

    package filter;

    import java.io.IOException;
    import java.io.PrintWriter;

    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 isLoginFilter implements Filter
    {

    public void destroy() {}


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

    System.out.println("every request pass here");

       //将请求转换成来自http的请求
    HttpServletRequest hrequest=(HttpServletRequest)request;

    HttpSession session=hrequest.getSession();

    //获取session中的信息
    Object stu = session.getAttribute("loginuser");

    //加个if判断
    if( stu == null){

    hrequest.getRequestDispatcher("index.jsp").forward(request, response);
    }

    chain.doFilter(request,response);
    }

    public void init(FilterConfig filterConfig) throws ServletException {


    }
    }

    web.xml中的设置

    <!-- 方法2:用filter拦截器 -->
    <filter>
    <filter-name>isLoginFilter</filter-name>
    <filter-class>filter.isLoginFilter</filter-class>
    </filter>

    <filter-mapping>
    <filter-name>isLoginFilter</filter-name>

    根据需要可以选择抒写对应的路径。

    <url-pattern>/*</url-pattern>


    </filter-mapping>

  • 相关阅读:
    最长回文子串
    无题2
    第N个泰波那契数
    除数博弈
    函数调用_强制指定回调函数的函数上下文
    函数调用_通过apply和call方法调用
    函数调用_通过构造函数调用
    理解函数调用_函数调用
    处理集合_删除数组元素的粗略方法
    理解函数调用_使用严格模式边使用arguments别名
  • 原文地址:https://www.cnblogs.com/guyu/p/4381622.html
Copyright © 2020-2023  润新知