Springmvc.docx
《Springmvc.docx》由会员分享,可在线阅读,更多相关《Springmvc.docx(8页珍藏版)》请在冰点文库上搜索。
Springmvc
进入SpringMVC
作者:
NaveenBalani 来自:
IBM
SpringMVC框架
框架提供了构建Web应用程序的全功能MVC模块。
使用Spring可插入的MVC架构,可以选择是使用内置的SpringWeb框架还是Struts这样的Web框架。
通过策略接口,Spring框架是高度可配置的,而且包含多种视图技术,例如JavaServerPages(JSP)技术、Velocity、Tiles、iText和POI。
SpringMVC框架并不知道使用的视图,所以不会强迫您只使用JSP技术。
SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
Spring的WebMVC框架是围绕DispatcherServlet设计的,它把请求分派给处理程序,同时带有可配置的处理程序映射、视图解析、本地语言、主题解析以及上载文件支持。
默认的处理程序是非常简单的Controller接口,只有一个方法ModelAndViewhandleRequest(request,response)。
Spring提供了一个控制器层次结构,可以派生子类。
如果应用程序需要处理用户输入表单,那么可以继承AbstractFormController。
如果需要把多页输入处理到一个表单,那么可以继承AbstractWizardFormController。
示例应用程序有助于直观地学习这些特性。
银行应用程序允许用户检索他们的帐户信息。
在构建银行应用程序的过程中,可以学到如何配置SpringMVC框架和实现框架的视图层,视图层包括JSTL标记(用于显示输出的数据)和JavaServerPages技术。
配置SpringMVC
要开始构建示例应用程序,请配置SpringMVC的DispatcherServlet。
请在文件中注册所有配置。
清单1显示了如何配置sampleBankingServlet。
清单1.配置SpringMVCDispatcherServlet
sampleBankingServlet
1
DispatcherServlet从一个XML文件装入Spring应用程序上下文,XML文件的名称是servlet的名称后面加上-servlet。
在这个示例中,DispatcherServlet会从文件装入应用程序上下文。
配置应用程序的URL
下一步是配置想让sampleBankingServlet处理的URL。
同样,还是要在中注册所有这些信息。
清单2.配置想要处理的URL
sampleBankingServlet
*.jsp
装入配置文件
下面,装入配置文件。
为了做到这点,请为Servlet规范注册ContextLoaderListener或为Servlet及以下的容器注册ContextLoaderServlet。
为了保障后向兼容性,请用ContextLoaderServlet。
在启动Web应用程序时,ContextLoaderServlet会装入Spring配置文件。
清单3注册了ContextLoaderServlet。
清单3.注册ContextLoaderServlet
context>servlet-name>
1
contextConfigLocation参数定义了要装入的Spring配置文件,如下面的servlet上下文所示。
contextConfigLocation
/WEB-INF/
文件代表示例银行应用程序服务的配置和bean配置。
如果想装入多个配置文件,可以在标记中用逗号作分隔符。
SpringMVC示例
示例银行应用程序允许用户根据惟一的ID和口令查看帐户信息。
虽然SpringMVC提供了其他选项,但是我将采用JSP技术作为视图页面。
这个简单的应用程序包含一个视图页用于用户输入(ID和口令),另一页显示用户的帐户信息。
我从LoginBankController开始,它扩展了SpringMVC的SimpleFormController。
SimpleFormContoller提供了显示从HTTPGET请求接收到的表单的功能,以及处理从HTTPPOST接收到的相同表单数据的功能。
LoginBankController用AuthenticationService和AccountServices服务进行验证,并执行帐户活动。
“配置视图属性”一节中的清单5描述了如何把AuthenticationService和AccountServices连接到LoginBankController。
清单4显示了LoginBankController的代码。
清单4.LoginBankController扩展SimpleFormController
publicclassLoginBankControllerextendsSimpleFormController{
publicLoginBankController(){
}
protectedModelAndViewonSubmit(Objectcommand)throwsException{
LoginCommandloginCommand=(LoginCommand)command;
(loginCommand);
AccountDetailaccountdetail=());
returnnewModelAndView(getSuccessView(),"accountdetail",accountdetail);
}
privateAuthenticationServiceauthenticationService;
privateAccountServicesaccountServices;
publicAccountServicesgetAccountServices(){
returnaccountServices;
}
publicvoidsetAccountServices(AccountServicesaccountServices){
=accountServices;
}
publicAuthenticationServicegetAuthenticationService(){
returnauthenticationService;
}
publicvoidsetAuthenticationService(
AuthenticationServiceauthenticationService){
=authenticationService;
}
}
配置视图属性
下面,我必须注册在接收到HTTPGET请求时显示的页面。
我在Spring配置中用formView属性注册这个页面,如清单5所示。
sucessView属性代表表单数据提交而且doSubmitAction()方法中的逻辑成功执行之后显示的页面。
formView和sucessView属性都代表被定义的视图的逻辑名称,逻辑名称映射到实际的视图页面。
清单5.注册LoginBankController
class="">
true
loginCommand
login
accountdetail
commandClass和commandName标记决定将在视图页面中活动的bean。
例如,可以通过页面访问loginCommandbean,这个页面是应用程序的登录页面。
一旦用户提交了登录页面,应用程序就可以从LoginBankController的onSubmit()方法中的命令对象检索出表单数据。
视图解析器
SpringMVC的视图解析器把每个逻辑名称解析成实际的资源,即包含帐户信息的JSP文件。
我用的是Spring的InternalResourceViewResolver,如清单6所示。
清单6.InternalResourceViewResolver
class="">
/jsp/
.jsp
因为我在JSP页面中使用了JSTL标记,所以用户的登录名称解析成资源/jsp/,而viewClass成为JstlView。
验证和帐户服务
就像前面提到的,LoginBankController内部连接了Spring的AccountServices和AuthenticationService。
AuthenticationService类处理银行应用程序的验证。
AccountServices类处理典型的银行服务,例如查找交易和电汇。
清单7显示了银行应用程序的验证和帐户服务的配置。
清单7.配置验证和帐户服务
class="">
class="">
以上服务在中注册,然后装入文件中,就像前面讨论的那样。
控制器和服务配置好后,这个简单的应用程序就完成了。
现在我们来看看部署和测试它时会发生什么!
部署应用程序
我把示例应用程序部署在Tomcatservlet容器中。
Tomcat是JavaServlet和JavaServerPagest技术的官方参考实现中使用的servlet容器。
如果以前没这么做过,请下载5.0.28并运行它把Tomcat安装到自己喜欢的任何位置,例如c:
\。
接下来,下载示例代码并释放到驱动器(例如c:
\)上。
创建了Spring项目的文件夹之后,打开它并把spring-banking子文件夹拷贝到c:
\\webapps。
spring-banking文件夹是一个Web档案,里面包含SpringMVC示例应用程序。
lib文件夹包含应用程序需要的Spring框架、与Spring相关的MVC库以及JSTL标记库和jar文件。
要启动Tomcat服务器,请使用以下命令:
cdbinC:
\Tomcat\bin>start
Tomcat应当启动并部署SpringMVC示例应用程序。
测试应用程序
要测试应用程序,请打开Web浏览器,指向并用Tomcat服务器实际运行的端口替换tomcatport。
应当看到图1所示的登录屏幕。
输入用户ID“admin”和口令“password”,并按下登录按钮。
其他用户ID或口令会造成来自验证服务的错误。
图1.SpringMVC示例登录屏幕
登录成功之后,会看到图2所示的帐户细节页面。
图2.SpringMVC示例帐户细节页面
结束语
在三部分的Spring系列的第三篇文章中,我介绍了SpringMVC框架的特性。
我演示了如何配置和开发SpringMVC应用程序、如何配置SpringMVC控制器和向其中插入依赖项、如何用JavaServerPages技术开发应用程序视图,以及如何把自己的页面与SpringMVC的视图层集成。
总结这篇文章时,我演示了如何在Tomcatservlet容器中部署应用程序以及如何在浏览器中测试它。