使用Spring MVC實現RESTful接口(詳細-初級)

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">	</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">作爲編程界新人,這兩天接到老大的指示,先去拿Spring MVC實現RESTful接口,熟悉一下以前的技術。這個時候腦袋好大,java都忘得差不多了,更何況用Spring搭建MVC。沒辦法只能用度娘來幫忙了,可是網上各種說法,各種迷糊,終於找到了一篇比較適合新手的博文,再此表示感謝。</span>

下文爲轉載:

下面我把我用到的相關軟件版本列一下,雖然我不知道這些有什麼關係,但是,還是列一下吧,


因爲不知道列哪些,所以就把這些都截了個圖害羞,只知道要用jdk,maven,tomcat,和java編譯器(如eclipse)

現在開始建項目

1、創建一個maven項目

 

圖1


圖2


圖3(第一個複選框一定要框,反正我這裏不選就是錯~)



圖4(Packaging選擇war。反正我之前選jar就有問題了)




圖5(紅框中顯示的不是我想要的,需要修改,右擊它,選擇“Build Path” ==>“ConfigureBuild Path”)


圖6


圖7(不知道爲什麼選這個,只是之前看同事選了這個。)


圖8



圖9


到這一步,已經算是建好了一個mave項目。我們現在來配置一些東西。

