web工程設定專案的預設訪問路徑和登入攔截
package com.test.filter; import java.io.IOException; 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; public class LoginFilter implements Filter{ @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { // 判斷是否是http請求 if (!(servletRequest instanceof HttpServletRequest) || !(servletResponse instanceof HttpServletResponse)) { throw new ServletException( "OncePerRequestFilter just supports HTTP requests"); } // 獲得在下面程式碼中要用的request,response,session物件 HttpServletRequest httpRequest = (HttpServletRequest) servletRequest; HttpServletResponse httpResponse = (HttpServletResponse) servletResponse; HttpSession session = httpRequest.getSession(true); String[] strs = { "loginpage", "login", "logout", "static" }; // 路徑中包含這些字串的,可以不用登入直接訪問 StringBuffer url = httpRequest.getRequestURL(); /** * 過濾掉根目錄 */ String path = httpRequest.getContextPath(); String protAndPath = httpRequest.getServerPort() == 80 ? "" : ":" + httpRequest.getServerPort(); String basePath = httpRequest.getScheme() + "://" + httpRequest.getServerName() + protAndPath + path + "/"; if (basePath.equalsIgnoreCase(url.toString())) { filterChain.doFilter(servletRequest, servletResponse); return; } // 特殊用途的路徑可以直接訪問 if (strs != null && strs.length > 0) { for (String str : strs) { if (url.indexOf(str) >= 0) { filterChain.doFilter(servletRequest, servletResponse); return; } } } // 從session中獲取使用者資訊 String loginInfo = (String) session.getAttribute("username"); if (null != loginInfo && !"".equals(loginInfo)) { // 使用者存在繼續訪問此 filterChain.doFilter(servletRequest, servletResponse); } else { // 使用者不存在返回登入 String returnUrl = httpRequest.getContextPath(); httpRequest.setCharacterEncoding("UTF-8"); httpResponse.setContentType("text/html; charset=UTF-8"); // 轉碼 httpResponse .getWriter() .println( "<script language=\"javascript\">alert(\"您還沒有登入,請先登入!\");if(window.opener==null){window.top.location.href=\"" + returnUrl + "\";}else{window.opener.top.location.href=\"" + returnUrl + "\";window.close();}</script>"); return; } } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } }
四、最後驗證攔截器設定,直接用我們之前寫的user業務請求來訪問:http://localhost:9690/test/index.do
攔截成功!
相關推薦
web工程設定專案的預設訪問路徑和登入攔截
package com.test.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; im
idea配置application context(web專案的預設訪問路徑)
idea的application context eclipse大家應該都用過,eclipse訪問專案的路徑一般是localhost:8080/projectName, 當把IDE換成idea以後,訪問路徑一般情況下就變成了localhost:8080,路
idea中Java Web專案的訪問路徑問題
說明 這裡只以 servlet 為例,沒有涉及到框架,但其實路徑的基本原理和框架的關係不大,所以學了框架的同學如果對路徑有疑惑的也可以閱讀此文 專案結構 在 idea 中新建一個 Jav
SpringBoot專案修改訪問埠和訪問路徑
建立SpringBoot專案,啟動後,預設的訪問路徑即主機IP+預設埠號8080:http://localhost:8080/ package com.springboot.test; import org.springframework.web.bind.ann
web專案的相對路徑和絕對路徑
這個部落格源於我遇到的bug bug描述:大家都知道相對路徑和絕對路徑的含義,但是大家有沒有想到web工程和非web工程的相對路徑和絕對路徑呢? 這就是我要在這篇部落格中主要說明的。 需求:在web專案中獲取到指定資料夾中的檔名稱 在idea上的目錄:src/main/re
eclipse web工程 設定預設編碼為Utf-8
在eclipse中,js檔案的預設編碼是ISO-8859-1,每次新增一個js檔案,就必須手動的將js檔案的編碼格式改為UTF-8,由於這種針對每個檔案的編碼設定儲存在專案的.settings/org.eclipse.core.resources.prefs檔案中,因此每次
eclipse4.3裡修改專案在tomcat中的上下文訪問路徑和部署路徑
1 eclipse裡修改專案在tomcat中的上下文訪問路徑 eclipe裡面部署web專案到整合的tomcat裡預設訪問路徑是專案名稱那麼我要修改訪問的路徑怎麼辦? 看下圖 右鍵點選eclipse中需要改變訪問url的專案找到web project setting
Apache配置對外訪問預設路徑(域名預設訪問路徑)
摘抄。同以下博主遇到同樣問題,故此記錄。 作者:ChasingdreamLY 原文:https://blog.csdn.net/qq_26591517/article/details/80414073 --------------------- 百度搜索了快兩小時,發現網上
(Linux)Ubuntu16.04下設定matlab預設工作路徑
一、修改預設工作路徑 方法:編輯matlabrc.m檔案,在matlab的安裝路徑下面。 sudo vim /usr/local/MATLAB/R2016b/toolbox/local/matlabrc.m 編輯檔案在末尾加入: cd ‘/home/yczhang/Document
springboot-靜態資源預設訪問路徑順序
META-INF/resources/hello.html hello.html內容META-INF/resources/hello static/hello.html hello.html內容static/hello resources/hello.html 內容res
dede 修改首頁預設訪問路徑/dede修改安裝目錄
dede下載後解壓了,我們安裝後,發現訪問首頁的路徑不是我們想要的怎麼辦呢? 這種訪問 是不是很煩。我只想要www.cfi.cn後就能訪問我的網站。(1) 你自己安裝的時候 在 訪問路徑那點 自己小心的設定一下(2) 安裝完了之後 自己手動去修改咯。 方法/
nginx配置改變預設訪問路徑
在安裝完nginx服務後,url訪問的預設路徑是安裝的路徑html資料夾下的內容,如果需要指定自定義的路徑,需要配置nginx.conf檔案內容,這樣通過url訪問就可以了,比如: http://12
各種訪問路徑和路徑跳轉總結篇
路徑 從一個點到另一個點的過程稱為路徑。 從一個起點到某個具體資源的過程稱為訪問路徑,訪問路徑的最後一個斜槓(/)後面的是資源名稱。 絕對資源路徑是從起點http://開始到某個具體資源的前面的最後一個”/”結束的路徑。 絕對訪問路徑:https://l
Tomcat的預設訪問路徑
放在外網的應用,使用者多是直接輸入域名訪問,相信沒有哪個後面還加個尾巴,而Tomcat的預設目錄是ROOT,所以我們需要更改其預設目錄。 更改Tomcat的預設目錄很簡單,只需要修改server.xml就可以了。 具體是是在<Host></Host>
二十一、在web(ssm/maven)專案中使用slf4j和log4j2記錄系統日誌
本篇的重點在於LOG4J2,它與LOG4J 第一版區別很大。我將教程放在後面,將一些知識放在前面,所以想看教程的直接拉到後面即可。 理論知識 關於兩版的區別 兩版的不同,直接的表現是在Maven倉庫中log4j 表示第一版,org.apache.logging.log4j 表示第
Java之idea建立gradle專案預設沒有src和resources解決方法
在專案根目錄下的build.gradle中新增建立目錄的任務,如下: task "create-dirs" << { sourceSets*.java.srcDirs*.each{ it.mkdirs() }
獲得jsp頁面當前專案的訪問路徑
首先,在jsp頁面引入C標籤。 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 然後,在jsp頁面引入ja
linux安裝apache2部署html並修改預設訪問路徑
放到/usrlocal下 # cd /usr/local # tar -zvxf httpd-2.2.29.tar.gz //解壓 # cd httpd-2.2.29 # mkdir -p
更改CI框架預設訪問路徑及去掉index.php
下面是去掉index.php的操作 PHP CodeIgniter(CI)去掉 index.php - Langjun - 部落格園 設定訪問的預設路徑是在 檔案下,找到 $route[‘default_controller’] = “index”;
根據工程實踐專案進行需求分析和概念原型建模
1 前言 此篇部落格主要是根據最近學習的軟體工程建模方法,對筆者所參與的工程實踐專案,進行建模與分析。主要是需求分析、業務領域建模以及資料建模,最終形成一個完整的概念原型。現在將建模的過程總結如下: 2 工程實踐背景介紹 工程實踐是一個關於留學生資訊管理與分析的平臺。該系統是為使用者提供有關留學服務資訊的