天天看點

[讀後感]spring Mvc 教程架構執行個體以及系統示範下載下傳

[讀後感]spring Mvc 教程架構執行個體以及系統示範下載下傳

<a target="_blank" href="http://blog.csdn.net/opengl_es">轉載請保留此句:太陽火神的美麗人生 -  本部落格專注于 靈活開發及移動和物聯裝置研究:iOS、Android、Html5、Arduino、pcDuino,否則,出自本部落格的文章拒絕轉載或再轉載,謝謝合作。</a>

不要好意思,昨晚寫的,睡着忘發了,後附是篇好文,趕緊w分享一下。

感腳着,俺好像做了件聰明事兒,卻不知會不會遭到不了解。

轉載的好文,是不會推薦到首頁的,是以,用這種讀後感的方式,引用好文,發表讀後之感。

當然,不是随意編造,而是确有實感,而且好文,确實也不是能出來的感受,請向後看吧。

---------------

這篇沒什麼好說的,直接照做,無論是本地 Tomcat 6 ,還是 SAE 都能正常運作。

之前下了個處理微信的源碼,想搞個個人微信釋出,發些微信上轉載的精品文章,誰想确沒那麼容易。

看來就得一步一步地試試了。

首先、使用 Eclipse 建個動态 Web 工程,加入個 index.jsp,釋出 War 包到 Tomcat 6,測試成功,再上傳到 SAE,也成功了;

然後、找來下文,逐漸照做,并下載下傳附件中 JAR 包加入,繼續釋出,也成功了;

接着、還不知道要做什麼,是研究一下 MyBatis ,還是研究一下 Spring MVC 的深入配置與注解處理規則?

弄着玩的東西,也無所謂了,走哪算哪兒,有閑工夫,就花上半小時,玩一玩,比玩遊戲要強一些吧,玩遊戲鍛煉身體的耐力,

玩這東西,拿着 11寸 Mac Book Air ,你是想躺着,還是卧着,又或趴着,反正一指禅足夠用了,對身體基本沒有要求。

話說,研究這東西,雖然工作中用不到,但至少看别人寫的東西,疏理個大體邏輯,還是沒問題的,有助于工作上溝通和問題解決,何樂不為呢。

希望此文能給愛玩的兄弟一些參照,借超有愛的原作者的花,獻給大家吧!

[讀後感]spring Mvc 教程架構執行個體以及系統示範下載下傳

發表時間:2014-09-04 11:31 | coding雲 | 3320次閱讀 | 21條評論

      今天coding雲為大家帶來spring mvc架構的執行個體教程,該教程沒有複雜的内容,不需要了解spring mvc的運作機制,就可以搭建好架構,繼而進行快速開發,以此來體會spring mvc架構的簡單、易用、友善以及安全的各種特性。事先說明,本文沒有過多的理論内容,但是當您搭建好這套架構,慢慢的就能體會到其中包含的理論知識了哦。

      配置檔案我都為大家準備好了,而且有源碼包可以下載下傳。這樣就能友善您的快速學習,等您在自己的機器搭建好該項目,跑起來本文提供的簡單例子後,您可以看看我們的源碼,注釋都很詳細,通過例子去了解這些配置,這樣就能幫助您快速了解spring mvc的一些運作機制,進而掌握這套優秀的架構。

      順便告訴大家一聲,coding雲就是建立在該例子之上的哦,期待您也能成長為擁有類似coding雲這樣站點的大牛哦。ok,下面開始着手搭建架構。

一、準備eclipse開發環境

      eclipse是java程式員必備的開發環境,如果您還在用MyEclipse的話,我隻能強烈建議您開始使用eclipse,作為一個java程式員,如果沒有用過eclipse的話,那就不是一個合格的java程式員,具體原因請百度。

      我為大家準備的是eclipse4.3版本,隻安裝了常用的插件,比如svn版本控制以及maven等,完全從官方的最初版本安裝插件後的版本。大家可以到我的網盤下載下傳,下面是免費共享連結:

http://yunpan.cn/Q7ws623WhxEZg  提取碼 ca2c

至于jdk的環境變量等(java程式員必須懂),請自行google、百度。

二、eclipse下建立項目

1.  打開eclipse後,點選【File】--》【new】,彈出視窗,選擇【web】--》【Dynamic Web project】

