SpringMVC入門(一)之HelloWorld(IDEA版)

Spring MVC 入門(一)

helloworld

​ IDEA創建工程:

在這裏插入圖片描述

選擇SpringMVC即可,等待創建

編寫前端控制器

由於SpringMVC需要一個前端控制器(相當於醫院分診臺)來攔截前端請求,並且智能分發。

前端控制器是一個Servlet,所以應該在Web.xml中配置servlet進行攔截

在WEB-INF目錄下的web.xml文件中,有一個叫做dispatcher的東西,內容如下(初始狀態可能沒有< init-param >以及其子模塊)

<servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>index.jsp</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

接下來是該部分的詳細講解:

<load-on-startup>1</load-on-startup>

load-on-startup 代表服務器啓動時創建對象,其數值代表優先級,數值越小,優先級越高,越先創建對象。不加該標籤則在第一次訪問時創建對象

<init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>index.jsp</param-value>
</init-param>

該部分指定配置文件位置,因此我們在src 文件下創建一個SpringBean 文件,創建方法如圖:

在這裏插入圖片描述
然後將< param-value >該爲:classpath: springmvc.xml;

如下:

 <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
 </init-param>

將< servlet-mapping >中的對應 < url-pattern> 改爲/

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
        <!-- /*與/都是攔截所有請求,但是“/*”會攔截jsp頁面,一旦攔截,jsp頁面將無法顯示
 			/不會攔截jsp,保證jsp訪問正常
		-->
    </servlet-mapping>

然後在springmvc.xml< bean>中添加:

 xmlns:context="http://www.springframework.org/schema/context"

添加後的結果應該是:

<?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"
       xmlns:context="http://www.springframework.org/schema/context">
</beans>

添加掃描所有組件:

<context:component-scan base-package="com.tryMvc"></context:component-scan>

其中base-package中寫想要掃描的包

編寫處理器

爲了測試,我選擇在WEB-INF下添加文件,目錄結構如圖:
在這裏插入圖片描述

success.xml文件內容如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Success!</title>
</head>
<body>
    <a href="/hello">Hello world</a>
</body>
</html>

然後在src文件下創建Java文件,

目錄結構如圖

在MyFirstController 中添加方法,並且添加@Controller註解

@Controller是用來表示哪個組件是控制器,

代碼如下:

@Controller
public class MyFirstController {
    @RequestMapping("/hello")
    //處理當前項目下的Hello請求
    public String myFirstController(){
        System.out.println("Get");
        return "/WEB-INF/pages/success.jsp";
    }

}

請求處理完返回success頁面

注意:此處由於/WEB_INF/pages/success.jsp請求前綴是/WEB-INF/pages,後綴是.jsp,所以可以在springmvc.xml中配置一個視圖解析器,這樣返回時,可以直接返回網頁文件名。代碼如下:

    <!--  配置一個視圖解析器,能幫助拼接頁面地址 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

prefix代表前綴,suffix代表後綴

運行前的準備:

在運行前,需要在IDEA環境中配置Apache服務器步驟如下:

1、

點擊右上角Add Configuration並在左側選擇+

在這裏插入圖片描述

在這裏插入圖片描述

2、

選中TomcatServer

在這裏插入圖片描述

3、

選擇本地Tomcat文件
在這裏插入圖片描述

4、

選擇Deployment,並點擊右側加號,然後點擊Artifact…

在這裏插入圖片描述
配置完成

運行

在這裏插入圖片描述

運行成功!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章