xzc520

           

          最簡單的spring入門示例

          spring至關(guān)重要的一環(huán)就是裝配,即配置文件的編寫,接下來我按剛才實(shí)際過程中一步步簡單講解。

          首先,要在web.xml中配置DispatcherServlet,它是作為Spring MVC的前端控制器.必須在web.xml中配置好,如下

          ?

          < servlet >?
          ?????
          <servlet-name>ntx</servlet-name>?
          ?????
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>?
          ?????
          <load-on-startup>1</load-on-startup>?
          </servlet>

          實(shí)際上,spring的配置文件可以分切到多個(gè)xml文件,我們這個(gè)簡單的示例就把它配置到ntx.xml中

          ?

          ?<?xml?version="1.0"?encoding="UTF-8"?>?
          <!DOCTYPE?beans?PUBLIC
          ????"-//SPRING//DTD?BEAN//EN"
          ????"http://www.springframework.org/dtd/spring-beans.dtd"
          >?
          ?
          <beans
          ??
          default-autowire="no"?
          ??default-lazy-init
          ="false"?
          ??default-dependency-check
          ="none"?
          >?
          ?
          ????
          <bean?id="loginService"?class="ntx.service.serviceimpl.LoginServiceImpl"/>?
          ????????
          ????
          <bean??id="loginController"?class="ntx.controller.LoginController">?
          ????????
          <property?name="loginService">?
          ????????????
          <ref?bean="loginService"/>?
          ????????
          </property>?
          ????????
          <property?name="gotoUrl">?
          ????????????
          <value>/showResult.jsp</value>?
          ????????
          </property>?
          ????
          </bean>?
          ????
          ????
          <bean?id="SimpleUrlHandlerMapping"?class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">?
          ????????
          <property?name="mappings">?
          ????????????
          <props>?
          ????????????????
          <prop?key="/userLogin.do">loginController</prop>?
          ????????????
          </props>?
          ????????
          </property>?
          ????
          </bean>?
          </beans>

          ?

          配置好上面的這些后,要在WEB-INF下要建立ntx-servlet.xml如下:

          ?

          ?<?xml?version="1.0"?encoding="UTF-8"?>?
          <!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?"http://www.springframework.org/dtd/spring-beans.dtd">?
          <beans>?
          ????
          <bean?id="viewResolver"?class="org.springframework.web.servlet.view.InternalResourceViewResolver">?
          ????????
          <property?name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>?
          ????????
          <property?name="prefix"><value></value></property>?
          ????????
          <property?name="suffix"><value></value></property>?
          ????????
          ????
          </bean>?
          </beans>

          ?

          接下來,要指明哪些請求將交給spring的DispatcherServlet來處理,所以在web.xml中添加<servlet-mapping>

          ?<servlet-mapping>?
          ????????
          <servlet-name>ntx</servlet-name>?
          ????????
          <url-pattern>*.do</url-pattern>?
          </servlet-mapping>

          為了能正確載入DispatcherServlet等配置文件,我們要在web.xml中配置一個(gè)上下文載入器ContextLoaderListener或者ContextLoaderServlet,我們這里為了兼容版本較低的Serlvet容器(實(shí)際上我采用的2.4),采用第二種:

          ?

          ?<servlet>?
          ?????
          <servlet-name>context</servlet-name>?
          ?????
          <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>?
          ?????
          <load-on-startup>100</load-on-startup>?
          </servlet>
          這樣就全部配置完畢了,當(dāng)然,上面的ntx.xml是我在項(xiàng)目完成以后才配置完成的,這里不再多講,有bean元素的配置大家可以參考有關(guān)資料理解,很容易理解的,下面再給出完整的web.xml配置以及java
          <?xml?version="1.0"?encoding="UTF-8"?>
          <web-app?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"
          >

          ???
          <context-param>
          ???????
          <param-name>contextConfigLocation</param-name>
          ???????
          <param-value>/WEB-INF/ntx.xml</param-value>
          ???
          </context-param>
          ???
          <servlet>
          ?????
          <servlet-name>ntx</servlet-name>
          ?????
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
          ?????
          <load-on-startup>1</load-on-startup>
          ???
          </servlet>
          ???
          <servlet>
          ?????
          <servlet-name>context</servlet-name>
          ?????
          <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
          ?????
          <load-on-startup>100</load-on-startup>
          ???
          </servlet>
          ???
          <servlet-mapping>
          ????????
          <servlet-name>ntx</servlet-name>
          ????????
          <url-pattern>*.do</url-pattern>
          ????
          </servlet-mapping>
          ????
          <welcome-file-list>
          ????????
          <welcome-file>index.jsp</welcome-file>
          ????
          </welcome-file-list>
          </web-app>
          根據(jù)ntx.xml知道,總共有三個(gè)java文件,LoginController.java是控制器,繼承了最簡單的Controller(實(shí)際上spring有很多控制器供我們選擇),接下來是一個(gè)簡單控制器的源碼
          package?ntx.controller;

          import?javax.servlet.http.HttpServletRequest;
          import?javax.servlet.http.HttpServletResponse;

          import?org.springframework.web.servlet.ModelAndView;
          import?org.springframework.web.servlet.mvc.Controller;

          import?ntx.service.LoginService;
          public?class?LoginController?implements?Controller{

          ????
          private?LoginService?loginService?;
          ????
          private?String?gotoUrl;
          ????
          public?ModelAndView?handleRequest(HttpServletRequest?request,HttpServletResponse?response)?throws?Exception?{
          ????????String?userName?
          =?request.getParameter("userName");
          ????????
          this.getUserInfo(request,?userName);
          ????????
          ????????
          return?new?ModelAndView(this.getGotoUrl());
          ????}

          ????
          ????
          private?void?getUserInfo(HttpServletRequest?request,String?userName){
          ????????String?userInfo?
          =?loginService.getUserInfo(userName);
          ????????request.setAttribute(
          "userInfo",?userInfo);
          ????}

          ????
          ????
          public?String?getGotoUrl()?{
          ????????
          return?gotoUrl;
          ????}

          ????
          public?void?setGotoUrl(String?gotoUrl)?{
          ????????
          this.gotoUrl?=?gotoUrl;
          ????}

          ????
          public?LoginService?getLoginService()?{
          ????????
          return?loginService;
          ????}

          ????
          public?void?setLoginService(LoginService?loginService)?{
          ????????
          this.loginService?=?loginService;
          ????}

          ????
          }

          還有service層的接口以及實(shí)現(xiàn),較簡單,
          package?ntx.service;
          public?interface?LoginService?{

          ????
          public?String?getUserInfo(String?userName);
          }
          package?ntx.service.serviceimpl;

          import?ntx.service.LoginService;

          public?class?LoginServiceImpl?implements?LoginService?{
          ????
          public?String?getUserInfo(String?userName){
          ????????
          ????????
          return?"你的名字是:"?+?userName;
          ????}

          }

          好了,最后是兩個(gè)jsp文件,一個(gè)index.jsp用來顯示一個(gè)表單,輸入名字,一個(gè)showResult.jsp用來顯示結(jié)果,只貼出相關(guān)的代碼

          <body>
          ??? This is my Test Spring page. <br>
          ??? <div>
          ??? ?<form method="post" action="/userLogin.do">
          ???? ?<input type="text" name="userName" size="30"/><br/>
          ???? ?<input type="submit" value="提交"/>
          ???? </form>
          ??? </div>
          ? </body>

          <body>
          ??? This is the Result: <br>
          ?<c:out value="${userInfo}" default="沒有結(jié)果"/>
          ? </body>

          發(fā)布到tomcat或者其它Servlet容器可以正常使用,提交以后將顯示:

          This is the Result:

          你的名字是:gavin

          ?

          posted on 2006-10-13 10:28 嫁蛙 閱讀(1132) 評論(1)  編輯  收藏

          評論

          # re: 最簡單的spring入門示例 2014-08-03 23:47 zuidaima

          spring相關(guān)代碼demo下載地址:http://zuidaima.com/share/kspring-p1-s1.htm  回復(fù)  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 南召县| 玉门市| 榆林市| 应用必备| 塘沽区| 仪陇县| 兰考县| 威宁| 定陶县| 乌兰县| 太保市| 沁源县| 慈溪市| 柳河县| 韶山市| 东乡县| 阳新县| 即墨市| 郎溪县| 突泉县| 太仆寺旗| 富蕴县| 柳州市| 永和县| 宜兰市| 江门市| 平陆县| 西峡县| 四子王旗| 南部县| 葵青区| 咸丰县| 盈江县| 六安市| 伊川县| 蒲江县| 嘉黎县| 渭南市| 六盘水市| 岐山县| 扶绥县|