服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

入门也流行简单 最简单的spring入门示例


  应一位朋友的要求,写一个最简单的spring示例,使用spring的mvc,并应用了spring的依赖注入,实现简单应用,索性放在这里供还没入门的spring爱好者参考,初步感受一下spring应用(spring高手就不必看了,这里并没有涉及高级特性,比如与orm框架的整合,事务管理,远程调用,代理等这些功能)

  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有很多控制器供我们选择),接下来是一个简单控制器的源码:

/** *//**
* 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;
}

}

  还有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.

<div>
<form method="post" action="/userlogin.do">
<input type="text" name="username" size="30"/>

<input type="submit" value="提交"/>
</form>
</div>
</body>

<body>
this is the result:

<c:out value="${userinfo}" default="没有结果"/>
</body>

  发布到tomcat或者其它servlet容器可以正常使用,提交以后将显示:

  this is the result:

  你的名字是:gavin

入门也流行简单 最简单的spring入门示例

  这是一个简单的入门示例,希望有助于刚接触spring的人加深对spring的理解。

扫描关注微信公众号