首页 > 代码库 > SpringMVC入门demo

SpringMVC入门demo

  1. 为什么要学习SpringMVC呢?

Spring框架号称是JavaEE应用的一站式解决方案,Spring本身有提供了一个设计优良的MVC框架,SpringMVC。由于Spring框架拥有极高的市场占有率,因此越来越多的Spring框架使用者使用SpringMVC代替曾经的MVC框架的王者Struts2。当然Spring也可以无缝地整合Struts、JSF等优秀的MVC框架。

越来越多的企业开始选择则SpringMVC+Mybatis来构建系统架构,而在电商热门的今天,SpringMVC+Mybatis已经成为电商项目架构的最佳搭配。

什么是MVC思想?MVC的优势又是什么?MVC,它不是Java语言所特有的设计思想,也并不是Web应用所特有的思想,而是所有面向对象程序设计语言都应该遵守的一种规范。MVC的优势在于:
  1. 他将一个应用分文三个层次(M,V,C这里就不多概述),这三个部分协同工作,把应用程序代码的耦合度降到了最低,这就提高了程序的可扩展性和可维护性。

  2. 多个视图可以对应一个模型,这样就减少了代码的重复性,以及代码的维护量。

  3. 因为将模型数据和显示层分离开来,所以模型数据可以应用于任何显示技术,包括jsp页面、velocity模板或者直接产生Excel文档。

  4. MVC更有利于工程化管理地软件,不同的层各司其职,有利于通过工程化和工具化的方法来管理程序代码。

SpringMVC又具有哪些优势呢?
  1. SpringMVC灵活性高、非侵入性以及可配置性。

  2. SpringMVC提供了一个前端控制器DispatcherServlet,开发人员不用额外开发控制器对象。

  3. SpringMVC分工明确,包括控制器、验证器、命令对象、模型对象、处理程序映射试图解析器等,每个功能的实现都由一个专门的对象来负责完成。

  4. SpringMVC可以自动绑定用户输入,并正确的转换数据类型。(例如可将字符串解析为模型的int或者float类型的属性)。

  5. SpringMVC使用了一个名称/值的Map对象实现更加灵活的模型数据传输。

  6. SpringMVC内置了常见的校验器,可以校验用户输入,如果校验不通过,重定向到输入表单。输入校验是可选的并且支持编程方式以及声明方式。

  7. SpringMVC支持国际化,配置极其简单。

  8. SpringMVC支持多种视图技术:JSP、Velocity和FreeMarker.

  9. Spring提供了一个简单而又强大的JSP标签库,支持数据绑定功能,使得编写JSP页面更加容易。

话不多说,直接上代码(编写HelloWorld的步骤):
  1. 首先需要做的就是导入所需的jar包:Spring的所有jar包以及commons-logging.jar。

Spring下载地址:http://repo.spring.io/release/org/springframework/spring/ 。

commons-logging.jar下载地址:http:commons.apache.org 。

配置web.xml——DispatcherServlet前端控制器的配置。
  <!-- 定义Spring MVC前端控制器 -->
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>/WEB-INF/springmvc-config.xml</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  <!-- 让Spring MVC的前端控制器拦截所有请求 -->
  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping>
配置SpringMVC的Controller<?xml version="1.0"  encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd"> <!-- 配置handle,映射hello请求 --> <bean name="/hello" class="org.fkit.controller.HelloController"/> <!-- 处理映射器将bean的name作为url进行查找,需要在配置Handle时指定name(即url) --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!-- SimpleControllerHandlerAdapter是一个处理器适配器,所有处理器适配器都是要实现HandlerAdapter接口 --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/> </beans>Controller类的实现
public class HelloController implements Controller{
	
	private static final Log logger = LogFactory.getLog(HelloController.class);
	
	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
		// TODO Auto-generated method stub
		logger.info("handleRequest被调用");
		ModelAndView mv = new ModelAndView();
		mv.addObject("message","Hello SpringMVC!");
		mv.setViewName("/WEB-INF/content/welcome.jsp");
		return mv;
	}

}
View页面的实现
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>初识SpringMVC</title>
</head>
<body>
${requestScope.message }
</body>
</html>
测试应用:访问下面网址:

http://localhost:8080/SpringMVCTest/hello












    




本文出自 “五小猪” 博客,请务必保留此出处http://wuxiaozhu.blog.51cto.com/7942143/1916348

SpringMVC入门demo