2. 一路next,在新打開的視窗,輸入項目名稱,本例中輸入的是codingyun-demo,繼續點選next,最後點選finish,項目清單中就能看到我們的新項目codingyun-demo了.

3. 導入spring mvc相關的jar包到lib下

首先下載下傳jar包,我已經把相關jar包都準備好了,大家可以到網盤直接下載下傳:

http://yunpan.cn/Q7wyWjWYfW5Wq  提取碼 d2c4

解壓縮後,将所有jar包放到項目的【WebContent】目錄下的【WEB-INF】目錄下的lib目錄下,直接複制粘貼進去就ok

4.配置項目引用剛才導入到lib下的jar包

右鍵點選項目名,在菜單中選擇【Build Path】--》【Configuration Build Path...】

三、新增spring mvc的配置檔案

找到項目目錄下的【Java Resources】,右鍵點選【Java Resources】,在彈出視窗選擇【new】--》【Source folder】,

source folder建好之後,需要把配置檔案複制粘貼進去,如下圖:

這四個檔案分别是:

database.properties:配置資料庫連接配接的位址,使用者名以及密碼

jdbc-context.xml:spring mvc的jdbc連接配接資料庫的bean的配置

springMvc3-servlet.xml:spring mvc的其他配置(非常重要)

log4j.properties:控制台列印日志的配置、輸出日志檔案的配置

1. database.properties的配置:注意替換shujuku_name為你的資料庫名稱,還有使用者名、密碼

mysql.driverclass=com.mysql.jdbc.Driver

mysql.jdbcurl=jdbc:mysql://127.0.0.1:3306/shujuku_name?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf8

mysql.user=root

mysql.password=abc123

2. jdbc-context.xml的配置:暫時未加事務控制等配置,本次執行個體為了簡單一些。如有需要,請百度或者給我留言,我會補充上來

&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;beans xmlns="http://www.springframework.org/schema/beans"  

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   

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

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

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

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

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

    xsi:schemaLocation="   

          http://www.springframework.org/schema/beans   

          http://www.springframework.org/schema/beans/spring-beans-3.1.xsd   

          http://www.springframework.org/schema/tx   

          http://www.springframework.org/schema/tx/spring-tx-3.1.xsd  

          http://www.springframework.org/schema/context   

          http://www.springframework.org/schema/context/spring-context-3.1.xsd   

          http://www.springframework.org/schema/aop   

          http://www.springframework.org/schema/aop/spring-aop-3.1.xsd" default-autowire="byName"&gt;

     &lt;!-- 建立資料源   commons-dbcp.jar;     commons-pool.jar包--&gt;

     &lt;context:property-placeholder location="classpath:database.properties"/&gt;

&lt;bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"&gt;

&lt;property name="driverClassName" value="${mysql.driverclass}" /&gt;

&lt;property name="url" value="${mysql.jdbcurl}" /&gt;

&lt;property name="username" value="${mysql.user}" /&gt;

&lt;property name="password" value="${mysql.password}" /&gt;

&lt;/bean&gt;

    &lt;bean id="simpleJdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate"&gt;

&lt;constructor-arg&gt;&lt;ref bean="dataSource"/&gt;&lt;/constructor-arg&gt;

&lt;/bean&gt; 

    &lt;!-- 看了spring源碼,該 org.springframework.jdbc.core.JdbcTemplate類的繼承類有dataSource屬性,是以可以屬性注入--&gt;

     &lt;bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"&gt;

    &lt;property name="dataSource"&gt;

        &lt;ref bean="dataSource"/&gt;

    &lt;/property&gt;

     &lt;/bean&gt;

&lt;/beans&gt;

3. springMvc3-servlet.xml的配置:

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  

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

           http://www.springframework.org/schema/beans   

           http://www.springframework.org/schema/beans/spring-beans-3.1.xsd   

           http://www.springframework.org/schema/context   

           http://www.springframework.org/schema/context/spring-context-3.1.xsd  

           http://www.springframework.org/schema/mvc   

           http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"&gt;

    &lt;!-- 啟動掃描所有的controller --&gt;

    &lt;context:component-scan base-package="com.codingyun.core.action"/&gt;

    &lt;!--  主要作用于@Controller,激活該模式

    下面是一種簡寫形式,完全可以手動配置替代這種簡寫形式;

     它會自動注冊DefaultAnnotationHandlerMapping與AnnotationMethodHandlerAdapter 兩個bean,

       是spring MVC為@Controllers分發請求所必須的

     --&gt;

&lt;!--     &lt;mvc:annotation-driven/&gt; --&gt;

    &lt;mvc:annotation-driven&gt;

        &lt;mvc:message-converters register-defaults="true"&gt;

            &lt;bean class="org.springframework.http.converter.StringHttpMessageConverter"&gt;

                &lt;constructor-arg value="UTF-8" /&gt;

            &lt;/bean&gt;

        &lt;/mvc:message-converters&gt;

    &lt;/mvc:annotation-driven&gt;

    &lt;!-- 配置js,css等靜态檔案直接映射到對應的檔案夾,不被DispatcherServlet處理 --&gt;

    &lt;mvc:resources location="/WEB-INF/resources/**" mapping="/resources"/&gt;

    &lt;mvc:resources mapping="/javascript/**" location="/static_resources/javascript/"/&gt;  

    &lt;mvc:resources mapping="/styles/**" location="/static/css/"/&gt;  

    &lt;mvc:resources mapping="/images/**" location="/static/images/"/&gt; 

    &lt;!-- 配置頁面通路位址www.xxx.com/about傳回的靜态html檔案 --&gt;

    &lt;mvc:resources mapping="/about/**" location="/WEB-INF/html/"/&gt;

    &lt;!-- 走servlet的預設配置,先走預設的web.xml配置的servlet,沒有的話才找對應controller --&gt;

    &lt;mvc:default-servlet-handler /&gt;

    &lt;!-- jsp頁面解析器,當Controller傳回XXX字元串時,先通過攔截器,然後該類就會在jsp/目錄下,查找XXX.jsp檔案--&gt;

    &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt;

    &lt;property name="prefix" value="/WEB-INF/jsp/"&gt;&lt;/property&gt;

    &lt;property name="suffix" value=".jsp"&gt;&lt;/property&gt;

    &lt;/bean&gt;

    &lt;bean id="multipartResolver"

class="org.springframework.web.multipart.commons.CommonsMultipartResolver"&gt;

&lt;property name="defaultEncoding"&gt;

&lt;value&gt;UTF-8&lt;/value&gt;

&lt;/property&gt;

&lt;property name="maxUploadSize"&gt;

&lt;value&gt;32505856&lt;/value&gt;&lt;!-- 上傳檔案大小限制為31M,31*1024*1024 --&gt;

&lt;property name="maxInMemorySize"&gt;

&lt;value&gt;4096&lt;/value&gt;

4. log4j.properties的配置:

log4j.rootLogger=INFO,console,R

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console.Target=System.out

log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n

log4j.appender.console.threshold=INFO

log4j.appender.R=org.apache.log4j.RollingFileAppender

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n

log4j.appender.R.File=/alidata/zkyj/web/zkyj-web.log

log4j.appender.R.Append=true

log4j.appender.R.Threshold=INFO

log4j.appender.R.MaxFileSize=20MB

log4j.appender.LOGFILE.MaxBackupIndex=100

log4j.org.springframework.web=INFO

四、配置web.xml,以及建立jsp、css、js等目錄

依照上圖,建立目錄,以及web.xml檔案

web.xml的配置

&lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xmlns="http://java.sun.com/xml/ns/javaee" 

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"&gt;

&lt;display-name&gt;zkyj-web&lt;/display-name&gt;

&lt;!-- web.xml 的加載順序是:context-param -&gt; listener -&gt; filter -&gt; servlet ,

而同個類型之間的實際程式調用的時候的順序是根據對應的 mapping 的順序進行調用的 --&gt;

&lt;!-- spring上下文載入監聽器,確定web服務啟動時,spring已經完成初始化 --&gt;

&lt;listener&gt;

  &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;

&lt;/listener&gt;

&lt;context-param&gt;

&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;

&lt;param-value&gt;classpath:jdbc-context.xml&lt;/param-value&gt;

&lt;/context-param&gt;  

&lt;filter&gt;

&lt;filter-name&gt;encodingFilter&lt;/filter-name&gt;

&lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&gt;

&lt;init-param&gt;

&lt;param-name&gt;encoding&lt;/param-name&gt;

&lt;param-value&gt;UTF-8&lt;/param-value&gt;

