zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    Flutter 复制文本到剪切板、从剪切板读取文本【转】
    CSS元素超出部分滚动,并隐藏滚动条【转】
    Flutter解决按钮请求防重复提交【转】
    CSS文字超出宽度自动换行【转】
    flutter 使用 url_launcher 唤起三方应用【转】
    Dart 基本数据类型与类型归属判断【转】
    JS 生成唯一字符串UUID【转】
    gtk+笔记
    Win32 API笔记
    utf-8与utf-16的区别
  • 原文地址:https://www.cnblogs.com/guyu/p/4381622.html
Copyright © 2011-2022 走看看