【Web】了解springMVC运行原理
2016-09-20 15:21
399 查看
先来使用springMVC做一个入门级的HelloWorld程序。
新建项目,导入所需jar包,详情如下:
配置Web.xml
[html]
view plain
copy
print?
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:config/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
编写Controller
[java]
view plain
copy
print?
package com.tgb.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloWorldController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.print("---hellogghhyy---");
String hello="hello ghy";
return new ModelAndView("/welcome","result",hello);
}
}
配置spring-servlet.xml
[html]
view plain
copy
print?
<bean name="/test/helloWorld" class="com.tgb.web.controller.HelloWorldController" />
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
写页面
[html]
view plain
copy
print?
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>你好</title>
</head>
<body>
${result}
</body>
</html>
下面我们分析一下实现过程。
1、客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.
2、DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。
3-4、DispatcherServlet根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。
5、Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。
6、Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。
7、Dispatcher通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端。
这就是springMVC的工作原理.
springMVC是既简单又强大的前端框架.
新建项目,导入所需jar包,详情如下:
配置Web.xml
[html]
view plain
copy
print?
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:config/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
编写Controller
[java]
view plain
copy
print?
package com.tgb.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloWorldController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.print("---hellogghhyy---");
String hello="hello ghy";
return new ModelAndView("/welcome","result",hello);
}
}
配置spring-servlet.xml
[html]
view plain
copy
print?
<bean name="/test/helloWorld" class="com.tgb.web.controller.HelloWorldController" />
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
写页面
[html]
view plain
copy
print?
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>你好</title>
</head>
<body>
${result}
</body>
</html>
下面我们分析一下实现过程。
1、客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.
2、DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。
3-4、DispatcherServlet根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。
5、Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。
6、Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。
7、Dispatcher通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端。
这就是springMVC的工作原理.
springMVC是既简单又强大的前端框架.
相关文章推荐
- 【Web】了解springMVC运行原理
- 通过MSIL了解CLR的运行原理
- 通过MSIL了解CLR的运行原理
- web优化必须了解的原理之I/o的五种模型和web的三种工作模式
- web初步二: jsp基本运行原理和语法快速回顾
- SpringMVC运行原理
- 通过MSIL了解CLR的运行原理
- 处理器体系结构(了解CPU的基本运行原理)——《深入理解计算机系统》
- web优化必须了解的原理之I/o的五种模型和web的三种工作模式
- web优化必须了解的原理之I/o的五种模型和web的三种工作模式 推荐
- Java Web基础:第六讲 JSP运行原理
- 自己动手写web服务器(上),深入底层了解ASP.NET浏览器与服务器通信原理
- 自己动手写web服务器(下),深入底层了解ASP.NET浏览器与服务器通信原理
- 学习笔记之javaweb基础:JSP的HelloWorld及其运行原理
- 了解web服务器原理
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- 自己动手写web服务器(上),深入底层了解ASP.NET浏览器与服务器通信原理
- 高性能WEB开发 - 了解CSS的查找匹配原理,让CSS更简洁、高效
- Web服务器的运行原理
- 【JavaWeb探究】解析Web运行原理