SpringMVC开篇之HelloWord



一、引言

MVC是软件开发设计中最重要的设计思想之一。遵循MVC开发思想对软件开发团队的协作,对软件产品的质量提高、生产效率,对应用的可扩展性和可维护性都有着不同寻常的积极的效果,因此备受软件生产企业的追捧,如今业已成为软件开发解决方案的典范模式。

MVC(ModelView and Controller)Model即软件业务逻辑模块,是业务实体及业务实体行为、状态变化的模型组件;View即展现业务模型行为、状态变化结果,接收软件外部输入的组件;Controller即是处理View的输入信息、激发Model业务逻辑行为,并将业务逻辑结果输出到View作为信息输出的组件。

JAVAEE是一套基于Java体系的软件应用开发工具体系,该体系业已成为软件应用(特别是WEB应用)开发的翘楚。JAVAEE详尽描述了企业级软件开发的规范,并为这些规范提供了标准的实现框架。JAVAEE MVC是各大软件厂商竞相模仿和遵循的典范。JAVAEEJPA作为MVCModel组件;以JSP作为MVC View组件;以Servlet作为Controller组件。JAVAEE5开始推出JSF框架,JSF就成为了JAVAEE MVC经典的软件企业级MVC解决方案。

因为JAVAEE核心是EJB组件,EJB强大的设计使普通开发人员无法驾驭,以至于催生了SpringFramework的诞生。SpringFramework借鉴了EJB思想,却以其普世的设计迅速打破了JAVA企业级软件开发模式,并以其非侵入式的IoCAOP设计迅速地占领JAVA企业级应用领域市场。

SpringFramework有其MVC框架→SpringMVCSpringMVC遵循JAVAEE MVC规范,但更简单易用。SpringMVC推出之时并没有多大市场,企业中多数是用Struts系列。Struts1.x2.x都是企业级MVC解决方案。Struts1.x因其设计上的短板迅速由Struts2.x替代,Strust2.x集成了Webwork框架设计和API,彻底抛弃1.x的设计,形成了简单应用的MVC框架,受到无数企业的青睐。然而2.x引入OGNL表达式作为前端数据计算值的显示和向后台传输页面数据,请求的URL可嵌入OGNL表达式以完成动态跳转的处理,且允许调用JAVA的静态方法,某种程度上是简化了前端后台的开发,减轻了开发人员的负担,但却也因此带来了安全隐患。Struts2.x的这种不安全性使企业不得不再寻求另一MVC解决方案。就这样,SpringMVC逐渐步入了人们的视野。

二、SpringMVC概貌

SpringMVC核心是DispacherServlet,该Servletorg.springframework.web.servlet包下。该类可处理转发请求、配置文件的读取、视图解析、静态样式主题配置和文件上传。应用程序使用@Controller@RequestMpping注解配置就可使用该类进行以上功能的处理。DispacherServlet还支持通过@PathVariable注解配置REST风格的WEBService调用。

使用SpringMVC处理数据的传输、显示不必实现任何接口和类,相反的,SpringMVC提供了两个可用的数据处理模型接口:ModelModelAndView方便用户加载和传输数据,这两个中Model类是接口,但你不用去实现它,调用其方法即可;ModelAndView是业务模型与视图做映射用的类。前提你的业务处理类需要@Controller@RequestMapping的描述。DispacherServlet可以解析它们加载的数据。

DispacherServlet需要在web.xml使用servlet标签配置,此外它需要一个有Springschema命名空间约束描述的spring配置文件,该文件默认在web应用的WEB-INF目录下,命名前缀必须与servlet标签中servlet-name的内容一样,形如:servletname-servelt.xml。但如果你不喜欢默认的行为,比如你就喜欢将配置文件放在classpath下,你就必须在servlet中配置init-param标签内容给DispacherServlet读,这时你文件名就可以是任何你想要的合法的文件名了,当然后缀还必须是.xml

@PathVariable一般作用于方法参数,作用是将方法参数的值映射到请求地址的末尾做数据传输用,“末尾参数”默认是参数列表的变量名,也可自定义,形如:@PathVariable(“id”) String userId。在@RequestMapping中就是@RequestMapping(“pathSuffier/{id}”),这样,一旦有请求到来,userId的值就映射在url的后面了,形如:?id=xxxxx@PathVariable要开启SpringREST服务。

好,先唠叨这么些。

下面是系列代码示例,理论在联系实际后才能登上真理殿堂!!!

三、代码示例

示例代码code-1

DisparcherServletMVC配置文件:

Web.xml

<param-name>是固定填入“contextConfigLocation”。

请求URL:

http://localhost:8080/springmvcdemo/show.do

 

页面效果:

Jsp页面:

现在name提交的名称与Controller的方法参数不匹配,提交后后台打印肯定是”null”。修改后的服务器console:

先不要提交中文,乱码是后话待续。好springMVCHelloWolrd”篇就告一段落了,欢迎期待下一节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值