一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

spring3 MVC實戰(zhàn),手工搭建Spring3項目demo

 CevenCheng 2012-02-01

一、開發(fā)環(huán)境確認

    1.工具及版本

    jdk我用的是1.6的;jdk的下載安裝和配置就不講了,如果這個還搞不定還談什么spring啊

    myeclipse用的是6.0(實在太落后啦,還是8.X舒服)不過這里是手工搭建不使用自動生成工具,所以版本無所謂的;使用eclipse for     javaEE也ok,不過跟myeclipse可能在項目目錄上會有少許的不同,eclipse的web跟目錄是WebContent,而myeclipse通常是WebRoot

    tomcat是6的,666,大順哈

    2.確認

    為了保證開發(fā)環(huán)境正常請做一下確認,在運行里輸入cmd打開命令行,輸入java -version命令,顯示類似如下內(nèi)容

    java version "1.6.0_23"
    Java(TM) SE Runtime Environment (build 1.6.0_23-b05)
    Java HotSpot(TM) Client VM (build 19.0-b09, mixed mode, sharing)

然后,啟動tomcat6,請確認控制臺沒有報錯信息,控制臺輸出類似如下:

2011-1-19 14:58:27 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2011-1-19 14:58:27 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 255 ms
2011-1-19 14:58:27 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2011-1-19 14:58:28 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.20
2011-1-19 14:58:29 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2011-1-19 14:58:29 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2011-1-19 14:58:29 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/15  config=null
2011-1-19 14:58:29 org.apache.catalina.startup.Catalina start
信息: Server startup in 1401 ms

確認myeclipse或eclipse下server視圖下有你的tomcat6且可以正常啟動關(guān)閉,如果沒有自行配置,如果不知道自己網(wǎng)上搜

確認你的myeclipse或eclipse下的java平臺是剛才確認過的jdk1.6

這一部分最后一步,新建一個webProject,如果你用的是是eclipse for javaEE那么項目類型選擇Static web project

注意,eclipse新建web項目需要選擇target runtime,如果沒有就配上你的tomcat6,myeclipse新建項目j2EE Specification Level項要選擇javaEE5.0

 二、Spring3的jar包

   1.下載Spring3

    先到官網(wǎng)現(xiàn)在吧,上網(wǎng)址:http://www./download 現(xiàn)在最新版本是3.0.5,看圖,點圈住區(qū)域的鏈接

    

現(xiàn)在點擊之后需要注冊用戶才能下載,那就注冊一下吧,spring這么偉大的開源項目,能不支持嗎?當然你也可以選擇下圖所示的鏈接跳過
之后跳轉(zhuǎn)到文件下載選擇頁面,需要下載兩個文件:

    spring-framework-3.0.5.RELEASE-with-docs.zip  和   spring-framework-3.0.5.RELEASE-dependencies.zip

但是現(xiàn)在官方已經(jīng)沒有了 spring-framework-3.0.5.RELEASE-dependencies.zip的下載鏈接(這些依賴我們都可以分別到各自相關(guān)的開源項目下載),不知為何,你可以分別網(wǎng)上搜

spring-framework-3.0.5.RELEASE-with-docs.zip  解壓后目錄結(jié)構(gòu)如下:


dependency的目錄結(jié)構(gòu)基本上全是以com.XX org.XX為名字的目錄,太長了就不截圖了。

下面就是導入了,導入前先說明白兩點:

             1. spring3開始jar包不再包含全能的spring.jar了,而是分成20多個jar包了,配置可以按需引入了

             2. 項目中使用spring除了引入dist目錄下的jar包,還需要dependencies下的一些依賴包,下面再具體說。

2.引入dist目錄下除了下面三個其余所有包

org.springframework.web.struts-3.0.5.RELEASE.jar

org.springframework.spring-library-3.0.5.RELEASE.libd

org.springframework.web.portlet-3.0.5.RELEASE.jar

如何引入jar包,對項目鼠標右鍵選擇【Build Path】,選擇【Add Extenal Archives】,瀏覽到jar包的位置,打開即可

3.接下來,還必須導入日志相關(guān)的一個jar包---commons logging和一個名為com..aopalliance-1.0.0.jarjar

分別在spring-framework-3.0.5.RELEASE-dependencies\org.apache.commons\com..apache.commons.logging\1.1.1

spring-framework-3.0.5.RELEASE-dependencies\org.aopalliance\com..aopalliance\1.0.0

目錄下。如果不引入部署項目tomcat會報如下錯誤:嚴重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

三、spring3配置

1.web.xml配置

web.xml內(nèi)容如下:       

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
 xmlns="http://java./xml/ns/javaee" 
 xmlns:xsi="http://www./2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java./xml/ns/javaee
 http://java./xml/ns/javaee/web-app_2_5.xsd">
 <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-servlet.xml</param-value>
  </context-param>
 <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
 <!-- 對像js,css,gif等靜態(tài)文件的訪問,需要映射到默認的servlet -->

 <!-- 這里省去對靜態(tài)資源url的配置,當然這樣的話tomcat控制臺就會報警告了,對html的請求、頁面中的圖片及css效果也是無法訪問

        不過我們這是搭基本環(huán)境嘛,就先不要圖片吧,如果想解決這個問題,可以看我另外一篇文章
 -->
 <!-- 配置spring核心servlet -->
 <servlet>
  <servlet-name>spring</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>spring</servlet-name>
  <url-pattern>/</url-pattern>
  <!-- url配置為/,不帶文件后綴,會造成其它靜態(tài)文件(js,css等)不能訪問。如配為*.do,則不影響靜態(tài)文件的訪問 -->
 </servlet-mapping>

