xzc520

 

最简单的spring入门示例

spring至关重要的一环就是装配,即配置文件的编写,接下来我按刚才实际过程中一步步简单讲解。

首先,要在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>

实际上,spring的配置文件可以分切到多个xml文件,我们这个简单的示例就把它配置到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中配置一个上下文载入器ContextLoaderListener或者ContextLoaderServlet,我们这里为了兼容版本较低的Serlvet容器(实际上我采用的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>
这样就全部配置完毕了,当然,上面的ntx.xml是我在项目完成以后才配置完成的,这里不再多讲,有bean元素的配置大家可以参考有关资料理解,很容易理解的,下面再给出完整的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>
根据ntx.xml知道,总共有三个java文件,LoginController.java是控制器,继承了最简单的Controller(实际上spring有很多控制器供我们选择),接下来是一个简单控制器的源码
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层的接口以及实现,较简单,
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;
    }

}

好了,最后是两个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

 

posted on 2006-10-13 10:28 嫁蛙 阅读(1099) 评论(1)  编辑  收藏

评论

# re: 最简单的spring入门示例 2014-08-03 23:47 zuidaima

spring相关代码demo下载地址:http://zuidaima.com/share/kspring-p1-s1.htm  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