Spring Web MVC 原理学习(下)

         接着上一篇博客,这一篇,我们根据一个简单的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 {

@Override

public 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的流程图,是在上一张原理图上继续写的,也许有些地方不太合适,欢迎拍砖!

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值