[Spring]01_環境配置

1.1 Spring jar包下載


1進入官網http://repo.spring.io

2在資源庫界面點擊Artifacts標簽,然后點擊libs-release-local,展開后依次點擊org -> springframework -> spring。

?

然后,就可以看到發布的各個版本,選一個自己需要的版本,點擊Download

(我這里下載的是當前最新版本spring-framework-4.1.6.RELEASE-dist)

?

?

1.2 Hello World


SpringMVC?配置過程中很容易出現各式各樣的問題,很是費勁。

下面提供傻瓜式創建HelloWorld工程的方式,希望大家少走彎路。

1)創建一個Dynamic Web Project

點擊File -> New -> Other,?輸入web?可以找到Dynamic Web Project

新建一個名為SpringHello的工程。可參考下圖的配置 。

2)導入springjar

WEB-INF目錄下新建一個lib目錄(如果沒有lib目錄)。

將下載的spring-framework-4.1.6.RELEASE-dist\spring-framework-4.1.6.RELEASE\libs中的jar包拷貝到WEB-INF\lib目錄下

為圖省事,本人將所有jar都拷貝進來了。

此外,spring框架還依賴一個外部jar包:commons-logging-1.2.jar,需要下載并導入。

:順便提一下,spring-framework-4.1.6.RELEASE-dist\spring-framework-4.1.6.RELEASE\libs下的jar包分為普通jar包、sources jar包和javadoc jar包。sources?javadoc分別包含了普通jar包的源碼和java文檔。

有興趣想看spring源碼的朋友可以導入,導入方法網上有很多介紹,這里不贅述。

?

3)添加web.xml

web.xml文件中聲明了servlet的清單。

復制代碼
<?xml?version="1.0"?encoding="UTF-8"?>
<web-app?version="2.5"?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"
>
?
?
???????<display-name>SpringHello</display-name>
?
????<!--?聲明前端控制器?-->
???????<servlet>
??????????????<servlet-name>spring</servlet-name>
??????????????<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
??????????????<init-param>
?????????????????????<!--?如果不設置的話,默認的servlet配置文件名為xxx-servlet.xml?-->
?????????????????????<param-name>contextConfigLocation</param-name>
?????????????????????<param-value>/WEB-INF/spring.xml</param-value>
??????????????</init-param>
??????????????<load-on-startup>1</load-on-startup>
???????</servlet>
?
???????<!--?聲明DispatcherServlet處理哪些URL?-->
???????<servlet-mapping>
??????????????<servlet-name>spring</servlet-name>
??????????????<url-pattern>/</url-pattern><!--?映射到/表示會處理所有的請求?-->
???????</servlet-mapping>
</web-app>
復制代碼

SpringMVC的核心是DispatcherServlet,這個servlet的角色是前端控制器。所有的servlet都是在web.xml中配置的,DispatcherServlet當然也不例外。

如果不指定contextConfigLocation,默認情況下servlet配置文件的名字形式應該為servlet-servlet.xml,?這個servlet名就是<servlet-name>標簽中的名字。

?

4)添加servlet——spring.xml

新建一個名為spring.xml的文件(這個文件名必須和web.xml中的servlet對應上),內容如下:

復制代碼
<?xml?version="1.0"?encoding="UTF-8"?>
<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:context
="http://www.springframework.org/schema/context"
???????xmlns:util
="http://www.springframework.org/schema/util"
???????xmlns:mvc
="http://www.springframework.org/schema/mvc"
???????xsi:schemaLocation
="
???????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/util
????http://www.springframework.org/schema/util/spring-util-3.0.xsd
????http://www.springframework.org/schema/mvc
????http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
>
?
???????<!--?默認的注解映射的支持?-->
???????<mvc:annotation-driven?/>
??????
???????<!--?如果當前請求為“/”時,則轉發到“/login/index”?-->
???????<mvc:view-controller?path="/"?view-name="forward:/login/index"?/>
??????
???????<!--?設置后,將查找使用@Component(@Controller是它的一種具體化)注解的類并將其注冊為Bean?-->
???????<context:component-scan?base-package="com.demo.web.controllers"?/>
?
???????<!--?配置視圖解析器?(該配置的是jstl解析器的一個擴展解析類)?-->
???????<bean
??????????????
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
??????????????<property?name="prefix"?value="/WEB-INF/view/"?/>
??????????????<property?name="suffix"?value=".jsp"?/>
???????</bean>
</beans>
復制代碼

?

(5)?添加Controller——LoginController.java

ControllerSpringMVC的控制器,用于處理頁面請求。

新建一個名為LoginControllerjava文件,內容如下:

復制代碼
package?com.demo.web.controllers;
?
import?org.springframework.stereotype.Controller;
import?org.springframework.web.bind.annotation.RequestMapping;
import?org.springframework.web.bind.annotation.RequestMethod;
import?org.springframework.web.servlet.ModelAndView;
?
@Controller
public?class?LoginController?{
??????@RequestMapping(value="/login/index",?method?=?RequestMethod.GET)
??????public?ModelAndView?index()?{
????????????ModelAndView?mav?=?new?ModelAndView();
????????????mav.addObject("message",?"Hello?World!?First?program!");
????????????mav.setViewName("index");?//?設置視圖名稱
????????????return?mav;
??????}
}
復制代碼

Spring2.5版本引入了注解方式,所以,我們可以很方便的使用@Controller來將一個類標注為控制器。

spring.xml中,我們定義了<context:component-scan>標簽,這樣LoginController會自動被發現并注冊為Bean。需要注意的是pacake要相互對應。

@RequestMapping可以將一個URL映射到一個實體類或一個特殊的handler方法上。RequestMethod.GET表示只接受get請求。

?

(6)添加視圖——index.jsp

/WEB-INF文件夾下新建一個view文件夾,并添加一個名為indexjsp文件,內容如下:

復制代碼
<%@?page?language="java"?contentType="text/html;?charset=ISO-8859-1"
???????pageEncoding
="ISO-8859-1"%>
<!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>Spring?Hello?World</title>
</head>
<body>
???????<h1>${message}</h1>
</body>
</html>
復制代碼

?

7)運行項目

經過上面的步驟,項目文件結構如下

運行項目,選擇Run As -> Run On Server結果如下:

?本文轉自靜默虛空博客園博客,原文鏈接:http://www.cnblogs.com/jingmoxukong/p/4503462.html,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256541.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256541.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256541.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ANSYS——常見梁的后處理方法(彎曲應力、彎矩、軸力等的顯示)

目錄 a. 顯示變形 b. 顯示當量應力 c. 顯示彎曲應力 d. 支反力顯示 e. 將圖形存入文件

深度學習基礎(三)loss函數

loss函數&#xff0c;即損失函數&#xff0c;是決定網絡學習質量的關鍵。若網絡結構不變的前提下&#xff0c;損失函數選擇不當會導致模型精度差等后果。若有錯誤&#xff0c;敬請指正&#xff0c;Thank you&#xff01; 目錄 一、loss函數定義 二、常見的loss算法種類 1.M…

C#中DataTable中的Compute方法使用收集

Compute函數的參數就兩個&#xff1a;Expression&#xff0c;和Filter。 Expresstion是計算表達式&#xff0c;關于Expression的詳細內容請看這里“http://msdn2.microsoft.com/zh-cn/library/system.data.datacolumn.expression(VS.80).aspx”。而Filter則是條件過濾器&#x…

Lazy延遲實例對象

懶對象&#xff0c;實現延遲實例對象。 轉載于:https://www.cnblogs.com/yj2010/p/5798622.html

Shift鍵關閉大小寫

同事說他的大寫開了之后無法關閉&#xff0c;我檢查了下&#xff0c;的確是&#xff0c;非常奇怪&#xff0c;然后我不小心按了下下面的Shift鍵&#xff0c;大寫指示燈滅了&#xff0c;我立即明白是怎么回事&#xff0c;原來是文字和語言設置里的Key setting改了&#xff0c;如…

ANSYS——如何選擇合適的單元類型

目錄 1.該選桿單元(Link)還是梁單元(Beam)? 2.對于薄壁結構,是選實體單元還是殼單元?

深度學習之pytorch(一) 環境安裝

快2周沒更新博客了&#xff0c;別問為什么&#xff01;我才不會告訴你忙的飛起&#xff01;說心里話&#xff0c;個人更喜歡用tensorflow來做深度學習&#xff01; 一、環境配置 1.win10 64位系統&#xff1b; 2.anaconda3&#xff1b; 3.不管是CPU還是GPU具有&#xff08;…

hdu3068馬拉車

其實馬拉車還真是最好理解的算法&#xff08;感覺初中的時候好像講過類似的&#xff0c;但是當時就沒有認真聽&#xff09; 沒想到一個簡單的優化能變成O(n)&#xff0c;感覺碉堡 不說了&#xff0c;馬拉車裸題&#xff0c;我在寫的時候只保留了id&#xff0c;沒保留mx&#xf…

CAD——將圖形移動到指定點的方法(此處以捕捉坐標系原點為例)