2、配置pom.xml(可以直接添加到pom.xml裏面,配置一些七七八八的東西。junit、jstl、 spring包

<dependencies>  
        <!-- junit -->  
        <dependency>  
            <groupId>junit</groupId>  
            <artifactId>junit</artifactId>  
            <version>4.12-beta-3</version>  
            <scope>test</scope>  
        </dependency>  
        <!-- log4j -->  
        <dependency>  
            <groupId>log4j</groupId>  
            <artifactId>log4j</artifactId>  
            <version>1.2.17</version>  
        </dependency>  
          
        <dependency>  
            <groupId>jstl</groupId>  
            <artifactId>jstl</artifactId>  
            <version>1.2</version>  
        </dependency>  
          
        <!-- spring 的基本依賴 開始 -->  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-core</artifactId>  
            <version>4.1.2.RELEASE</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-expression</artifactId>  
            <version>4.1.2.RELEASE</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-beans</artifactId>  
            <version>4.1.2.RELEASE</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-aop</artifactId>  
            <version>4.1.2.RELEASE</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-context</artifactId>  
            <version>4.1.2.RELEASE</version>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-context-support</artifactId>  
            <version>4.1.2.RELEASE</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-tx</artifactId>  
            <version>4.1.2.RELEASE</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-web</artifactId>  
            <version>4.1.2.RELEASE</version>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-jdbc</artifactId>  
            <version>4.1.2.RELEASE</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-webmvc</artifactId>  
            <version>4.1.2.RELEASE</version>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-aspects</artifactId>  
            <version>4.1.2.RELEASE</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-test</artifactId>  
            <version>4.1.2.RELEASE</version>  
        </dependency>  
        <!-- spring 的基本依賴 結束 -->  
  </dependencies>  

3、在webapp下添加一個文件夾“WEB-INF”,在文件夾下添加一個文件“web.xml”(下面的內容可以全部複製過去)

<?xml version="1.0" encoding="UTF-8"?>  
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
    version="2.5">  
    <!-- 區分項目名稱,防止默認重名 -->    
    <context-param>    
        <param-name>webAppRootKey</param-name>    
        <param-value>maven.example.root</param-value>    
    </context-param>    
    
    <!-- Spring的log4j監聽器 -->    
    <listener>    
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>    
    </listener>    
    
    <!-- 字符集 過濾器  -->    
    <filter>    
        <filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>    
        <url-pattern>/*</url-pattern>    
    </filter-mapping>    
    
    <!-- Spring view分發器 -->    
    <servlet>    
        <servlet-name>dispatcher0121</servlet-name>    
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    
        <init-param>    
            <param-name>contextConfigLocation</param-name>    
            <param-value>/WEB-INF/dispatcher0121-servlet.xml</param-value>    
        </init-param>    
        <load-on-startup>1</load-on-startup>    
    </servlet>    
    <servlet-mapping>    
        <servlet-name>dispatcher0121</servlet-name>    
        <url-pattern>*.do</url-pattern>    
    </servlet-mapping>    
  
</web-app>  
web.xml文件裏有幾個值得注意的地方,上面標紅的“dispatcher0121”可以修改爲你想要的字符串,但是這個三個地方一定要一樣。[servlet-name]+“-servlet.xml”這個是spring配置文件的文件名的命名規則。

4、在“webapp/WEB-INF/”下再添加一個文件“dispatcher0121-servlet.xml”,這個文件就是上面說的東西(可以全部複製到新建的文件中)

<?xml version="1.0" encoding="UTF-8"?>    
<beans xmlns="http://www.springframework.org/schema/beans"     
       xmlns:aop="http://www.springframework.org/schema/aop"     
       xmlns:context="http://www.springframework.org/schema/context"    
       xmlns:mvc="http://www.springframework.org/schema/mvc"     
       xmlns:tx="http://www.springframework.org/schema/tx"     
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
       xsi:schemaLocation="http://www.springframework.org/schema/aop     
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd     
        http://www.springframework.org/schema/beans     
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd     
        http://www.springframework.org/schema/context     
        http://www.springframework.org/schema/context/spring-context-3.0.xsd     
        http://www.springframework.org/schema/mvc     
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd     
        http://www.springframework.org/schema/tx     
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">    
    
    <mvc:annotation-driven />    
    <context:component-scan base-package="example0121" />    
    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">    
        <property name="prefix" value="/WEB-INF/views/" />    
        <property name="suffix" value=".jsp" />    
    </bean>    
    
</beans> 
dispatcher0121-servlet.xml文件中也有要注意的地方,"example0121"這個是接下來會用的包,名字可以隨意,但是不能全部是數字。我不想說,我就是偷懶用數字,導致之前建的項目一直有問題。害羞

圖10

5、創建一個Controller層測試類(這個是什麼東西,我也不知道。只知道怎麼操作)



圖11

按照這個操作,可以添加包也可以添加類,先添加類,要是發現在包那裏沒有寫“example0121”,那就取消,然後添加一個包,包的名字是“example0121”。然後再創建一個叫“GeneralController”的類。

圖12

然後將代碼寫好,像下面一樣

package example0121;  
  
import org.springframework.stereotype.Controller;    
import org.springframework.ui.Model;    
import org.springframework.web.bind.annotation.RequestMapping;    
    
@Controller    
public class GeneralController {    
    
    @RequestMapping(value="index.do")    
    public void index_jsp(Model model){    
        model.addAttribute("str0121", "Hellow world");    
        System.out.println("index.jsp");    
    }    
}    
6、編寫jsp頁面。在“webapp/WEB-INF/”下添加一個文件夾“views”,再添加一個文件“index.jsp”。這個路徑是在“dispatcher0121-servlet.xml”裏面定下來的。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>    
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">    
<html>    
    <head>    
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    
        <title>Insert title here</title>    
    </head>    
        
    <body>    
        <c:out value="${str0121}"></c:out>    
    </body>    
</html>   
這個時候你可以看到你的工程出現紅色的叉叉,報了個錯,如圖13。這個時候你要淡定,兩種方法。一是無視它,二是刪掉這個錯。我選擇了無視它,我因爲這個錯查了好久資料,莫名煩躁,試了網上說的方法,還是不行。最後問了同事,同事說,你運行一下可不可以用。我運行了項目,發現可以用。然後同事說,那就無視它。似乎好像是校驗的問題,反正現在不影響。one or two?!


圖13

7、運行

圖14


圖15


圖16


圖17


圖18


上面的博文地址爲:http://blog.csdn.net/fulai0_0/article/details/42967481

——————-————————————分割線————————————————————————————————————————

項目這樣基本就算結束了,我在其中遇到的唯一問題是項目啓動過程中無法啓動。

最後問了一下朋友,修改方法爲在pom.xml文件中增加一句話:

 <packaging>war</packaging>

位置如下:


總體來說,對於Spring不熟悉的朋友搭建一個這種簡單的mvc框架也是不容易的,自己搞了一天才弄明白,最後留幾個比較有用的博文給大家參考

http://www.cnblogs.com/davidwang456/p/4122842.html

http://blog.csdn.net/dddddz/article/details/8777126

http://www.oschina.net/question/857812_220501





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