手动创建1个基于xml配置的springmvc 项目(without Maven)
當(dāng)然, 今時(shí)今日使用maven 和 springboot 去創(chuàng)建1個(gè)java web project會(huì)更加方便。
但是手動(dòng)搭建1個(gè)會(huì)加深我對(duì)springmvc的理解。
Step1 打開(kāi)eclipse 創(chuàng)建1個(gè)新的Dynamic web project
Step2 往project內(nèi)的 WEB-INF/lib folder導(dǎo)入下列spring 的jar包
大部分都能在 .m2 里的repository folder找到, 如果沒(méi)有可以利用別的maven project下載。
commons-logging-1.1.1.jarspring-aop-4.1.4.RELEASE.jarspring-aspects-4.1.4.RELEASE.jarspring-beans-4.1.4.RELEASE.jarspring-context-4.1.4.RELEASE.jarspring-core-4.1.4.RELEASE.jarspring-expression-4.1.4.RELEASE.jarspring-tx-4.1.4.RELEASE.jarspring-web-4.1.4.RELEASE.jarspring-webmvc-4.1.4.RELEASE.jarStep3 初步編寫(xiě)web.xml 文件
在WEB-INF 文件夾創(chuàng)建1個(gè)web.xml 文件
Step4 啟動(dòng)項(xiàng)目(with eclipse defined tomcat runtime)
Tomcat 會(huì)報(bào)錯(cuò), 找不到 WEB-INF 下的springmvc-servlet.xml
說(shuō)明spring DispatcherServlet會(huì)默認(rèn)在那里尋找servlet 配置文件。
Step5 修改spring 配置文件位置
在上面的web.xml 中, 為servlet springmvc 添加1個(gè)參數(shù)contextConfigLocation, 值我們寫(xiě)上classpath:springmvc.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xlns="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.sum.com/xml/ns/javaee/web-app_3_0.xsd"><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- auto start --><load-on-startup>1</load-on-startup><!-- modify spring configuration file path and file name --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping> </web-app>在src文件夾下添加springmvc.xml
重新啟動(dòng)項(xiàng)目, tomcat 的錯(cuò)誤就消失了
到這步為止, 我們已經(jīng)初步實(shí)現(xiàn)了springmvc 四大組件中的中央調(diào)度器 DispatcherServlet.
下面我們來(lái)實(shí)現(xiàn)第二個(gè)組件Handler Mapping
Step6 添加1個(gè)HandlerMapping 和1個(gè)Contoller類(lèi)
在src目錄下添加1個(gè)DemoController 類(lèi):
在springmvc.xml中 導(dǎo)入 上面直接換個(gè)bean 以及新建1個(gè)SimpleHandlerMapping 的bean
<?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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd"><bean id ="democontroller1" class="com.home.controller.DemoController"></bean><bean id = "" class= "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="urlMap"><map><!-- key means the logic name of controller --><entry key="demo" value-ref="democontroller1"></entry></map></property></bean> </beans>啟動(dòng)項(xiàng)目,在瀏覽器輸入 http://localhost:8080/springmvc_manual/demo
可以見(jiàn)到DemoController被成功調(diào)用并執(zhí)行
到這里為止, 我們實(shí)現(xiàn)了springmvc 中的第二個(gè)組件HandlerMapping.
還有另兩個(gè)組件 HandlerAdapter 和ViewResovler , 我們并沒(méi)有配入配置文件中。
其實(shí)spring 4 已經(jīng)幫我們配了默認(rèn)值, 但是這次我仍然想把他們也配置了。
Step7 添加1個(gè)HandlerAdapter
在springmvc.xml中添加
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>重啟項(xiàng)目, 刷新頁(yè)面, DemoController仍然可以被調(diào)用
Step8 令DemoController 返回1個(gè)jsp頁(yè)面
在WebContent下建立1個(gè)jsp文件夾, 里面創(chuàng)建1個(gè)demo1.jsp
修改DemoController, 另它return new ModelAndView(jsp/demo1.jsp)
重啟項(xiàng)目, 效果:
其實(shí)這里Spring也幫我們使用了默認(rèn)的ViewSolver, 同樣地,下面我也會(huì)進(jìn)行手動(dòng)配置。
Step8 添加ViewResolver
在springmvc.xml中, 添加
<!-- InternalResoucesViewReslover --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"></property><property name="suffix" value=".jsp"/></bean>prefix 和 suffix表示會(huì)在ModelAndView的值前后加上的額為值。
上面的寫(xiě)法就代表spring會(huì)在/WEB-INF/jsp 里尋找jsp文件
當(dāng)然, 要在WEB-INF 創(chuàng)建jsp文件和1個(gè)demo1.jsp文件, 里面的內(nèi)容改改
修改DemoController ModelAndView的值
只寫(xiě)demo1
重啟項(xiàng)目, 刷新:
總結(jié)
以上是生活随笔為你收集整理的手动创建1个基于xml配置的springmvc 项目(without Maven)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringMVC Controller
- 下一篇: 手动创建1个基于注解的springmvc