如果引用,請保留版權連結謝謝!
https://www.cnblogs.com/tochw/p/13811051.html
java 版本 1.8.0_261
idea 版本2020.1
Tomcat 9
maven 3.6
新建工程
File->new->project
預設會下載springframework5.2.3版本的框架檔案下來。
工程的名稱叫springtest
點選finish建立
編輯web.xml檔案的內容
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- url-pattern有5種配置模式: (1)/xxx:完全匹配/xxx的路徑 (2)/xxx/*:匹配以/xxx開頭的路徑,請求中必須包含xxx。 (3)/*:匹配/下的所有路徑,請求可以進入到action或controller,但是轉發jsp時再次被攔截,不能訪問jsp介面。 (4).xx:匹配以xx結尾的路徑,所有請求必須以.xx結尾,但不會影響訪問靜態檔案。 (5)/:預設模式,未被匹配的路徑都將對映到刺servlet,對jpg,js,css等靜態檔案也將被攔截,不能訪問。 --> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
編輯dispatcher-serverlet.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: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-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/context http://www.springframework.org/schema/context/spring-context-4.2.xsd" > <!-- 配置controller的掃描包 --> <context:component-scan base-package="test.controller"/> <!-- 配置處理器對映器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <!-- 配置處理器介面卡 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> <!-- <mvc:default-servlet-handler/>--> <!-- 配置註解驅動,相當於同時使用最新處理器對映器和處理器介面卡,對json資料的響應提供支援--> <mvc:annotation-driven/> <!-- 配置檢視解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> </beans>
在WEB_INF資料夾下新建jsp資料夾
在src下新建test、test.controller包
在test.controller包下新建
HelloWorldController.java
package test.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @Controller public class HelloWorldController { //可以匹配/abc/hello.do但是不能匹配/hello.do @RequestMapping(value = "/*/hello.do",method = RequestMethod.GET) public ModelAndView hello(){ return new ModelAndView("hello"); } }
在WEB_INF/jsp/目錄下新建hello.jsp
<%-- Created by IntelliJ IDEA. User: 1688 Date: 2020-10-13 Time: 16:12 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <link href="/springtest/static/css/demo.css" rel="stylesheet"> <head> <title>Title</title> </head> <body> <p class="text">hello</p> </body> </html>
在根目錄下新建
static/css/demo.css
.text{ color:#ff0000; }
專案的完整結構如下:
執行專案,編輯伺服器:
如果一開始沒有配置就點選左上角的+號,新建一個。配置跟上面一樣。
按快捷鍵Ctrl+alt+Shift+S
選擇Artifacts,右鍵右側選項,點選Put into Output Root .點選OK
然後執行專案,開啟瀏覽器訪問:
http://localhost:8080/springtest/abc/hello.do
就可以看見預覽的效果了。