目錄[-]css
轉載請註明出處:Gaussic(一個致力於AI研究卻不得不兼顧項目的研究生)。html
注:此文承接上一文:使用IntelliJ IDEA開發SpringMVC網站(一)開發環境html5
訪問GitHub下載最新源碼:https://github.com/gaussic/SpringMVCDemojava
進行完上面的配置,那就說明如今基本的開發環境已經搭建好了,如今要開始進行SpringMVC的網站開發。jquery
打開src\main\webapp\WEB-INF\下的web.xml文件,稍微更新一下web.xml的版本,能夠支持更高級的一些語法,以下:git
<?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_3_1.xsd" version="3.1"> <display-name>SpringMVCDemo Web Application</display-name> </web-app>
在<web-app>中加入一個servlet:
github
<?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_3_1.xsd" version="3.1"> <display-name>SpringMVCDemo Web Application</display-name> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
該servlet名爲mvc-dispatcher(名稱可修改),用於攔截請求(url-pattern爲 / ,說明攔截全部請求),並交由Spring MVC的後臺控制器來處理。這一項配置是必須的。web
爲了可以處理中文的post請求,再配置一個encodingFilter,以免post請求中文出現亂碼狀況:spring
<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
至此,web.xml配置完畢。
bootstrap
在配置完web.xml後,需在web.xml同級目錄下新建 mvc-dispatcher-servlet.xml(-servlet前面是在servlet裏面定義的servlet名):
新建該xml文件後,點擊右上角的configure,出現 Setup Frameworks界面,點擊OK,這樣,IntelliJ IDEA就識別了SpringMVC的配置文件:
mvc-dispatcher-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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> </beans>
MVC框架有model、view、controller三部分組成。model通常爲一些基本的Java Bean,view用於進行相應的頁面顯示,controller用於處理網站的請求。
在src\main\java中新建一個用於保存controller的package:
在controller包中新建java類MainController(名稱並不固定,可任意取),並修改以下:
package com.gaussic.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; /** * Created by dzkan on 2016/3/8. */ @Controller public class MainController { @RequestMapping(value = "/", method = RequestMethod.GET) public String index() { return "index"; } }
(1)@Controller註解:採用註解的方式,能夠明確地定義該類爲處理請求的Controller類;
(2)@RequestMapping()註解:用於定義一個請求映射,value爲請求的url,值爲 / 說明,該請求首頁請求,method用以指定該請求類型,通常爲get和post;
(3)return "index":處理完該請求後返回的頁面,此請求返回 index.jsp頁面。
回到mvc-dispatcher-servlet.xml,進行相關配置。首先加入component-scan標籤,指明controller所在的包,並掃描其中的註解(最好不要複製,輸入時按IDEA會在beans xmlns中添加相關內容):
<?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" 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"> <!--指明 controller 所在包,並掃描其中的註解--> <context:component-scan base-package="com.gaussic.controller"/> </beans>
再進行js、image、css等靜態資源訪問的相關配置,這樣,SpringMVC才能訪問網站內的靜態資源:
<!-- 靜態資源(js、image等)的訪問 --> <mvc:default-servlet-handler/>
再開啓springmvc註解模式,因爲咱們利用註解方法來進行相關定義,能夠省去不少的配置:
<!-- 開啓註解 --> <mvc:annotation-driven/>
再進行視圖解析器的相關配置:
<!--ViewResolver 視圖解析器--> <!--用於支持Servlet、JSP視圖解析--> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/pages/"/> <property name="suffix" value=".jsp"/> </bean>
關於controller如何找到視圖文件,這裏須要詳細的說明。在 controller 的一個方法中,返回的字符串定義了所需訪問的jsp的名字(如上面的index)。在jspViewResolver中,有兩個屬性,一個是prefix,定義了所需訪問的文件路徑前綴,另外一是suffix,表示要訪問的文件的後綴,這裏爲 .jsp。那麼,若是返回字符串是 xxx ,SpringMVC就會找到 /WEB-INF/pages/xxx.jsp 文件。
完成以上配置後,mvc-dispatcher-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: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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--指明 controller 所在包,並掃描其中的註解--> <context:component-scan base-package="com.gaussic.controller"/> <!-- 靜態資源(js、image等)的訪問 --> <mvc:default-servlet-handler/> <!-- 開啓註解 --> <mvc:annotation-driven/> <!--ViewResolver 視圖解析器--> <!--用於支持Servlet、JSP視圖解析--> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/pages/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
咱們刪除 webapp 目錄下的 index.jsp 文件,在WEB-INF目錄下新建文件夾pages,再在pages目錄下新建 index.jsp,並修改成以下所示:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3個meta標籤*必須*放在最前面,任何其餘內容都*必須*跟隨其後! --> <title>SpringMVC Demo 首頁</title> <!-- 新 Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css"> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <h1>這裏是SpringMVC Demo首頁</h1> <h3>出現此頁面,說明配置成功。</h3> <!-- jQuery文件。務必在bootstrap.min.js 以前引入 --> <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> <!-- 最新的 Bootstrap 核心 JavaScript 文件 --> <script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> </body> </html>
這裏使用了Bootstrap的CDN加速服務,若是要使用本地的Bootstrap,請前往Bootstrap官網下載,並放在 webapp 目錄下,而後引入到 index.jsp 中,這裏不作詳細介紹。
如今,須要配置 Tomcat 來運行該項目。點擊界面右上角的向下箭頭,選擇 Edit Configurations:
點擊左上角的」+「號,選擇Tomcat Server,(若是沒有請選擇最下方的33 items more,找到Tomcat Server),再選擇Local:
進入以下界面:
點擊 Application server 右邊的 Configure,導入Tomcat 目錄:
在配置好tomcat的路徑後,以下圖所示,發現依然存在警告,且左方的Tomcat7圖標上有一個錯誤標記,說明尚未配置徹底:
咱們還須要將項目部署到 Tomcat 服務器中。點擊 Deployment,再點擊右邊的」+「號,添加一個Artifact:
選擇第二個:war exploded,點擊OK,這樣,該項目就已經部署到了tomcat中:
再點擊OK,整個Tomcat配置結束:
點擊界面右上角的紅框中的綠色箭頭,就能夠啓動 Tomcat 了,其控制檯輸出將在 IDEA 下方顯示
啓動後,瀏覽器將自動彈出項目首頁:
這樣,說明配置完成。這裏總結一下其相關機制:首先,瀏覽器訪問 localhost:8080,後臺controller攔截該請求,進行相應的處理(此處無),在跳轉到視圖 index.jsp進行顯示。此後,將會進行詳細的介紹。
轉載請註明出處:Gaussic(一個致力於AI研究卻不得不兼顧項目的研究生)。