首頁 >Java >java教程 >SpringMVC環境建置的詳細過程

SpringMVC環境建置的詳細過程

不言
不言原創
2018-09-26 14:45:023056瀏覽

這篇文章帶給大家的內容是關於SpringMVC環境搭建的詳細過程,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

Spring MVC為展現層提供的基於MVC設計理念的優秀Web框架,是目前最主流的MVC框架之一。

Spring 3.0之後完全超越Struts2,稱為最優秀的MVC框架。學完SpringMVC之後,瞬時間就能讓你感覺到Struts2帶給你的殘酷。

Spring MVC透過一套MVC註解,讓POJO稱為處理請求的控制器,無需實現任何接口,耦合度低。

並且Spring MVC對rest風格很好的支援。 。

利用了鬆散的耦合可拔插組件結構,比其他MVC框架更具擴展性和靈活性。

建置Spring MVC環境

1)基於介面方式建構MVC環境。實作Controller介面實作MVC

2)基於註解方式,在Spring3.0以後的版本中,使用註解極大的簡化了傳統的MVC配置,靈活性與可維護性得到了大大的提高哦。

實作SpringMVC步驟,第一個肯定是要到入對應jar包啦

然後就是和Struts2一樣在Web.xml配置一個核心控制器。用於攔截請求。

<!-- 配置SpringMVC的请求的Servlet -->
  <servlet>
          <servlet-name>DispatcherServlet</servlet-name>
              <servlet-class>
                  org.springframework.web.servlet.DispatcherServlet
            </servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
 </servlet>
  <servlet-mapping>
      <servlet-name>DispatcherServlet</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>

看到這裡是不是覺得很熟悉,只不過比Struts2多了幾行而已。 init-param是初始化要載入的spring文件,如果有多個可以使用逗號隔開

load-on-startup 在啟動的時候立刻載入。 66e1775cbd9d5002635ae3285442ba88/3ec4a5583206d351b61ed79c1a0f9c66攔截所有的請求。 (同時css,js也會被攔截);

然後我們寫個Controller

#
package com.miya.spring.mvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/Miya")
public class MiyaHelloController {

    @RequestMapping("/hello")
    public String hello(){
        System.out.println("hello Miya");
        return "/hello";
    }
}

##@Controller這個註解不用多說吧,聲明一個控制器。

@RequestMapping定義在類別上面是宣告一個空間。在方法上面是宣告一個請求路徑

回傳一個字串你要存取的路徑這個路徑在哪裡呢?

<context:component-scan base-package="com.miya.spring.mvc"/>
    
    <!-- 视图解析器 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/views"/>
        <!-- 后缀 -->
        <property name="suffix" value=".jsp"/>
    </bean>

在我們Spring XML的配置中,我們先掃描所有的註解,然後配置了一個試圖解析器。

當我們回到那個hello的時候,它是 prefix result(hello) suffix 去訪問我們的視圖。

現在我們在index.jsp直接跑一個試試。

0c02004446d7f3f85c79ae2f5dedf06e

request.getContextPath()拿到的是你的web專案的根路徑,就是webContent(MyEclipse中是webRoot)。然後現在可以看到我們的命名空間Miya後面跟裡面定義的方法請求路徑

hello。我們最後造訪後的網址http://localhost:8080/SpringMvcDemo1/Miya/hello 造訪到的是WEB-INF/views/hello.jsp這個檔案。而這個請求還是個rest風格請求。

到了這裡會發現比Struts2方便的多,Struts2每次配置請求都要去Struts2中配置action啊什麼什麼的一大堆,並且有的時候sturts文件中幾千行,老眼昏花找個請求都要找半小時。

我們還有一個實作方式就是實作Spring提供的Controller介面重寫介面裡面的方法。

package com.miya.spring.mvc.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class MiyaWordController implements Controller{
    @Override
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("/hello");
        return modelAndView;
    }
}

ModelAndView中可以設定視圖,我設定的還是hello這個,然後我們需要在spring XML中配置一個bean,name是請求路徑,class是指定控制器類別

32c97008f0b4c7cbcba6489f3ba8eac34bb0e59fd50cbfe6f6ce2215b9d94243
注意:我們在專案中攔截了所有的請求,會導致圖片,樣式,JS都報404,我們可以在spring XML中引入外部資源文件,而且這種實現接口的方式造成耦合度太高,而且每一個功能都需要寫上一個類,導致我們代碼的臃腫,所以還是推薦使用註解方式,註解目前是非常流行,而且很多框架都支援註解方式,而且語法簡單,方便使程式碼簡潔。

ff199eef702ba3861ff15c24816f4ceb
2cecf299d6f56fb7e0ba4470456908f305ca0f956480d4ad236391e89e886bd6

以上是SpringMVC環境建置的詳細過程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn