日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

初学spring mvc

發布時間:2025/7/25 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初学spring mvc 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

初學spring mvc,自己學習做了hello world小例子,步驟如下:

1:從springsource.org下載spring的包,從apache.org下載common-logging的包(供spring使用)。?

?

2: 備好IDE和web server,我用Eclipse(Helios Service Release 1)和Tomcat6.0.29。

2.1 Eclipse:window->show->show view->servers打開servers窗口,右鍵new->server,找到Apache tomcat6并點擊,然后指定本機tomcat安裝目錄后點finish。這樣就在

Eclipse中注冊了tomcat6。

2.2 新建Dynamic Web Project,工程名spring-mvc-demo,Target runtime選項中點new runtime按鈕,選擇tomcat6,點finish。 這樣我們的web project就自動引入了servlet-api.jar,

jsp-api.jar,el-api.jar等web project需要的包。 將step1中jar包放到web project的WEB-INF/lib中,刷新工程,這樣我們就準備好了hello world小例子的jar包環境。

3:打開web.xml,配置DispatcherServlet

?<web-app id="WebApp_ID" 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">

?? ?<servlet>
?? ??? ?<servlet-name>mvc-dispatcher</servlet-name>
?? ??? ?<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
?? ??? ?<load-on-startup>1</load-on-startup>
?? ??? ?<init-param>
?? ??? ??? ?<param-name>contextConfigLocation</param-name>
?? ??? ??? ?<param-value>/WEB-INF/spring-mvc.xml</param-value>
?? ??? ?</init-param>
?? ?</servlet>

?? ?<servlet-mapping>
?? ??? ?<servlet-name>mvc-dispatcher</servlet-name>
?? ??? ?<url-pattern>/</url-pattern>
?? ?</servlet-mapping>

</web-app>

3.1 <init-param>給DispatcherServlet指定了配置文件的路徑,如果不配置<init-param>,默認路徑是"/WEB-INF/+<servlet-name>+'-servlet.xml'",所以本例中默認路徑就是"/WEB-INF/mvc-dispatcher-servlet.xml",現在讓我們在WEB-INF目錄下新建一個spring-mvc.xml文件備用。

4:編寫測試類。

4.1 新建com.test.controller.DemoController.java類:

?

package com.test.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

public class DemoController extends AbstractController {

?? ?@Override
?? ?protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
?? ??? ??? ?HttpServletResponse arg1) throws Exception {
?? ??? ?return new ModelAndView("demo");
?? ?}

}

4.1.1 AbstractController是spring mvc控制器抽象類,我們自定義的控制器只要繼承這個抽象類并實現handleRequestInternal()方法就可以實現最基本的處理和跳轉了。

在spring3版本之前,繼承AbstractController是要實現handleRequest()方法的,spring3以后,在AbstractController的handleRequest()方法中調用了handleRequestInternal(),

改為由開發者自己實現handleRequestInternal()。

4.1.2 ModelAndView 是代表視圖層和模型層的類,在我們的項目中一般就是指jsp文件。

5.配置spring mvc

5.1 打開spring-mvc.xml,寫入以下配置:

?

<beans xmlns="http://www.springframework.org/schema/beans"
?? ?xmlns:context="http://www.springframework.org/schema/context"
?? ?xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?? ?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">
??? <bean name="/demo" class="com.test.controller.DemoController"></bean>

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

</beans>

5.1.1 第一個<bean>在spring 中配置了DemoController,name="/demo"的意思是,我可以使用"http://localhost:8080/spring-mvc-demo/demo"來調用

DemoController。

5.1.2 第二個<bean>定義了視圖處理器,在以上的配置完成以后,我只需要在Controller類的方法里返回new ModelAndView("demo"),spring 就會自動在"demo"前后

加入前綴和后綴作為查找視圖層文件的路徑,在這里就是"/WEB-INF/pages/demo.jsp"

5.2 在/WEB-INF/pages路徑下新建demo.jsp文件:

?

<html>
<body>
?? ?<h1>demo page</h1>?? ?
</body>
</html>

6.將工程部署到Tomcat,啟動Tomcat:?

6.1在servers視窗中右鍵tomcat6->add and remove->加入spring-mvc-demo->finish。?

6.2打開瀏覽器,訪問http://localhost:8080/spring-mvc-demo/demo,如果看到一個顯示著"demo page"兩個單詞的頁面,就算成功了。

7.使用注解?:我們可以使用annotation來簡化xml文件中的配置。

7.1? 新建類com.test.controller.HelloController.java

?

package com.test.controller;

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
public class HelloController {
???

??? @RequestMapping("/welcome")???

??? public String printWelcome(ModelMap model) {
?? ??? ?return "hello";
?? ?}
}

7.1.1 @Controller聲明了HelloController類是一個Controller類,@RequestMapping配置說明當訪問"http://localhost:8080/spring-mvc-demo/welcome"時會調用

?

printWelcome()方法。

7.1.2 雖然 printWelcome()方法返回類型是String,但是spring還是會自動為返回的字符串按照ViewResolver配置的信息自動添加前綴后綴并查找對應的視圖。本例中

?

printWelcome()方法就是跳轉到了"/WEB-INF/pages/hello.jsp"。

7.1.3? 我們也可以給HelloController加上@RequestMapping,但具體的含義我還不了解,需要繼續學習#^^#。

7.2 在/WEB-INF/pages下新建hello.jsp:

?

<html>
<body>
?? ?<h1>Hello World!</h1>?? ?
</body>
</html>

7.3 在spring-mvc.xml中注冊spring annotation

?

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

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

??? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?? ?xsi:schemaLocation="
?? ??? ?http://www.springframework.org/schema/mvc?
?? ??? ?http://www.springframework.org/schema/mvc/spring-mvc-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">
?? ?
?? ?<!-- @Controller, @Service, @Configuration, etc. -->???

?????<context:component-scan base-package="com.test.controller" />

????
?? ?<bean name="/demo" class="com.test.controller"></bean>

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

?? ?<!-- Enables the Spring MVC @Controller programming model -->
??? <mvc:annotation-driven />
</beans>

7.3.1 <context:component-scan>指定了在"com.test.controller"下查找annotation。?

7.3.2? 在spring2.5以后spring3之前,@Controller,@Service,@Repository與@Component是一樣的,都表示<bean>的聲明,但從他們的區分我們可以看出

spring即將在以后的版本中對bean進行mvc分層細化,現在,當我們在spring3下使用@Controller的時候,就沒有人再為了找不到他們之間的區別而感到困惑了。

7.3.3 本例中,如不使用<mvc:annotation-driven>也是可以的。<mvc:>是spring3新增的tag,關于

<context:component-scan>和<mvc:annotation-driven>的區別,可以參考"http://blog.springsource.org/2009/12/21/mvc-simplifications-in-spring-3-0/"。

7.4 重新部署工程,啟動Tomcat,訪問"http://localhost:8080/spring-mvc-demo/welcome" ,你看到熟悉的"Hello World!"了嗎?

參考資料:

http://blog.springsource.com/2011/01/04/green-beans-getting-started-with-spring-mvc/

?

http://blog.springsource.org/2010/01/25/ajax-simplifications-in-spring-3-0/

轉載于:https://www.cnblogs.com/zhangliang0115/archive/2012/02/22/2362463.html

總結

以上是生活随笔為你收集整理的初学spring mvc的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。