導航:首頁 > 編程語言 > springmvc攔截jsp

springmvc攔截jsp

發布時間:2023-06-09 15:15:47

㈠ springMVC中能訪問jsp頁面, 卻不能訪問controller什麼原因(報錯404)。搞了一下午,毫無頭緒!求指導!

原因:
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>mvc</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

將url-pattern中/*改為/
配置對所有請求進行了攔截,controller對視圖進行分發的時候又攔截。

㈡ SpringMVC中攔截/和攔截/*的區別

一、我們都知道在基於Spring的Application中,需要在web.xml中增加下面類似的配置信息:org.springframework.web.context..springframework.web.servlet.DispatcherServlet1servletName/此處需要特別強調的是/使用的是/,而不是/*,如果使用/*,那麼請求時可以通過DispatcherServlet轉發到相應的Action或者Controller中的,但是返回的內容,如返回的jsp還會再次被攔截,這樣導致404錯誤,即訪問不到jsp。所以如果以後發現總是有404錯誤的時候,別忘了check一下/的配置是否是/*.二、其實Spring的Servlet攔截器匹配規則(即)都可以自己定義,例:當映射為@RequestMapping("/user/add")時1、攔截*.do、*.htm,例如:/user/add.do這是最傳統的方式,最簡單也最實用。不會導致靜態文件(jpg,js,css)被攔截。2、攔截/,例如:/user/add可以實現現在很流行的REST風格。很多互聯網類型的應用很喜歡這種風格的URL。弊端:會導致靜態文件(jpg,js,css)被攔截後不能正常顯示。想實現REST風格,事情就是麻煩一些。後面有解決法還算簡單。3、攔截/*,這是一個錯誤的方式,請求可以走到Action中,但轉到jsp時再次被攔截,不能訪問到jsp。三、如何訪問到靜態的文件,如jpg,js,css?如果你的DispatcherServlet攔截"*.do"這樣的有後綴的URL,就不存在訪問不到靜態資源的問題。如果你的DispatcherServlet攔截"/",為了實現REST風格,攔截了所有的請求,那麼同時對*.js,*.jpg等靜態文件的訪問也就被攔截了。我們要解決這個問題。目的:可以正常訪問靜態文件,不可以找不到靜態文件報404。方案一:激活Tomcat的defaultServlet來處理靜態文件default*.jpgdefault*.jsdefault*.css特點:1.要配置多個,每種文件配置一個。2.要寫在DispatcherServlet的前面,讓defaultServlet先攔截請求,這樣請求就不會進入Spring了。3.高性能。備註:Tomcat,Jetty,JBoss,andGlassFish自帶的默認Servlet的名字--"default"GoogleAppEngine自帶的默認Servlet的名字--"_ah_default"Resin自帶的默認Servlet的名字--"resin-file"WebLogic自帶的默認Servlet的名字--"FileServlet"WebSphere自帶的默認Servlet的名字--"SimpleFileServlet"方案二:在spring3.0.4以後版本提供了mvc:resources,使用方法:images/**映射到ResourceHttpRequestHandler進行處理,location指定靜態資源的位置.可以是webapplication根目錄下、jar包裡面,這樣可以把靜態資源壓縮到jar包中。cache-period可以使得靜態資源進行webcache如果出現下面的錯誤,可能是沒有配置的原因。報錯WARNING:[/mvc/user/findUser/lisi/770]inDispatcherServletwithname'springMVC'使用元素,把mapping的URI注冊到SimpleUrlHandlerMapping的urlMap中,key為mapping的URIpattern值,而value為ResourceHttpRequestHandler,這樣就巧妙的把對靜態資源的訪問由HandlerMapping轉到ResourceHttpRequestHandler處理並返回,所以就支持classpath目錄,jar包內靜態資源的訪問.另外需要注意的一點是,不要對SimpleUrlHandlerMapping設置defaultHandler.因為對staticuri的defaultHandler就是ResourceHttpRequestHandler,否則無法處理staticresourcesrequest.方案三,使用會把"/**"url,注冊到SimpleUrlHandlerMapping的urlMap中,把對靜態資源的訪問由HandlerMapping轉到org.springframework.web.servlet.resource.處理並返回.使用就是各個Servlet容器自己的默認Servlet.補充說明:多個HandlerMapping的執行順序問題:的order屬性值是:0自動注冊的SimpleUrlHandlerMapping的order屬性值是:2147483646自動注冊的SimpleUrlHandlerMapping的order屬性值是:2147483647spring會先執行order值比較小的。當訪問一個a.jpg圖片文件時,先通過來找處理器,一定是找不到的,因為我們沒有叫a.jpg的Action。然後再按order值升序找,由於最後一個SimpleUrlHandlerMapping是匹配"/**"的,所以一定會匹配上,就可以響應圖片。訪問一個圖片,還要走層層匹配。不知性能如何?最後再說明一下,方案二、方案三在訪問靜態資源時,如果有匹配的(近似)總攔截器,就會走攔截器。如果你在攔截中實現許可權檢查,要注意過濾這些對靜態文件的請求。如何你的DispatcherServlet攔截*.do這樣的URL後綴,就不存上述問題了。還是有後綴方便。

㈢ 請問,java高手,spring mvc攔截器如何攔截所有的請求啊,包括html和jsp頁面

web.xml裡面這樣配置 他就攔截所有請求了
<servlet>
<servlet-name>spring-mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

㈣ springMVC 設置了<mvc:default-servlet-handler/> 為什麼攔截不到jsp 我的DispatcherServlet設置的是"/"

在springMVC-servlet.xml中配置<mvc:default-servlet-handler />後,會在Spring MVC上下文中定義一個org.springframework.web.servlet.resource.,它會像一個檢查員,對進入DispatcherServlet的URL進行篩查,如果發現是靜態資源的請求,就將該請求轉由Web應用伺服器默認的Servlet處理,如果不是靜態資源的請求,才由DispatcherServlet繼續處理。

閱讀全文

與springmvc攔截jsp相關的資料

熱點內容
手機電腦文件同步軟體 瀏覽:826
g9250升級系統 瀏覽:990
applecare換新機6換6s 瀏覽:311
南京密碼文件櫃咨詢多少錢 瀏覽:196
中央一號文件全文word 瀏覽:875
javaint數組轉list 瀏覽:14
怎麼用大號文件打開電腦 瀏覽:869
mac的文件夾怎麼找 瀏覽:498
烏魯木齊投標文件代寫多少錢 瀏覽:253
高清網路電視源碼 瀏覽:744
郵儲銀行綠卡什麼不能微信支付寶 瀏覽:293
格式m的文件怎麼打開 瀏覽:616
看車在哪個網站 瀏覽:820
pptv網路電視330 瀏覽:627
word的讀音 瀏覽:713
幾大資料庫 瀏覽:859
mac如何完全退出程序 瀏覽:111
打地鼠游戲編程如何加背景音樂 瀏覽:882
廣州白雲區PLc編程師哪裡有 瀏覽:216
招行app定期如何自動續期 瀏覽:748

友情鏈接