SPringMVC使用总结
文章目錄
- SpringMVC介紹
- SPringMVC的運行原理
- 各組件介紹
- 前端控制器
- 處理器映射器
- 處理器適配器
- 處理器
- 視圖解析器
- 視圖
- SpringMVC的使用
- 目錄結構:
- 1.引入jar依賴
- 2.在web.xml中配置前端控制器
- 3、創建SpringMVC的配置文件
- 4.將spring-mvc.xml配置文件加載到web.xml配置文件中
- 5.編寫controller層
- 6.編寫jsp頁面
- 7.部署服務
- 8.Tomcat啟動服務
- 遇到的問題及解決方法
- Error running 'Tomcat 9.0.50': Address localhost:8080 is already in use
- 訪問頁面報錯404源服務器未能找到目標資源的表示或者是不愿公開一個已經存在的資源表示
SpringMVC介紹
SpringMVC是屬于SPring中web模塊的支持一部分
實現了web mvc的設計模式 進行web層的解耦
請求驅動類型的web框架:請求-響應的模型
SPringMVC的運行原理
運行步驟:
1、用戶發起請求URL到達前端控制器
2、前端控制器請求處理器映射器查詢Handler
3、處理器映射器返回給前端控制器,返回處理器執行鏈(HanderExecutionChain)(包含多個處理攔截器和一個Handler實例)
4、前端控制器請求處理器適配器執行Handler。
5、處理器適配器根據適配規則找到特定的處理器(后端controller層URL所綁定的方法),由處理器來執行Handler
6、處理器執行結束后返回給處理器適配器一個ModelAndView對象,該對象包含數據(Model)和邏輯視圖名
7、處理器適配器將ModelAndView對象返回給前端控制器
8、前端控制器請求視圖解析器解析視圖地址,找到真正的視圖
9、視圖解析器將真正視圖對象返回到前端控制器
10、將數據渲染到視圖上
11、將渲染的頁面響應給請求用戶
各組件介紹
前端控制器
前端控制器為DispatcherServlet
不需要進行開發
前端控制器是整個用戶請求的入口和完成各組件業務轉發
所有組件都是直接和前端控制器交互,減少組件間的耦合性
處理器映射器
處理器映射為HandlerMapping
不需要進行開發
來存儲URL和Handler之間的映射關系,
由前端控制器來判斷請求URL是否存在,并返回包含Handler的處理器執行鏈
處理器適配器
處理器適配器為HadlerAdapter
不需要進行開發
按照特定的規則(HandlerAdapter要求的規則)去執行,Handler通過適配器找到真正的執行器,是適配器模式的使用
處理器
按照HandlerAdapter的要求開發,Handler是針對用戶具體的業務邏輯做響應的處理,Handler涉及到就用戶的具體的業務邏輯需要自行開發Handler
視圖解析器
視圖解析器為ViewResolver
不需要進行開發
解析視圖,根據邏輯視圖名找到真正的視圖,視圖解析器負責解析View視圖即頁面的具體的地址位置,jsp、pdf、freeMark等都能完成解析
視圖
視圖為View
需要進行開發
View是一個接口,支持不同的View類型(jsp、pdf、freeMark…),例如jsp是提供了一個jstl
視圖是展示給用戶的頁面,不同的業務展示不同的頁面
SpringMVC的使用
web項目需要放在容器里執行(Tomcat/jetty)
目錄結構:
1.引入jar依賴
springMVC中web依賴:
<!--web依賴--><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.1.7.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.1.7.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><!--Spring 基本核心jar包--><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.1.7.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.1.7.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.7.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>4.1.7.RELEASE</version></dependency><!--log4j日志--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!--注解相關jar包--><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version></dependency>2.在web.xml中配置前端控制器
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!--配置前端控制器--><servlet><servlet-name>springmvc-liangcheng</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><servlet-mapping><servlet-name>springmvc-liangcheng</servlet-name><url-pattern>/</url-pattern><!--http://www.baidu.com/index--></servlet-mapping> </web-app>需要在web.xml配置文件中引入前端控制器的實現類:org.springframework.web.servlet.DispatcherServlet
將SPringMVC的配置添加在web.xml文件中
3、創建SpringMVC的配置文件
創建一個spring-mvc.xml文件,放在資源文件路徑下resource下,配置映射器,適配器和解析器
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"><!--配置SpringMVC的需要掃描的包路徑--><context:component-scan base-package="com.liangcheng.controller"/><!--配置映射器、適配器:使用默認的處理器處理,不用顯性配置映射器、適配器--><mvc:annotation-driven/><!--視圖解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/> </beans>4.將spring-mvc.xml配置文件加載到web.xml配置文件中
<init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param>5.編寫controller層
public class TestController {@RequestMapping("/liangcheng")public String liangcheng(){//返回的頁面return "index.jsp";} }6.編寫jsp頁面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>success</title></head><body><h1>你好呀!</h1></body></html>7.部署服務
<plugin><groupId>org.mortbay.jetty</groupId><artifactId>maven-jetty-plugin</artifactId><version>6.1.24</version><configuration><connectors><connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"><port>8080</port><maxIdleTime>30000</maxIdleTime></connector></connectors><contextPath>/</contextPath></configuration></plugin>8.Tomcat啟動服務
運行結果:
遇到的問題及解決方法
Error running ‘Tomcat 9.0.50’: Address localhost:8080 is already in use
運行Tomcat 9.0.50錯誤:地址localhost:8080已經被使用
解決方法 :
換一個端口就可以了
訪問頁面報錯404源服務器未能找到目標資源的表示或者是不愿公開一個已經存在的資源表示
解決方法:
1.找到你自己所要運行的項目,看WEB-INF下面是否有lib目錄,如果沒有的話,新建一個lib目錄,然后選擇lib目錄,點擊那個加號,選擇第一個就會把里面的包全部導進lib目錄了
2.在部署的Tomcat的Deployment中添加上面運行項目
其他可能存在的問題解決方法請參考如下文章:
http://www.10qianwan.com/articledetail/754772.html
總結
以上是生活随笔為你收集整理的SPringMVC使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mybatis使用总结
- 下一篇: JavaSE基础复习总结