1、在CAD中畫一個正方形&#xff0c;沒有任何角點在坐標原點上 2、點擊修改工具欄的“移動命令”&#xff0c;選擇剛剛畫好的圖形&#xff0c;選擇一個點為第一個基點&#xff1b; 3、先輸入#號&#xff08;shift3&#xff09;,再輸入0,0&#xff0c;用英文逗號隔開&#xff0c…

閱讀推薦——深入淺出Mesos

深入淺出Mesos&#xff08;一&#xff09;&#xff1a;為軟件定義數據中心而生的操作系統http://www.infoq.com/cn/articles/analyse-mesos-part-01 深入淺出Mesos&#xff08;二&#xff09;&#xff1a;Mesos的體系結構和工作流http://www.infoq.com/cn/articles/analyse-mes…

MySQL主從復制(二)

1<span style"font-family:sans-serif;">主從架構中&#xff1a;從node是不接受w操作的&#xff0c;否則可能會導致數據不一致。</span><br> 一、復制架構中應該注意的問題&#xff1a; 1.限制slave為只讀模式 可以設置在啟動參數中。 > show g…

深度學習之pytorch(二) 數據并行

又是好久沒更新博客&#xff0c;最近瑣事纏身&#xff0c;寫文檔寫到吐。沒時間學習新的知識&#xff0c;剛空閑下來立刻就學習之前忘得差不多得Pytorch。Pytorch和tensorflow差不多&#xff0c;具體得就不多啰嗦了&#xff0c;覺得還有疑問的童鞋可以自行去官網學習&#xff0…

JS 轉換數字為大寫

1 function toUpper(n) {2 n n;3 var unit 十百千萬;4 var num 一二三四五六七八九 ;5 var array new Array();6 for (var in.length; i > 0; i--){7 var numIndex parseInt(n.charAt(i-1))-1;8 if(n…

ANSYS——ANSYS后處理操作技巧與各類問題良心大總結

目錄 1.ANSYS后處理時如何按灰度輸出云圖&#xff1f; 2 將云圖輸出為JPG 3.怎么在計算結果實體云圖中切面? 4.非線性計算過程中收斂曲線實時顯示 5.運用命令流進行計算時,一個良好的習慣是: 6.應力圖中左側的文字中&#xff0c;SMX與SMN分別代表最大值和最小值 7.在非…

容器的綜合應用:文本查詢程序

需求 程序讀取用戶指定的任意文本文件&#xff0c;允許用戶從該文件中查找單詞。查詢結果是該單詞出現的次數&#xff0c;并列出每次出現所在行&#xff0c;如果某單詞在同一行中多次出現&#xff0c;程序將只顯示該行一次。行號按升序顯示&#xff0c;即第 7 行應該在第 9 行之…

Anaconda 安裝操作及遇到的坑

最近剛用Pytorch&#xff0c;編譯開源代碼的時候發現缺少n個package&#xff0c;原來是之前在Anaconda3 創建的虛擬環境各自是獨立的&#xff0c;tensorflow下安裝的不能在別的環境下使用&#xff0c;所以要重新安裝。然而關鍵是國內各種屏蔽資源&#xff0c;無法FQ去直接下載安…

IE瀏覽器歷史版本圖標大全

上個月IE團隊慶祝了IE的15周歲生日&#xff0c; 并曬了曬IE各個歷史版本的圖標&#xff1a; Internet Explorer 1.0 圖標 Internet Explorer 2.0 圖標 Internet Explorer 3.0 圖標 Internet Explorer 4.0 圖標 Internet Explorer 5.0 圖標 Internet Explorer 6.0 圖標 Internet…

7.Mybatis關聯表查詢(這里主要講的是一對一和一對多的關聯查詢)

視頻地址&#xff1a;http://edu.51cto.com/sd/be679 在Mybatis中的管理表查詢這里主要介紹的是一對一和一對多的關聯查詢的resultMap的管理配置查詢&#xff0c;當然你也可以用包裝類來實現。不過這里不說&#xff0c;做關聯查詢的步驟可以簡單的總結為以下的幾步&#xff1a;…

ANSYS——查看某一截面的云圖分布(也叫做切片圖)

1.確定截面的位置 此處以圖中紅色處截面為例 2.將工作平面經過坐標變化移動到指定截面處(工作平面的XY平面與截面重合) 工作平面坐標系默認是與總體坐標系重合的,這里是先平移再進行旋轉

深度學習之keras (一) 初探

之前一段時間里&#xff0c;學習過tensorflow和Pytorch也寫了點心得&#xff0c;目前是因為項目原因用了一段時間Keras&#xff0c;覺得很不錯啊&#xff0c;至少從入門來說對新手極度友好&#xff0c;由于keras是基于tensoflow的基礎&#xff0c;相當于tensorflow的高級API吧&…