登陸檢查 springMVC Interceptor攔截器實現登訪問


       web開發中常常會遇到瀏覽網頁時,須要用戶登錄以後才能訪問一些重要的頁面,當你訪問一些「非法」頁面時,也就是若是檢查你尚未登陸進該系統,則須要先登陸,只要你成功登陸就能夠訪問信管內容,實現該功能須要javascript

    繼承攔截器HandlerInterceptorAdapter,這個類中有三個重要的方法,灰色老哥方法能夠先不關注,主要代碼實現是綠色那一部分,代碼以下:
html

        /**java

         * @author  tonyweb

         * @date  2014-12-17spring

         */mvc

        /**app

         * 登陸攔截器,只有登陸以後才能訪問ide

         */post

        public class LoginInterceptor extends HandlerInterceptorAdapter{ui

        @Override

        public void afterCompletion(HttpServletRequest request,

        HttpServletResponse response, Object handler, Exception ex)

        throws Exception {

        super.afterCompletion(request, response, handler, ex);

        }  

        @Override

        public void postHandle(HttpServletRequest request,

        HttpServletResponse response, Object handler,

        ModelAndView modelAndView) throws Exception {

        super.postHandle(request, response, handler, modelAndView);

        }

     // 應許經過的URL

        private static final String[] IGNORE_URI = {"/login.from","/toLogin.from"};

        @Override

        public boolean preHandle(HttpServletRequest request,

        HttpServletResponse response, Object handler) throws Exception {

        request.setCharacterEncoding("utf-8");

        response.setCharacterEncoding("UTF-8");  

                response.setContentType("text/html;charset=UTF-8");

        String url = request.getRequestURI().toString();

        System.out.println(url);

        boolean flag = false;

        for (String s : IGNORE_URI) {

                    if (url.contains(s)) { // 若是是登錄頁面的請求 則放過

                        flag = true;

                        break;

                    }}

        if(!flag){

        User user = (User)request.getSession().getAttribute("user");

        System.out.println(user);

        if(user == null){ // 檢查是否登錄,不然跳回登錄頁面

                PrintWriter out = response.getWriter();  

                StringBuilder builder = new StringBuilder();  

                builder.append("<script type=\"text/javascript\" charset=\"UTF-8\">");  

                builder.append("alert(\"您還未登陸,請先登陸.\");");  

                builder.append("window.top.location.href=\"");  

                builder.append("/StudentSystem/login/toLogin.from\";</script>");  

                    out.print(builder.toString());  

                    out.close();  

        return false;

        }}

        return true;

        }}

    

    固然實現了登陸檢查以後,須要將自定義這個攔截器在主配置文件中註冊

    spring_mvc.xml註冊攔截器代碼以下:

    

    <!-- 配置登錄攔截器 -->

    <mvc:interceptors>

            <mvc:interceptor>

            <!--path="/**"//**表示全部文件夾及子文件夾 -->

                <mvc:mapping path="/**"/>

                <bean id="loginInterceptor" class="edu.nwsuaf.xc.interceptor.LoginInterceptor"/>

            </mvc:interceptor>

        </mvc:interceptors>

   

    這個是在springMVC下實現的。

相關文章
相關標籤/搜索