</web-app>

2.Spring應用上下文配置,在web.xml中我們配置了spring的servlet -----<servlet-name>spring</servlet-name>

web.xml里有這一段

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-servlet.xml</param-value>
    </context-param>

用于開啟基于注解的springMVC功能那么我們需要在跟web.xml同一目錄下新建一個spring-servlet.xml文件,內(nèi)容為:

<beans xmlns="http://www./schema/beans"
 xmlns:context="http://www./schema/context"
 xmlns:p="http://www./schema/p"
 xmlns:mvc="http://www./schema/mvc"
 xmlns:xsi="http://www./2001/XMLSchema-instance"
 xsi:schemaLocation="http://www./schema/beans
      http://www./schema/beans/spring-beans-3.0.xsd
      http://www./schema/context
      http://www./schema/context/spring-context.xsd
      http://www./schema/mvc
      http://www./schema/mvc/spring-mvc-3.0.xsd">
     <!-- 啟動注解驅(qū)動的Spring MVC功能,注冊請求url和注解POJO類方法的映射-->
     <mvc:annotation-driven />

     <!-- 啟動包掃描功能,以便注冊帶有@Controller、@Service、@repository、@Component等注解的類成為spring的bean -->
     <context:component-scan base-package="com.mvc.rest" />

     <!-- 對模型視圖名稱的解析,在請求時模型視圖名稱添加前后綴 -->
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/view/" p:suffix=".jsp" />
</beans>

配置是不是很清爽?多虧spring3增加的mvc、context、tx等幾個命名空間

四、其他

1.建包

新建一個包,包名就是我們spring-servlet.xml里 <context:component-scan base-package="com.mvc.rest"></context:component-scan> 
里的com.mvc.rest

2.建立Constroller

在com.mvc.rest包下新建一個java類,代碼如下:

package com.mvc.rest;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class RestConstroller {
 
 public RestConstroller() {
 }
 
 @RequestMapping(value = "/login/{user}", method = RequestMethod.GET)
 public ModelAndView myMethod(HttpServletRequest request,
   HttpServletResponse response, @PathVariable("user")
   String user, ModelMap modelMap) throws Exception {
  
  modelMap.put("loginUser", user);
  return new ModelAndView("/login/hello", modelMap);
 }

 @RequestMapping(value = "/welcome", method = RequestMethod.GET)
 public String registPost() {
  return "/welcome";
 }
}

3.建視圖

正如spring-servlet.xml里

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/view/" p:suffix=".jsp" />所配置的視圖路徑,我們需要在WEB-INF下建立view目錄,在view下建立jsp文件;

正如RestConstroller里兩個方法的返回語句:return new ModelAndView("/login/hello", modelMap);和return "/welcome";所約定,我們需要在view下建立相應的login目錄并在其下建立hello.jsp,在/WEB-INF/view下建立welcome.jsp
hello.jsp內(nèi)容如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base target="_blank" rel="nofollow">    
    <title>My JSP 'hello.jsp' starting page</title>
    
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">

  </head>
  
  <body>
    你好:<%=request.getAttribute("loginUser") %>,現(xiàn)在時間是<%= new Date() %>
  </body>
</html>

welcome.jsp就隨意吧,測試嘛.

 4.部署訪問

在myeclipse下部署項目并運行

打開瀏覽地址欄輸入:http://localhost:8080/sandDemo001/login/heamer 這里的heamer是自定義的 ,作為請求參數(shù)解析

輸入:http://localhost:8080/sandDemo001/welcome  則顯示你welcome.jsp應該顯示的內(nèi)容。

整個過程已經(jīng)完成,需要注意的有幾方面,1.環(huán)境一定要是可用的  2.jar包正確的引入到項目中   3.配置文件要小心修改,不要犯括號不配對類似的低級錯誤

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美日韩亚洲精品内裤| 国产成人一区二区三区久久| 国产一级片内射视频免费播放| 九九热这里只有精品哦| 欧美精品久久一二三区| 大屁股肥臀熟女一区二区视频| 欧美日韩精品人妻二区三区| 成人精品欧美一级乱黄| 久久久精品区二区三区| 日韩精品亚洲精品国产精品| 欧美精品一区久久精品| 国产原创激情一区二区三区| 欧美一级特黄大片做受大屁股 | 日韩人妻有码一区二区| 色婷婷日本视频在线观看| 日韩欧美一区二区黄色| 中文字幕精品人妻一区| 亚洲中文字幕三区四区| 欧美二区视频在线观看| 九九热视频网在线观看| 麻豆剧果冻传媒一二三区| 麻豆视传媒短视频在线看| 日韩欧美一区二区亚洲| 日韩黄片大全免费在线看| 微拍一区二区三区福利| 国产免费一区二区不卡| 亚洲中文字幕人妻系列| 亚洲一级二级三级精品| 老熟妇乱视频一区二区| 国产精品熟女乱色一区二区 | 国产午夜福利片在线观看| 麻豆国产精品一区二区三区| 日韩一区二区三区观看| 久久精品亚洲精品一区| 少妇丰满a一区二区三区| 激情图日韩精品中文字幕| 亚洲精品深夜福利视频| 日韩综合国产欧美一区| 视频一区二区三区自拍偷| 日本加勒比系列在线播放| 福利新区一区二区人口|