spring臛_…³é‡è¦çš„一环就是装é…,å³é…¾|®æ–‡ä»¶çš„¾~–写åQŒæŽ¥ä¸‹æ¥æˆ‘按刚æ‰å®žé™…˜q‡ç¨‹ä¸ä¸€æ¥æ¥½Ž€å•讲解ã€?/p>
首先åQŒè¦åœ¨web.xmlä¸é…¾|®DispatcherServletåQŒå®ƒæ˜¯ä½œä¸ºSpring MVCçš„å‰ç«¯æŽ§åˆ¶å™¨.必须在web.xmlä¸é…¾|®å¥½åQŒå¦‚ä¸?/p>
Â
<
servlet
>Â
     <servlet-name>ntx</servlet-name>Â
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>Â
     <load-on-startup>1</load-on-startup>Â
</servlet>
实际上,spring的酾|®æ–‡ä»¶å¯ä»¥åˆ†åˆ‡åˆ°å¤šä¸ªxmlæ–‡äšgåQŒæˆ‘们这个简å•çš„½CÞZ¾‹ž®±æŠŠå®ƒé…¾|®åˆ°ntx.xmlä¸?/p>
Â
 <?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>
Â
é…置好上é¢çš„˜q™äº›åŽï¼Œè¦åœ¨WEB-INF下è¦å»ºç«‹ntx-servlet.xml如下åQ?/p>
Â
 <?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䏿·»åŠ?lt;servlet-mapping>
 <servlet-mapping>Â
        <servlet-name>ntx</servlet-name>Â
        <url-pattern>*.do</url-pattern>Â
</servlet-mapping>
ä¸ÞZº†(ji¨£n)能棼‹®è²å…¥DispatcherServlet½{‰é…¾|®æ–‡ä»Óž¼Œæˆ‘们è¦åœ¨web.xmlä¸é…¾|®ä¸€ä¸ªä¸Šä¸‹æ–‡è½½å…¥å™¨ContextLoaderListener或者ContextLoaderServletåQŒæˆ‘ä»¬è¿™é‡ŒäØ“(f¨´)äº?ji¨£n)兼容版本较低的Serlvet容器(实际上我采用çš?.4)åQŒé‡‡ç”¨ç¬¬äºŒç§:
Â
 <servlet>Â
     <servlet-name>context</servlet-name>Â
     <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>Â
     <load-on-startup>100</load-on-startup>Â
</servlet>
˜q™æ ·ž®±å…¨éƒ¨é…¾|®å®Œæ¯•了(ji¨£n)åQŒå½“ç„?d¨°ng)ž¼Œä¸Šé¢çš„ntx.xml是我在项目完æˆä»¥åŽæ‰é…置完æˆçš„,˜q™é‡Œä¸å†å¤šè®²åQŒæœ‰beanå…ƒç´ çš„é…¾|®å¤§å®¶å¯ä»¥å‚考有兌™µ„æ–™ç†è§£ï¼Œå¾ˆå®¹æ˜“ç†è§£çš„åQŒä¸‹é¢å†¾l™å‡ºå®Œæ•´çš„web.xmlé…置以åŠ(qi¨¢ng)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>
æ ÒŽ(gu¨©)®ntx.xml知é“åQŒæ€Õd…±æœ‰ä¸‰ä¸ªjavaæ–‡äšg,LoginController.java是控制器åQŒç‘ô承了(ji¨£n)最½Ž€å•çš„Controller(实际上spring有很多控制器供我们选择)åQŒæŽ¥ä¸‹æ¥æ˜¯ä¸€ä¸ªç®€å•控制器的æºç ?
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;
    }
   Â
}
˜q˜æœ‰service层的接å£ä»¥åŠ(qi¨¢ng)实现åQŒè¾ƒ½Ž€å•,
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;
    }
}
好了(ji¨£n)åQŒæœ€åŽæ˜¯ä¸¤ä¸ªjspæ–‡äšgåQŒä¸€ä¸ªindex.jspç”¨æ¥æ˜„¡¤ºä¸€ä¸ªè¡¨å•,输入åå—åQŒä¸€ä¸ªshowResult.jspç”¨æ¥æ˜„¡¤º¾l“æžœ,åªè„“(chu¨¤ng)出相关的代ç
<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="没有¾l“æžœ"/>
 </body>
å‘布到tomcat或者其它Servlet容器å¯ä»¥æ£å¸¸ä½¿ç”¨,æäº¤ä»¥åŽž®†æ˜¾½Cºï¼š(x¨¬)
This is the Result:
ä½ çš„åå—æ˜?gavin
Â

]]>