电脑综合技术区
400万+工程师在用
华为|鸿蒙开发者日
直播报名
400万+工程师在用
华为|鸿蒙开发者日
直播报名

电子发烧友网工程师

17年用户 16436经验值
擅长:可编程逻辑 MEMS/传感技术 测量仪表 模拟技术 控制/MCU RF/无线
私信 关注

spring实例

2008-9-11 11:22

<p><font face="Verdana">spring实例</font><br/></p>
<p>spring至关重要的一环就是装配,即配置文件的编写,接下来我按刚才实际过程中一步步简单讲解。<br/><br/>  首先,要在web.xml中配置DispatcherServlet,它是作为Spring MVC的前端控制器.必须在web.xml中配置好,如下<br/><br/>
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e7e9e9" border="1">
<tbody>
<tr>
<td><servlet><br/><servlet-name>ntx</servlet-name><br/><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><br/><load-on-startup>1</load-on-startup><br/></servlet></td></tr></tbody></table><br/>  实际上,spring的配置文件可以分切到多个xml文件,我们这个简单的示例就把它配置到ntx.xml中<br/><br/>
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e7e9e9" border="1">
<tbody>
<tr>
<td><?xml version="1.0" encoding="UTF-8"?><br/><!DOCTYPE beans PUBLIC<br/>"-//SPRING//DTD BEAN//EN"<br/>"http://www.springframework.org/dtd/spring-beans.dtd"><br/><br/><beans<br/>default-autowire="no"<br/>default-lazy-init="false"<br/>default-dependency-check="none"<br/>><br/><br/><bean id="loginService" class="ntx.service.serviceimpl.LoginServiceImpl"/><br/><br/><bean id="loginController" class="ntx.controller.LoginController"><br/><property name="loginService"><br/><ref bean="loginService"/><br/></property><br/><property name="gotoUrl"><br/><value>/showResult.jsp</value><br/></property><br/></bean><br/><br/><bean id="SimpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><br/><property name="mappings"><br/><props><br/><prop key="/userLogin.do">loginController</prop><br/></props><br/></property><br/></bean><br/></beans></td></tr></tbody></table><br/>  配置好上面的这些后,要在WEB-INF下要建立ntx-servlet.xml如下:<br/><br/>
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e7e9e9" border="1">
<tbody>
<tr>
<td><?xml version="1.0" encoding="UTF-8"?><br/><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><br/><beans><br/> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><br/> <property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property><br/> <property name="prefix"><value></value></property><br/> <property name="suffix"><value></value></property><br/></bean><br/></beans></td></tr></tbody></table><br/>  接下来,要指明哪些请求将交给spring的DispatcherServlet来处理,所以在web.xml中添加<servlet-mapping><br/><br/>
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e7e9e9" border="1">
<tbody>
<tr>
<td><servlet-mapping><br/> <servlet-name>ntx</servlet-name><br/> <url-pattern>*.do</url-pattern><br/></servlet-mapping></td></tr></tbody></table><br/>  为了能正确载入DispatcherServlet等配置文件,我们要在web.xml中配置一个上下文载入器ContextLoaderListener或者ContextLoaderServlet,我们这里为了兼容版本较低的Serlvet容器(实际上我采用的2.4),采用第二种:<br/><br/>
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e7e9e9" border="1">
<tbody>
<tr>
<td><servlet><br/> <servlet-name>context</servlet-name><br/> <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class><br/> <load-on-startup>100</load-on-startup><br/></servlet></td></tr></tbody></table><br/>  这样就全部配置完毕了,当然,上面的ntx.xml是我在项目完成以后才配置完成的,这里不再多讲,有bean元素的配置大家可以参考有关资料理解,很容易理解的,下面再给出完整的web.xml配置以及java<?xml version="1.0" encoding="UTF-8"?><br/><br/>
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e7e9e9" border="1">
<tbody>
<tr>
<td><web-app version="2.4" <br/>xmlns="http://java.sun.com/xml/ns/j2ee" <br/>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <br/>xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee <br/>http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><br/><br/><context-param><br/> <param-name>contextConfigLocation</param-name><br/> <param-value>/WEB-INF/ntx.xml</param-value><br/></context-param><br/><servlet><br/> <servlet-name>ntx</servlet-name><br/> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><br/> <load-on-startup>1</load-on-startup><br/></servlet><br/><servlet><br/> <servlet-name>context</servlet-name><br/> <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class><br/> <load-on-startup>100</load-on-startup><br/></servlet><br/><servlet-mapping><br/> <servlet-name>ntx</servlet-name><br/> <url-pattern>*.do</url-pattern><br/></servlet-mapping><br/><welcome-file-list><br/> <welcome-file>index.jsp</welcome-file><br/></welcome-file-list><br/></web-app></td></tr></tbody></table><br/>  根据ntx.xml知道,总共有三个java文件,LoginController.java是控制器,继承了最简单的Controller(实际上spring有很多控制器供我们选择),接下来是一个简单控制器的源码:<br/><br/>
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e7e9e9" border="1">
<tbody>
<tr>
<td>/** *//**<br/>* program NtxSpring<br/>* date 2006-9-27<br/>* @author 张逸轩<br/>*/<br/>package ntx.controller;<br/><br/>import javax.servlet.http.HttpServletRequest;<br/>import javax.servlet.http.HttpServletResponse;<br/><br/>import org.springframework.web.servlet.ModelAnDVIew;<br/>import org.springframework.web.servlet.mvc.Controller;<br/><br/>import ntx.service.LoginService;<br/><br/>/** *//**@spring.bean id="loginController"<br/>* @spring.property name="gotoUrl" value="/showResult.jsp"<br/>* @spring.property name="loginService" ref="loginService"<br/>*/<br/><br/>/** *//**<br/>* 作用描述:spring示例<br/>* <br/>* 说明:spring示例,以上的spring标签方便使用xdoclet生成spring配置文件<br/>* <br/>* @author 张逸轩<br/>* Copyright(c)2006 cleveRFox <br/>*/<br/>public class LoginController implements Controller...{<br/><br/>private LoginService loginService ;<br/>private String gotoUrl;<br/>public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception ...{<br/> String userName = request.getParameter("userName");<br/> this.getUserInfo(request, userName);<br/> return new ModelAndView(this.getGotoUrl());<br/>}<br/><br/>private void getUserInfo(HttpServletRequest request,String userName)...{<br/> String userInfo = loginService.getUserInfo(userName);<br/> request.setAttribute("userInfo", userInfo);<br/>}<br/><br/>public String getGotoUrl() ...{<br/> return gotoUrl;<br/>}<br/>public void setGotoUrl(String gotoUrl) ...{<br/> this.gotoUrl = gotoUrl;<br/>}<br/>public LoginService getLoginService() ...{<br/> return loginService;<br/>}<br/>public void setLoginService(LoginService loginService) ...{<br/> this.loginService = loginService;<br/>}<br/><br/>}</td></tr></tbody></table><br/>  还有service层的接口以及实现,较简单。<br/><br/>
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e7e9e9" border="1">
<tbody>
<tr>
<td>package ntx.service;<br/>public interface LoginService ...{<br/> public String getUserInfo(String userName);<br/>}package ntx.service.serviceimpl;<br/><br/>import ntx.service.LoginService;<br/><br/>public class LoginServiceImpl implements LoginService ...{<br/> public String getUserInfo(String userName)...{<br/>  return "你的名字是:" + userName;<br/> }<br/>}</td></tr></tbody></table><br/>  好了,最后是两个jsp文件,一个index.jsp用来显示一个表单,输入名字,一个showResult.jsp用来显示结果,只贴出相关的代码:<br/><br/>
<table bordercolor="#cccccc" width="90%" align="center" bgcolor="#e7e9e9" border="1">
<tbody>
<tr>
<td><body><br/>This is my Test Spring page. <br><br/><div><br/><form method="post" action="/userLogin.do"><br/><input type="text" name="userName" size="30"/><br/><br/><input type="submit" value="提交"/><br/></form><br/></div><br/></body><br/><br/><body><br/>This is the Result: <br><br/><c:out value="${userInfo}" default="没有结果"/><br/></body></td></tr></tbody></table><br/>  发布到tomcat或者其它Servlet容器可以正常使用,提交以后将显示:<br/><br/>  This is the Result: <br/><br/>  你的名字是:gavin<br/><br/>
<table width="90%" align="center">
<tbody>
<tr>
<td>
<div align="center"><img alt="" src="https://www.elecfans.com/article/UploadPic/2008-9/2008911112230713.jpg"/></div></td></tr></tbody></table><br/>  这是一个简单的入门示例,希望有助于刚接触spring的人加深对spring的理解。 </p>

更多回帖

打开APP