SPringMVC使用总结
文章目錄
- SpringMVC介紹
- SPringMVC的運(yùn)行原理
- 各組件介紹
- 前端控制器
- 處理器映射器
- 處理器適配器
- 處理器
- 視圖解析器
- 視圖
- SpringMVC的使用
- 目錄結(jié)構(gòu):
- 1.引入jar依賴
- 2.在web.xml中配置前端控制器
- 3、創(chuàng)建SpringMVC的配置文件
- 4.將spring-mvc.xml配置文件加載到web.xml配置文件中
- 5.編寫controller層
- 6.編寫jsp頁(yè)面
- 7.部署服務(wù)
- 8.Tomcat啟動(dòng)服務(wù)
- 遇到的問(wèn)題及解決方法
- Error running 'Tomcat 9.0.50': Address localhost:8080 is already in use
- 訪問(wèn)頁(yè)面報(bào)錯(cuò)404源服務(wù)器未能找到目標(biāo)資源的表示或者是不愿公開一個(gè)已經(jīng)存在的資源表示
SpringMVC介紹
SpringMVC是屬于SPring中web模塊的支持一部分
實(shí)現(xiàn)了web mvc的設(shè)計(jì)模式 進(jìn)行web層的解耦
請(qǐng)求驅(qū)動(dòng)類型的web框架:請(qǐng)求-響應(yīng)的模型
SPringMVC的運(yùn)行原理
運(yùn)行步驟:
1、用戶發(fā)起請(qǐng)求URL到達(dá)前端控制器
2、前端控制器請(qǐng)求處理器映射器查詢Handler
3、處理器映射器返回給前端控制器,返回處理器執(zhí)行鏈(HanderExecutionChain)(包含多個(gè)處理攔截器和一個(gè)Handler實(shí)例)
4、前端控制器請(qǐng)求處理器適配器執(zhí)行Handler。
5、處理器適配器根據(jù)適配規(guī)則找到特定的處理器(后端controller層URL所綁定的方法),由處理器來(lái)執(zhí)行Handler
6、處理器執(zhí)行結(jié)束后返回給處理器適配器一個(gè)ModelAndView對(duì)象,該對(duì)象包含數(shù)據(jù)(Model)和邏輯視圖名
7、處理器適配器將ModelAndView對(duì)象返回給前端控制器
8、前端控制器請(qǐng)求視圖解析器解析視圖地址,找到真正的視圖
9、視圖解析器將真正視圖對(duì)象返回到前端控制器
10、將數(shù)據(jù)渲染到視圖上
11、將渲染的頁(yè)面響應(yīng)給請(qǐng)求用戶
各組件介紹
前端控制器
前端控制器為DispatcherServlet
不需要進(jìn)行開發(fā)
前端控制器是整個(gè)用戶請(qǐng)求的入口和完成各組件業(yè)務(wù)轉(zhuǎn)發(fā)
所有組件都是直接和前端控制器交互,減少組件間的耦合性
處理器映射器
處理器映射為HandlerMapping
不需要進(jìn)行開發(fā)
來(lái)存儲(chǔ)URL和Handler之間的映射關(guān)系,
由前端控制器來(lái)判斷請(qǐng)求URL是否存在,并返回包含Handler的處理器執(zhí)行鏈
處理器適配器
處理器適配器為HadlerAdapter
不需要進(jìn)行開發(fā)
按照特定的規(guī)則(HandlerAdapter要求的規(guī)則)去執(zhí)行,Handler通過(guò)適配器找到真正的執(zhí)行器,是適配器模式的使用
處理器
按照HandlerAdapter的要求開發(fā),Handler是針對(duì)用戶具體的業(yè)務(wù)邏輯做響應(yīng)的處理,Handler涉及到就用戶的具體的業(yè)務(wù)邏輯需要自行開發(fā)Handler
視圖解析器
視圖解析器為ViewResolver
不需要進(jìn)行開發(fā)
解析視圖,根據(jù)邏輯視圖名找到真正的視圖,視圖解析器負(fù)責(zé)解析View視圖即頁(yè)面的具體的地址位置,jsp、pdf、freeMark等都能完成解析
視圖
視圖為View
需要進(jìn)行開發(fā)
View是一個(gè)接口,支持不同的View類型(jsp、pdf、freeMark…),例如jsp是提供了一個(gè)jstl
視圖是展示給用戶的頁(yè)面,不同的業(yè)務(wù)展示不同的頁(yè)面
SpringMVC的使用
web項(xiàng)目需要放在容器里執(zhí)行(Tomcat/jetty)
目錄結(jié)構(gòu):
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><!--注解相關(guān)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配置文件中引入前端控制器的實(shí)現(xiàn)類:org.springframework.web.servlet.DispatcherServlet
將SPringMVC的配置添加在web.xml文件中
3、創(chuàng)建SpringMVC的配置文件
創(chuàng)建一個(gè)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"/><!--配置映射器、適配器:使用默認(rèn)的處理器處理,不用顯性配置映射器、適配器--><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(){//返回的頁(yè)面return "index.jsp";} }6.編寫jsp頁(yè)面
<%@ 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.部署服務(wù)
<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啟動(dòng)服務(wù)
運(yùn)行結(jié)果:
遇到的問(wèn)題及解決方法
Error running ‘Tomcat 9.0.50’: Address localhost:8080 is already in use
運(yùn)行Tomcat 9.0.50錯(cuò)誤:地址localhost:8080已經(jīng)被使用
解決方法 :
換一個(gè)端口就可以了
訪問(wèn)頁(yè)面報(bào)錯(cuò)404源服務(wù)器未能找到目標(biāo)資源的表示或者是不愿公開一個(gè)已經(jīng)存在的資源表示
解決方法:
1.找到你自己所要運(yùn)行的項(xiàng)目,看WEB-INF下面是否有l(wèi)ib目錄,如果沒(méi)有的話,新建一個(gè)lib目錄,然后選擇lib目錄,點(diǎn)擊那個(gè)加號(hào),選擇第一個(gè)就會(huì)把里面的包全部導(dǎo)進(jìn)lib目錄了
2.在部署的Tomcat的Deployment中添加上面運(yùn)行項(xiàng)目
其他可能存在的問(wèn)題解決方法請(qǐng)參考如下文章:
http://www.10qianwan.com/articledetail/754772.html
總結(jié)
以上是生活随笔為你收集整理的SPringMVC使用总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Mybatis使用总结
- 下一篇: JavaSE基础复习总结