簡單演示SpringMVC Contrpller
準備工作:
首先下載 Spring-Framework 的 binary 分發版本,這裏使用的是 spring-framework-4.3.8.RELEASE-dist。
然後下載 Apache 出品的 common-logging,它是 Spring 依賴的一個庫,這裏使用的是 common-logging-1.2。
關於包的下載可以去maven官網https://mvnrepository.com/搜索對應的包名,找到使用人數
最多的版本下載jar包即可。
servlet配置
首先修改web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>MyFirstServletName</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyFirstServletName</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
在修改 Servlet 爲 Spring 提供的 DispatcherServlet 之外,還有兩點需注意:
- 加入的 load-on-startup 參數,作用:告知 Container 在啓動的時候就加載這個 Servlet(而非收到請求時才加載)
- 使用了 /* 的 wildcard URL,作用:符合 /* 的 web 路徑(即所有的請求)都將由 DispatcherServlet 處理。
編寫Controller
相比直接使用 Servlet API,編寫 Controller 更簡潔方便。
我們創建一個 MyFirstSpringController 類:
package com.skyline;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MyFirstSpringController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public @ResponseBody String Hello() {
return "Hello, SpringMVC.";
}
}
這裏使用了若干 Annotation 來簡化代碼:
- 通過 @Controller 我們將一個普通 Java 類標記成一個 Controller 類。
- 通過 @RequestMapping 和 @ResponseBody 我們將一個普通函數標記成可以處理 GET 請求,同時返回字符串的 Handler。
SpringMVC配置
我們編寫了一個 Controller 之後,怎麼樣讓 DispatchServlet 找到我們編寫的 Controller 呢?
SpringMVC 提供了使用 xml 配置的方法:
在 WEB-INF 文件夾下,也就是 web.xml 隔壁,(也可以在jar包內創建,則classpath的配置中“:”之前需要添加一個*)創建一個 MyFirstServletName-servlet.xml(注意命名 -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"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<bean class="com.skyline.MyFirstSpringController"/>
</beans>
上面的配置中,我們將編寫的 MyFirstSpringController 加入了 beans 列表,SpringMVC 就能找到我們的 Controller 並且進行初始化了。
運行
在部署完成啓動服務器後,運行截圖: