spring至关重要的一环就是装配,即配置文件的编写,接下来我按刚才实际过程中一步步简单讲解。
首先,要在web.xml中配置DispatcherServlet,它是作为Spring MVC的前端控制器.必须在web.xml中配置好,如下
< servlet-name > ntx </ servlet-name >
< servlet-class > org.springframework.web.servlet.DispatcherServlet </ servlet-class >
< load-on-startup > 1 </ load-on-startup >
</ servlet >
实际上,spring的配置文件可以分切到多个xml文件,我们这个简单的示例就把它配置到ntx.xml中
<! 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如下:
<! 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-name > ntx </ servlet-name >
< url-pattern > *.do </ url-pattern >
</ servlet-mapping >
为了能正确载入DispatcherServlet等配置文件,我们要在web.xml中配置一个上下文载入器ContextLoaderListener或者ContextLoaderServlet,我们这里为了兼容版本较低的Serlvet容器(实际上我采用的2.4),采用第二种:
< servlet-name > context </ servlet-name >
< servlet-class > org.springframework.web.context.ContextLoaderServlet </ servlet-class >
< load-on-startup > 100 </ load-on-startup >
</ servlet >
< 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 >
* program NtxSpring
* date 2006-9-27
* @author 张逸轩
*/
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;
/** */ /**@spring.bean id="loginController"
* @spring.property name="gotoUrl" value="/showResult.jsp"
* @spring.property name="loginService" ref="loginService"
*/
/** */ /**
* 作用描述:spring示例
*
* 说明:spring示例,以上的spring标签方便使用xdoclet生成spring配置文件
*
* @author 张逸轩
* Copyright(c)2006 cleverfox
*/
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;
}
}
public interface LoginService ... {
public String getUserInfo(String userName);
}
import ntx.service.LoginService;
public class LoginServiceImpl implements LoginService ... {
public String getUserInfo(String userName)...{
return "你的名字是:" + userName;
}
}
好了,最后是两个jsp文件,一个index.jsp用来显示一个表单,输入名字,一个showResult.jsp用来显示结果,只贴出相关的代码
<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="没有结果"/>
</body>
发布到tomcat或者其它Servlet容器可以正常使用,提交以后将显示:
This is the Result:
你的名字是:gavin
这是一个简单的入门示例,希望有助于刚接触spring的人加深对spring的理解