springmvc 基本原理和helloworld
来源:互联网 发布:java object wait 编辑:程序博客网 时间:2024/06/05 17:32
一、执行过程
- 用户发起请求,请求到DispatchServlet前端控制器
DispatchServlet(中央调度),负责request和response,负责调用处理器映射器查找Hander,负责调用处理器适配器执行Handler,有了前端控制器降低了各各组件之间的耦合性,系统扩展性提高。 - DispatcherServlet前端控制器请求处理器映射器HandlerMappering查找Handler,根据一定的规则去查找(比如:xml配置,注解)
- HandlerMapping处理器映射器将Handler返回给前端控制器。
- DispatcherServlet前端控制器调用HandlerAdapter处理器适配器执行Handler,程序员编写的Handler是按照适配器要求的规则去执行Handler。
- Handler执行完成,返回给HandlerAdapter处理器适配器ModelAndView。
- 处理器适配器HandlerAdapter将ModelAndView返回给DispatchServlet前端控制器。
- 前端控制器调用ViewResolver根据ModelAndView得到View,然后再进行视图渲染(将模型数据填充到View响应给用户)
- 前端控制器响应给用户。
小结:
一个中心:DispatchServlet前端控制器
三个组件:处理器适配器、处理器映射器、视图解析器
其他:Handler、view
二、原理图
三、helloworld
前端控制器:
<servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping>
三个组件:
<!-- 处理器映射器,根据URL匹配bean的name,处理器映射器实现HandlerMappering接口 --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> <!-- 处理器适配器,实现了HandlerAdapter接口,action按照适配器要求开发,规则是实现Controller接口 --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean> <!-- 视图解析器:解析jsp视图,默认使用jstl,要求classpath下有jstl的jar包 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 视图前缀 --> <property name="prefix" value="/WEB-INF/jsp/"></property> <!-- 视图后缀 --> <property name="suffix" value=".jsp"></property> </bean> <!-- 配置action --> <bean name="/helloworld.action" class="com.app.HelloWorld"></bean>
Handler:
public class HelloWorld implements Controller{ public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception { ModelAndView modelAndView = new ModelAndView(); //向页面显示一行提示信息 //下边的方法就相当于request.setAttribute(); modelAndView.addObject("message", "helloworld!!!"); //指定逻辑试图名 modelAndView.setViewName("hello"); return modelAndView; }
0 0
- springmvc 基本原理和helloworld
- SpringMVC基本原理
- springmvc基本原理
- springmvc基本原理
- SpringMVC基本原理
- cocos2d-x HelloWorld基本原理
- spring和springMVC整合注解版helloworld
- SpringMVC Helloworld注解和404问题
- springMVC-HelloWorld
- SpringMVC HelloWorld
- SpringMVC HelloWorld
- SpringMVC - HelloWorld
- springmvc helloworld
- springMVC helloworld
- 【SpringMVC】Helloworld
- springMVC----springMVC的HelloWorld
- 【springmvc】 springmvc 之 HelloWorld
- springMvc 3.0 使用基本原理
- android视图学习---什么是Overdraw?
- 在FreeBSD上安装Bugzilla
- 自动生成格雷码算法
- ADB启动相应的广播、服务、图形界面
- jquery树形控件Ztree 使用
- springmvc 基本原理和helloworld
- calibre recipe抓取中没有注意的空格
- 实现自己的ls命令
- 使用JMeter对Tomcat进行压力测试与Tomcat性能调优
- DevExpress RibbonForm的标题栏(Title Caption)中文显示不全
- Linux下获取进程状态
- 单选框 change 事件 。 单选框点击事件,切换不同的table。
- web项目启动初始化java Demo
- 好马应不应该吃回头草?