Spring Web MVC 原理学习(下)
来源:互联网 发布:als推荐算法 编辑:程序博客网 时间:2024/05/16 02:30
接着上一篇博客,这一篇,我们根据一个简单的demo,来对SpringMVC的原理再次学习:
一、配置web.xml
我们新建一个web项目,在web.xml配置网站的统一访问点,把Dispatcher Servlet配置在里面,进行全局流程控制;
<!-- 前台控制器的配置 ,配置统一访问点,进行全局的流程控制--><servlet><servlet-name>chapter2</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>chapter2</servlet-name><url-pattern>/</url-pattern> </servlet-mapping>
二、配置spring的servlet.xml文件
再然后配置spring的配置文件xx.servlet.xml,在里面配置HandlerMapping,HandlerAdapter,ViewResolver具体使用的类,这里我们分别配置的是BeanNameUrlHanderMapping,SimpleControllerHandlerAdaper,InternalResourceViewResolver,值得一说的,这里面我们可以根据项目实际情况,配置相应的技术,灵活性在这里体现的非常好。
<!-- 在spring配置文件中,配置HandlerMapping、HandlerAdapter,ViewResolver --> <!-- HandlerMapping --><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> <!-- HandlerAdapter --><bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /> <!-- ViewResolver --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" ><property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /><property name="prefix" value="/WEB-INF/jsp" /><property name="suffix" value=".jsp" /></bean>
三、具体业务实现
接下来我们就应该写一个controller的类了,实现Controller的接口,获取ModelAndView的对象,实现业务:
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 {@Overridepublic ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {//1、收集参数//2、绑定参数到命令对象//3、调用业务对象//4、选择下一个页面ModelAndView mv = new ModelAndView();//添加模型数据 可以是任意的POJO对象mv.addObject("message", "Hello World!");//设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面mv.setViewName("hello");return mv;}}
然后我们需建立一个view,这里我们建立jsp页面,根据controller类里设置的view名称“hello”,我们新建一个“hello”的jsp页面,根据${message},获取业务数据,渲染视图。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Context-Type" content="text/html; charset=UTF-8"><title>Hello World</title></head><body>${message}</body></html>
等等,这还没完呢,在spring的配置文件xx.selvet.xml里,我们只配置了规则,但是还没有具体写业务,所以我们需要配置controller这个bean,通过URL获得beanName,以便于能够找到controller。
<!-- 处理器 --><bean name="/hello" class="cn.javass.chapter2.web.controller.HelloWorldController" />
四、实际应用原理结合的图
这张demo的流程图,是在上一张原理图上继续写的,也许有些地方不太合适,欢迎拍砖!
- Spring Web MVC 原理学习(下)
- Spring Web MVC 原理学习(上)
- Spring Web MVC学习笔记:原理简介与环境搭建
- Spring Web MVC工作原理
- Spring MVC 原理 - DispatcherServlet调用完整过程(下)
- Spring MVC 原理 - DispatcherServlet调用完整过程(下)
- 详解Spring Web MVC中的Controller(下)
- Spring 4 官方文档学习(⑥)Web MVC 框架之配置Spring MVC
- java web学习(进阶篇)九 Spring MVC
- 【知识积累】Spring Web MVC学习(一)
- spring web mvc环境下使用dwr
- Spring Web MVC框架(八) 配置Spring Web MVC
- web开发-MyEclipse下maven创建Web项目Spring+Spring MVC+MyBatis框架集成-学习笔记十六
- Spring Web MVC(一)
- Spring Web MVC(二)
- web 容器(Spring MVC)
- Spring web MVC开发学习笔记
- Spring Web MVC 的学习笔记
- SQLDataReader 发现的现象
- c 处理基于java服务端byte[]数组接收图片( xsd__base64Binary)
- Kettle数据固化流程
- 为什么项目屡屡延期 - 占空比对工期的显著影响
- iOS 类似QQ侧滑的简单效果
- Spring Web MVC 原理学习(下)
- C++中cout和cerr的区别?
- iOS开发- 文件共享(利用iTunes导入文件, 并且显示已有文件)
- 日志框架实现实时修改,实时生效,具体框架思路(5)
- 查看php版本
- 西安割包皮最便宜的医院
- Oracle之序列
- Django 官方推荐的User引用 (auth.models)
- uva 11090 Going in Cycle!! (求平均权值最小的环路)