Day2-springmvc初解
1. web.xml
配置springmvc的入口DispatcherServlet,把所有的請求都提交到該Servlet。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"><!-- DispatcherServlet --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping> </web-app>說明:
1:在web.xml里面導入前端控制器,通過< url-pattern >設置匹配規則,如上面設置的/,會匹配所有的url。
2:若url匹配成功,交給HandlerMapping處理映射器處理(具體的形式是業務代碼中的Controller,通過RequestMapping進一步傳遞匹配)
3:HandlerAdapter處理器適配器,處理一些功能請求,返回一個ModelAndView對象(包括模型數據、邏輯視圖名)
4:ViewResolver視圖解析器,先根據ModelAndView中設置的View解析具體視圖
5:然后再將Model模型中的數據渲染到View上。
6:若第2步的url未成功匹配,則相當于通過缺省匹配(有關匹配規則,下面會解釋),直接由ViewResolver視圖解析器負責映射資源文件。映射成功予以返回顯示,否則則返回404錯誤。
原文:https://blog.csdn.net/windflybird/article/details/81054584
注:<servlet>必須含有<servlet-name>和<servlet-class>,或者<servlet-name>和<jsp-file>
<url-pattern>表示瀏覽器訪問的頁面
<servlet-name>名字與<servlet>中的<servlet-name>相同。
2.加載Servlet的過程
容器的Context對象對請求路徑(URL)做出處理,去掉請求URL的上下文路徑后,按路徑映射規則和Servlet映射路徑(<url- pattern>)做匹配,如果匹配成功,則調用這個Servlet處理請求。
3.Serclet是如何匹配路徑的
4.工程名-servlet.xml
我們在平臺項目兩個工程中分別使用了不同的配置方式,介紹如下:
我們在business-client工程中按照默認方式查找MVC的配置文件,配置文件目錄為: /WEB-INF/business-servlet.xml。工程目錄結構如下所示:
我們在public-base-server工程中,通過第2種方式進行配置,把spring-servlet.xml放到src/main/resources/config/spring-servlet.xml,則需要在配置DispatcherServlet時指定標簽。具體代碼如下:
工程目錄結構如下所示:
注意:用戶可以配置多個DispatcherServlet來分別處理不同的url請求,每個DispatcherServlet上下文都對應一個自己的子Spring容器,他們都擁有相同的父Spring容器(業務層,持久(dao)bean所在的容器)。
classpath:在工程文件中有一個.classpath文件,打開后找到如下:
這里的path就是classpath的路徑。打開這個文件路徑可以看到不僅僅是java類會被編譯成class存放在classes目錄下,而且properties文件、xml文件也會放到這個目錄下,但沒有找到web.xml。
4.jsp頁面的訪問
先附上要訪問的jsp頁面:
這里要訪問的是WEB-INF底下page文件夾中的index.jsp頁面。
原工程名-servlet.xml的代碼只能訪問到WEB-INF中的jsp文件,而不能具體到其子目錄中的文件
原:
更改后:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans><!--id實例化的名字,class實例化的類 --><!-- 作用是把視圖約定在 /WEB-INF/page/*.jsp 這個位置 --><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/page/" /><property name="suffix" value=".jsp" /></bean><bean id="simpleUrlHandlerMapping"class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><props><prop key="/index">indexController</prop></props></property></bean><bean id="indexController" class="controller.IndexController"></bean> </beans>prefix:意思是前綴
suffix:意思是后綴
原先的訪問路徑為:http://localhost:8080/springmvc/index
現在的訪問路徑為:http://localhost:8080/springmvc/index
沒有變化,改變的地方在IndexController類中,
原:為ModelAndView mav=new ModelAndView("index.jsp");
現在:為ModelAndView mav=new ModelAndView("index");
參考資料:
****https://blog.csdn.net/believejava/article/details/43229361
總結
以上是生活随笔為你收集整理的Day2-springmvc初解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Day1-java基本类型
- 下一篇: Day3-springmvc注解的方式进