spring基礎知識,未完待續
阿新 • • 發佈:2018-06-06
沒有 代碼 ons maven model odi html www. 4.2 https://blog.csdn.net/slow_wakler/article/details/54895508
http://www.runoob.com/design-pattern/chain-of-responsibility-pattern.html
https://www.cnblogs.com/alwayswyy/p/4904448.html?utm_source=tuicool&utm_medium=referral
https://www.cnblogs.com/zmhsoup/p/5249663.html
https://www.cnblogs.com/wangyayun/p/6800902.html
DI-依賴註入
AOP-面向切面編程
1,springmvc +maven+helloWorld
https://blog.csdn.net/u012660464/article/details/53199439
基本步驟
1)響應請求-DispatcherServlet
DispatcherServlet是SpringMVC中最核心的部分,它是接收所有用戶請求的前端控制器Servlet,Servlet運行於Web的應用服務器中,理論上可以響應任何類型的請求。當用戶在瀏覽器發出請求的時候,最先進入SpringMVC中的DispatcherServlet。它的作用是通過處理器映射,把用戶的請求發送到相應的控制器(Controller)中,再由控制器處理用戶請求的SpringBean。
2)處理器映射-HandlerMapping
當DispatcherServlet截獲到請求的時候,不知道要把請求發往哪一個控制器,這個時候就要用到處理器映射了。通過查詢處理器映射,DispatcherServlet就能由用戶的請求知道該用哪一個控制器。
3)控制器-Controller
控制器(Controller)即MVC中的C,控制器在後面的小黑屋完成數據的處理,然後返回一個ModelAndView對象給DispatcherServlet,Model將會在相應的View上顯示出來。
4)視圖解析器-view resolver
視圖解析器(view resolver)對上一步得到的ModelAndView對象進行解析,將其匹配到相應的視圖(例如一個jsp),利用相應的視圖顯示數據。
5)視圖顯示-view
視圖(view)即MVC中的V,其作用就是把控制器返回的相應的model進行顯示。到了這裏,請求的任務基本就已經完成了。
1,新建一個maven工程,選擇webapp,輸入組ID,一般是域名的反寫,輸入項目名稱
2,.jsp 文件的頂端報錯,解決方法
1)右擊項目名 -> Buid Path -> Configure Build Path,
(2)選擇Libraries選項卡,點擊Add Library -> Server Runtime ,
(3)選擇一個已建好的tomcat,沒有建立tomcat的,請先配置好tomcat。
(4)點擊 finish, 可看到如下截圖
點擊Apply之後,正常情況下,可以看到項目的紅叉已消失。
然後切換到Order and Export 選項:
點擊上圖的OK之後,可以看到,缺失的資源文件src/main/java和src/test/java已經有了。
然後還需要創建 souce folder src/main/resources ,src/test/resources
3,更改配置文件pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.viphelloword.rank</groupId>
<artifactId>SpringMvcHelloWorld</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<springVersion>4.2.3.RELEASE</springVersion>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springVersion}</version>
</dependency>
</dependencies>
<build>
<finalName>SpringMvcHelloWorld</finalName>
</build>
</project>
4,更改配置文件web.xml,在webapp下
<web-app 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/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>HelloSpringMVC</display-name>
<!-- 前端控制器 -->
<servlet>
<servlet-name>spring-mvc</servlet-name> <!-- 名稱,真實的文件名需要在這個名字後面加上-servlet後綴 -->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- DispatcherServlet路徑,照寫 -->
<!-- 這裏可以設置前端控制器的路徑,如果這一步註釋掉,則默認前端控制器的路徑為:/WEB-INF/[servlet-name]-servlet.xml -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/spring/spring-mvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 攔截所有請求 -->
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name> <!-- 這裏的名字要和上面的servlet-name統一 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
5,新建前端控制器配置文件servlet文件
因為這裏使用的是默認的路徑,所以只需要在WEB-INF目錄下創建前端控制器文件。
又因為在web.xml中配置的名稱是spring-mvc,所以新建的文件名是spring-mvc-servlet。
也可以在resources下面創建spring 文件夾,然後classpath:/spring/spring-mvc-servlet.xml
<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-4.2.xsd">
<!-- 掃描路徑 -->
<context:component-scan base-package="com.springmvc.controller" >
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 配置根視圖 -->
<mvc:view-controller path="/" view-name="index"/>
<!-- 激活基於註解的配置 @RequestMapping, @ExceptionHandler,數據綁定 ,@NumberFormat ,
@DateTimeFormat ,@Controller ,@Valid ,@RequestBody ,@ResponseBody等 -->
<mvc:annotation-driven />
<!-- 靜態資源配置 -->
<mvc:resources location="/assets/" mapping="/assets/**"></mvc:resources>
<!-- 視圖層配置 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
只知道把配置文件如:mybatis.xml、spring-web.xml、applicationContext.xml等放到src目錄(就是存放代碼.java文件的目錄),然後使用“classpath:xxx.xml”來讀取,都放到src目錄準沒錯,那麽到底classpath到底指的什麽位置呢?
用maven構建項目時候resource目錄就是默認的classpath
classPath即為java文件編譯之後的class文件的編譯目錄一般為web-inf/classes,src下的xml在編譯時也會復制到classPath下
ApplicationContext ctx = new ClassPathXmlApplicationContext("xxxx.xml"); //讀取classPath下的spring.xml配置文件
ApplicationContext ctx = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/xxxx.xml"); //讀取WEB-INF 下的spring.xml文件
6,添加control類,添加 .jsp頁面 完全參照
https://blog.csdn.net/u012660464/article/details/53199439
最後訪問如下地址:
http://localhost:8080/SpringMvcHelloWorld/hello/mvc
spring基礎知識,未完待續