&lt;/init-param&gt;

&lt;param-name&gt;ForceEncoding&lt;/param-name&gt;

&lt;param-value&gt;true&lt;/param-value&gt;

&lt;/filter&gt;

&lt;filter-mapping&gt;

&lt;url-pattern&gt;/*&lt;/url-pattern&gt;

&lt;/filter-mapping&gt;

&lt;servlet&gt;

&lt;servlet-name&gt;springMvc3&lt;/servlet-name&gt;

&lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;

&lt;param-value&gt;classpath:springMvc3-servlet.xml&lt;/param-value&gt;

&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;

&lt;/servlet&gt;

    &lt;!-- 會話逾時配置(機關為分鐘) --&gt;

&lt;session-config&gt; 

    &lt;session-timeout&gt;120&lt;/session-timeout&gt; 

&lt;/session-config&gt;

&lt;servlet-mapping&gt;     

&lt;servlet-name&gt;default&lt;/servlet-name&gt;    

&lt;url-pattern&gt;*.jpg&lt;/url-pattern&gt;       

&lt;/servlet-mapping&gt;      

&lt;servlet-mapping&gt;         

&lt;servlet-name&gt;default&lt;/servlet-name&gt;      

&lt;url-pattern&gt;*.js&lt;/url-pattern&gt;      

&lt;servlet-mapping&gt;          

&lt;servlet-name&gt;default&lt;/servlet-name&gt;         

&lt;url-pattern&gt;*.css&lt;/url-pattern&gt;        

&lt;/servlet-mapping&gt;   

&lt;servlet-mapping&gt;

&lt;url-pattern&gt;/&lt;/url-pattern&gt;

&lt;/servlet-mapping&gt;    

&lt;welcome-file-list&gt;

&lt;welcome-file&gt;index.html&lt;/welcome-file&gt;

&lt;/welcome-file-list&gt;

&lt;!-- 通過錯誤碼來配置error-page ,配置了當系統發生404錯誤時,跳轉到錯誤處理頁面NotFound.jsp。 --&gt;

&lt;error-page&gt; 

    &lt;error-code&gt;404&lt;/error-code&gt; 

    &lt;location&gt;/page404.html&lt;/location&gt; 

&lt;/error-page&gt; 

&lt;!--  通過異常的類型配置error-page ,配置了當系統發生java.lang.NullException(即空指針異常)時,跳轉到錯誤處理頁面error.jsp  --&gt;

    &lt;exception-type&gt;java.lang.NullPointerException&lt;/exception-type&gt; 

    &lt;location&gt;/WEB-INF/jsp/error.jsp&lt;/location&gt; 

&lt;/error-page&gt;

&lt;/web-app&gt;

五、建立controller,接收頁面請求,傳回相應的頁面

在項目的src目錄下建立包com.codingyun.core.action

在該包下建立indexController.java

indexController.java内容:

package com.codingyun.core.action;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;

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

import org.springframework.web.bind.annotation.RequestMethod;

@Controller

public class IndexController{

/**

* 進入demo首頁

* @user jack

* 2014年9月4日

*/

@RequestMapping(value = "", method = RequestMethod.GET)

public String index(HttpServletRequest request){

//對應的是WebContent目錄下的WEB-INF目錄下的jsp目錄下的demo下的index.jsp

//請檢視配置檔案springMvc3-servlet.xml仔細體會一下

return "demo/index";   

}

六、配置tomcat,啟動tomcat後,測試通路localhost

http://localhost:8080/codingYun-Demo/ 通路成功,則說明項目搭建成功。

七、架構源碼下載下傳

這次的spring mvc架構執行個體,我為大家無償共享到我的雲盤了,如有需要,請自行下載下傳。

最後補充一句,有任何問題,您都可以在本頁評論處留言,我會盡快為您解答。

http://yunpan.cn/Q7cPpVKAqNN4E  提取碼 2fde

如果幫到您的話,請為本文點贊、同時分享給您的好友圈。

******************2014年10月10日18:30:10更新*************

coding雲的粉絲們,福利來了。spring Mvc 架構執行個體進階篇已經為大家提供了哦,包含了coding雲的首頁、登入功能、驗證碼功能,而且頁面內建了bootstrap前端架構哦,大家快快來下載下傳項目源碼吧。