第八天 框架之痛-Spring MVC(一)

        3月13日,晴天。云淡风轻近午天,傍花随柳过前川。微笑

     如果无法深入理解框架,机械的按部就班,最终迷失在代码中,这是代码之殇,还是框架之痛...大哭

         第一个Spring MVC大笑

           1、搭建环境-使用eclipse-jee-indigo-SR1-win32作为开发平台

             1)安装两个依赖插件Spring IDE 和Spring Tool Suite-方便使用Spring。

                    千万不要去Help->Install NewSoftware,网上一堆一堆的介绍用该方法,用了就知道,害人呀。发火         

                          而要用Help->Eclipse Marketplace…,又省事又省了查找各种对应版本之苦,而且把该插件所需的别的插件  (AspectJ,Mylyn)也偷偷安上了,省心。微笑只需在Find里面输入Spring IDE,查到后,点击install即可。

                                               

             同理,往下找,Spring Tool Suite对应的Eclipse版本就看见了,点击install即可。

                              

       安装完毕,快捷按钮多出一个Spring的标识-绿色叶子

                   2)新建一个Dynamic Web 工程springMVC_hello,如果使用Tomcat 7作为Web服务器,到Web Module配置时。记得方框内打钩,否者不自动生成web.xml

                           

                3) 本例使用spring-framework-2.5.6-with-docs.zip,只需找出spring.jar,spring-webmvc.jar两个jar包,外加一个commons-logging-1.1.1.jar即可。如果你用spring3.0以上版本,省事的做法是将dist目录下所有jar 包导入。


               2、根据spring mvc 工作原理依次按步骤进行如下操作

             1 )启动Web服务器时,会根据web.xml 的配置加载前端控制器(也称总控制器) DispatcherServlet 。在加载时完成一系列的初始化动作。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <servlet>
  	<servlet-name>myOneMVC</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  	<servlet-mapping>
  	    <servlet-name>myOneMVC</servlet-name>
  	    <url-pattern>/</url-pattern>
  	</servlet-mapping>
</web-app>

           load-on-startup:当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。正数的值越小,启动该servlet的优先级越高。

        url-pattern:表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。

          2 )现在,请求已交给Spring Web MVC框架处理,因此需要配置Spring的配置文件,默认DispatcherServlet会加载WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件,本示例为WEB-INF/myOneMVC-servlet.xml。根据servlet 的映射请求,并参照“控制器配置文件”(即myOneMVC-servlet.xml 这样的配置)文件,把具体的请求分发给特定的后端控制器进行处理(比如会分发给WelcomeController 控制器进行处理)

        myOneMVC-servlet.xml的写法是:选中WEB-INF,左键选中,New->Other->Spring,选Spring Bean Configuration File,输入文件名myOneMVC-servlet.xml,弹出如下xsd选项,勾选你需要的即可。插件的好处体现出来了吧。偷笑

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
	
         <bean name="/hello.html" class="edu.eurasia.controller.WelcomeController"></bean>
   
</beans>

       说明:hello.html的请求将给名为WelcomeControllerbean进行处理。

        3)后端控制器调用相应的逻辑层代码,完成处理并返回视图对象(ModelAndView)给前端处理器。

public class WelcomeController extends AbstractController {

	@Override
	protected ModelAndView handleRequestInternal(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		ModelAndView mav = new ModelAndView("hello.jsp");
		mav.addObject("message", "Hello World!");
		return mav;
	}
}
         ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) :功能处理方法,实现相应的功能处理,比如收集参数、验证参数、绑定参数到命令对象、将命令对象传入业务对象进行业务处理、最后返回ModelAndView对象;

        ModelAndView:包含了视图要实现的模型数据和逻辑视图名;mv.addObject("message", "Hello World!");  表示添加模型数据,此处可以是任意POJO对象;new ModelAndView("hello.jsp");表示设置逻辑视图名为“hello.jsp”,视图解析器会将其解析为具体的视图,默认将其解析为“WEB-INF/hello.jsp”。

        4)前端控制器根据后端控制器返回的ModelAndView对象,并结合一些配置,返回一个相应的页面给客户端。

          创建 /WEB-INF/hello.jsp视图页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	 ${message }
</body>
</html>
              5)运行Tomcat 7 ,输入http://localhost:8080/springMVC_hello/hello.html

        项目结构图


        3、spring mvc 工作原理

      (1 )启动服务器,根据web.xml 的配置加载前端控制器(也称总控制器) DispatcherServlet 。在加载
时、会完成一系列的初始化动作。
     (2 )根据servlet 的映射请求(上面的WelcomeController 实例中针对hello.html 请求),并参照“控制器配置文件”(即myOneMVC-servlet.xml这样的配置)文件,把具体的请求分发给特定的后端控制器进行处理(比
如上例会分发给WelcomeController控制器进行处理)。
      (3 )后端控制器调用相应的逻辑层代码,完成处理并返回视图对象( ModelAndView )给前端处理器。
      (4 )前端控制器根据后端控制器返回的 ModelAndView 对象,并结合一些配置,返回一个相应的页面给客户端。




           

                     

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值