在WEB-INF下新建文件夾page,而後新建一個頁面first.jsp。html
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>${message}</h1> </body> </html>
這裏配置一個頁面的公共先後綴便可,在控制類中只須要給定視圖名稱便可。前端
<?xml version="1.0" encoding="UTF8"?> <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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx https://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"> <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/page/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
另外我的整理了一些資料,有須要的朋友能夠直接點擊領取。java
Java基礎知識大全web
從0到1Java學習路線和資料spring
1000+道2021年最新面試題spring-mvc
這一段是固定的,不須要單獨註冊每個Servlet,只須要註冊一個前端控制器DispatcherServlet便可。架構
<?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"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:SpringMVC-Servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
SpringMVC提供了不少種方式將一個類標記爲控制類;能夠經過實現Controller接口、也能夠經過Controller註解完成。mvc
編寫一個控制類而後實現Controller接口,重寫handleRequest方法實現會請求的接受處理、最後返回一個ModelAndView類。app
package com.controller; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class InterfaceController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mv = new ModelAndView(); /* 1. 調用業務層 2. 封裝數據、以及給出須要響應的視圖名 3. 返回ModelAndView對象交給適配器 */ mv.addObject("message","實現Controller接口"); //數據 mv.setViewName("first"); //響應的視圖名 return mv; } }
將控制類進行註冊,而且給定一個訪問路徑。最後訪問localhost:8080/項目名/inter/first;就能進行訪問了。
<bean id="/inter/first" class="com.controller.InterfaceController"/>
最開始瞭解這個註解是在Spring的時候,當時只是粗略的瞭解他能用來註冊bean,並不知道它能將一個類標記爲控制類的功能。Controller註解可以註冊bean是由於它被Component註解修飾了,Component註解具備註冊的bean能力。
package com.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class AnnotationController { @RequestMapping("/Annota/first") //註冊映射路徑 private String firstServlet(Model model){ model.addAttribute("message", "Controller註解"); //封裝數據 return "first"; //給出視圖名 } }
使用Controller註解就能將類標記爲一個控制類、而且其中的每個方法均可以認爲是一個Servlet。相比實現Controller接口,註解版的功能更強大。當有多個Servlet時只須要寫多個方法!
SpringMVC核心配置文件中只須要擴展一點註解驅動、以及MVC註解支持便可。
<!-- 掃描包註解 --> <context:component-scan base-package="com.controller"/> <!-- mvc註解驅動 --> <mvc:annotation-driven/> <!-- 默認處理器、過濾器 --> <mvc:default-servlet-handler/>
RequestMapping註解至關於去註冊Servlet - 路徑的一個映射,表示訪問/xxx路徑會交給哪一個方法處理僅此而已;使用這個註解就能夠擺脫核心配置文件,每次配置文件中放入固定的模板代碼。控制類中使用Controller註解 + RequestMapping註解。
當修飾類的時候表示旗下的每一個方法都須要加一個前綴路徑;
@Controller @RequestMapping("/father") public class RequestMappingController { @RequestMapping("/test1") private String test1(){ return "test1"; } @RequestMapping("/test2") private String test2(){ return "test2"; } }
test1真實路徑: localhost:8080/項目名/father/test1
test2真實路徑: localhost:8080/項目名/father/test2
當修飾方法時是隻具體的路徑。
@Controller public class RequestMappingController { @RequestMapping("/test1") private String test1(){ return "test1"; } @RequestMapping("/father/test2") private String test2(){ return "test2"; } }
感謝你能看到這裏,以爲文章對你有幫助的話記得點個贊,感謝你的支持!