springmvc學習筆記---idea創建springmvc項目


 

前言:
  真的是很久沒搞java的web服務開發了, 最近一次搞還是讀研的時候, 想來感慨萬千. 英雄沒落, Eclipse的盟主地位隱隱然有被IntelliJ IDEA超越的趨勢. Spring從2.x到現在4.x, 一眨眼已是二代的積淀.
  本文想借助Idea, 來簡單搭建一個基於springmvc的web程序, 一為體驗, 二為技術積累.

環境配置:
  idea版本為14.0.2, tomcat版本為8.0.23, idea創建的springmvc為4.1.1.RELEASE.
  網上有很多圖文並茂的搭建案例, 同時也有很多教學視頻. 但我一直覺得: 紙上得來終覺淺,絕知此事要躬行. 權作學習筆記.

項目創建:
  1). idea中新建工程, 選擇左側的Spring項, 再右側選擇Spring MVC標簽.
  
  2). 選中"Create project from template"標簽, 使用默認模板.
  
  3). 填充Project Name以及Application server.
  
  4). springmvc項目創建完成
  
  其是由maven管理的web服務工程
  其web.xml自動填充為如下內容:

<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">

  <display-name>Spring MVC 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>

  springmvc的DispatcherServlet會自動裝載以mvc-dispatcher開頭的xml配置文件.
  而mvc-dispatcher-servlet.xml配置文件, 其內容如下所示:

<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">

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

  <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".jsp"/>
  </bean>

</beans>

   這些配置文件和文件目錄組織都是自動生成的, 大大降低了開發springmvc的門檻. 體驗First, 然后才是熟悉和深入.

服務測試:
  • web應用服務配置
  1). 配置web應用服務, 點擊Run->Edit Configurations菜單項
  
  選中tomcat服務器, 其HTTP port和JMX port端口會自動填充
  2). Deployment子Tab中, 添加工程的war包
  
  • 代碼准備
  springmvc在創建時, 就已經帶有了HelloController的sample類.

package com.springapp.mvcaa;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/")
public class HelloController {
  @RequestMapping(method = RequestMethod.GET)
  public String printWelcome(ModelMap model) {
    model.addAttribute("message", "Hello world!");
    return "hello";
  }
}

  具體的代碼細節, 我們暫且擱置不細講, 大致為填充key/value對 (message=>Hello World), 然后控制器轉到名為hello的jsp文件進行渲染.
  • 瀏覽器測試
  1). 啟動tomcat服務
  
  2). 瀏覽器訪問
  
  遺憾的是出現Unable to compile class for JSP的錯誤.
  網上尋找資料后知曉, 該問題由maven引入的servlet-api和tomcat自帶的servlet-api版本發生了沖突.
  解決方案如下:
  maven的pom文件中, 把servlet-api依賴項的scope改為provided(即參與compile和test, 但不參與package).

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.5</version>
</dependency>

  改為如下所示:

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.5</version>
  <scope>provided</scope>
</dependency>

  再次重啟web服務, 瀏覽器訪問, 這次正常.

  

總結:
  idea創建springmvc項目, 還是比較順利, "Hello World"的sample樣例也自動幫我們生成了. 唯一一個坑就是 servlet-api的版本沖突問題. 解決方案對maven的依賴理解可以更深入一步. 下文將講解基於springmvc的restful項目的搭建, 希望越來越好.

寫在最后:
  
如果你覺得這篇文章對你有幫助, 請小小打賞下. 其實我想試試, 看看寫博客能否給自己帶來一點小小的收益. 無論多少, 都是對樓主一種由衷的肯定.

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM