ssm 转发请求_SSM框架碰到的问题
什么時(shí)候用classpath:
這是開(kāi)發(fā)時(shí)候的項(xiàng)目結(jié)構(gòu)
這是打包發(fā)布后的項(xiàng)目結(jié)構(gòu)
"classpath:"指WEB-INF/classes/這個(gè)目錄。所有的class文件和資源文件都在這個(gè)目錄下。
- 如果在classes目錄外的就需要配classpath:,如web.xml,如果在classes目錄內(nèi)的不需要配,如ssm的xml文件
- classpath:entry/dev/spring-mvc.xml,這只能代表一個(gè)文件
- classpath*:**/mapper/mapping/*Mapper.xml,這能代表多個(gè)文件
一句話就是xml中寫(xiě)classpath,代碼文件中直接寫(xiě)路徑
轉(zhuǎn)載來(lái)源
為什么要配置靜態(tài)資源過(guò)濾
Spring MVC 中的核心 servlet - DispatcherServlet,我們?cè)?web.xml 文件中通常這樣定義:
<servlet> <servlet-name>mvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/conf/spring/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>/意味著,DispatcherServlet會(huì)處理所有請(qǐng)求,諸如 /images/a.jpg, /css/hello.css 等這些靜態(tài)資源請(qǐng)求,我們并沒(méi)有對(duì)應(yīng)實(shí)現(xiàn)的controller,所以有兩種配置方式解決
<!--根據(jù)請(qǐng)求查找對(duì)應(yīng)的mapping,然后交給默認(rèn)的 ResourceHttpRequestHandler處理 ResourceHttpRequestHandler的功能就是把location下對(duì)應(yīng)的資源返回 --> <mvc:resources location="/resources/"mapping="/resources/**"/> <!--為了便捷,一般這樣寫(xiě)--><mvc:resources location="/" mapping="/" />兩種方案沒(méi)有很明顯優(yōu)劣,都可以用
<!--該方案的流程是,采用mapping=='/*'即匹配所有請(qǐng)求 1.當(dāng)請(qǐng)求controller都無(wú)法對(duì)應(yīng)的時(shí)候再到該HandlerMapping,由于/*所以必定能匹配 2.然后會(huì)將該請(qǐng)求交給DefaultServletHttpRequestHandler,它的功能就是將請(qǐng)求交給tomcat原生defaultservlet執(zhí)行 3.defaultservlet就是專(zhuān)門(mén)來(lái)處理資源請(qǐng)求,同樣也是查找路徑然后返回--> <mvc:default-servlet-handler/>Spring MVC 中,訪問(wèn)一個(gè)圖片,還要走層層匹配。性能肯定好不到哪里去。它們存活于 servlet 容器,只要由 servlet 容器處理這些靜態(tài)資源,必然要將這些資源讀入 JVM 的內(nèi)存區(qū)中。所以,處理靜態(tài)資源,我們通常會(huì)在前端加 apache 或 nginx。
轉(zhuǎn)載來(lái)源
urlPattern 中/和/*區(qū)別
常見(jiàn)的三種url-pattern配置
將url-pattern配置為 ‘/’,不攔截.jsp,但為什么依然可以得到對(duì)應(yīng)的.jsp頁(yè)面呢?
這里有一個(gè)比較細(xì)節(jié)的地方要講,我們將url-pattern配置為 ‘/’之后,我們不在攔截(.jsp, *.jspx)后綴的文件,但是當(dāng)Springmvc轉(zhuǎn)發(fā)剛剛的請(qǐng)求’/WEB-INF/jsp/test.jsp’,我們依然得到了渲染成功得test.jsp頁(yè)面,證明雖然DispatcherServlet不在處理攔截(.jsp, *.jspx)后綴的文件,但依然會(huì)有別的Servlet攔截了該請(qǐng)求,這里我們無(wú)法從我們項(xiàng)目的web.xml文件中查看到該Servlet,這些默認(rèn)的Servlet存在于我們的TOMCAT中。
圖一中的JspServlet會(huì)處理后綴為(*.jsp, *.jspx)的文件,這也就解釋了為什么我們可以得到對(duì)應(yīng)頁(yè)面了,我們可以自己做一個(gè)小實(shí)驗(yàn),由于在WEB-INF的jsp無(wú)法直接誒訪問(wèn),我們?cè)赪EB-INF外寫(xiě)一個(gè)簡(jiǎn)單的jsp文件,并發(fā)送該請(qǐng)求,我們可以直接得到對(duì)應(yīng)的頁(yè)面,這就是JspServlet的作用。
中文亂碼問(wèn)題
服務(wù)端接受客戶端的傳值出現(xiàn)了中文亂碼
解決方案,配置字符攔截器
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的ssm 转发请求_SSM框架碰到的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 为什么要叫长虹玻璃呢_中和热测定实验中为
- 下一篇: ip访问 webstorem_常见问题-