关于spring MVC机制,示例解读

spring MVC分离了控制器、模型对象。工作过程如下:

1.Spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。 
        2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller 。
        3.DispatcherServlet请请求提交到目标Controller 。
        4.Controller进行业务逻辑处理后,会返回一个ModelAndView 。
        5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象。 
        6.视图对象负责渲染返回给客户端。

springMVC例子解读:

HelloWorldController代码注释如下:

package cn.training.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import cn.training.UserBean.UserBean;
import cn.training.service.*;
//找到名为HelloWorldController这个类
@Controller("HelloWorldController")
//访问路径
@RequestMapping("/")
//HelloWorldController类
public class HelloWorldController {
   //自动注入标签
    @Autowired
    //声明一个Helloservice变量
    Helloservice helloservice;
    //以GET方式请求访问路径
    @RequestMapping(value = "/", method = RequestMethod.GET)
    //带一个参数的initLogin( )方法
    public String initLogin(Model model) {
     //转到helloWorld。jsp页面
        return "helloWorld";
    }
    //以POST方式访问路径
    @RequestMapping(value="/init",  method=RequestMethod.POST)
    //带两个参数的initLogin2( )方法
    public String initLogin2(UserBean userbean,Model model) {
      //声明一个UserBean变量,并调用Helloservice类中的searchservice()方法,将得到的值赋给userbean1
      UserBean userbean1= helloservice.searchservice(userbean);
      //将userbean更改设置为userbean1
       model.addAttribute("userbean",userbean1);
       //跳转到login,jsp页面
       return "login";
        
    }
}

Helloservice页面注释如下:

package cn.training.service;
import org.springframework.stereotype.Service;
import cn.training.UserBean.UserBean;
//@Service用于标注业务层组件
@Service
//Helloservice类
public class Helloservice {
 public UserBean searchservice(UserBean fim){
 //将fim的userid设置为test
 fim.setUserId("test");
 
 return fim;
}
}

UserBean.java、helloWorld.jsp、login.jsp、web.xml、springMVC-servlet.xml等页面内容省略。

注意事项:

当创建一个 Controller ,需直接或间接地实现 org.springframework.web.servlet.mvc.Controller 接口。

@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。

@RequestMapping     RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。RequestMapping注解有六个属性,下面我们把它分成三类进行说明。

1. value, method;

value:     指定请求的实际地址,指定的地址可以是URI Template 模式;

method:  指定请求的method类型, GET、POST、PUT、DELETE等;

2. consumes,produces;

consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

produces:    指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

3. params,headers;

params: 指定request中必须包含某些参数值是,才让该方法处理。

headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

${userbean.userId}表示取出userbean中的userId。

<form action="init" method="POST">
<input name="jsd" type="text"/>
<button name="submit" type="submit">login</button>
</form>

通过这段代码。我知道了XML文件中有很多组建和控件可以使用,例如这儿就用到了文本框和提交按钮。

在这样的项目里,涉及的页面比较多,应注意名称的规范性与一致性,以避免低级的错误。

时间: 2024-10-15 12:02:34

关于spring MVC机制,示例解读的相关文章

spring MVC入门示例(hello world demo)

1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框 架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的. Spring Web MVC也是服务到工作者模式的实现,但进行可优化.前端控制器是DispatcherServlet:应用控制器其实拆为处理器映射器(Handler M

Spring MVC 入门示例讲解

MVC框架是什么 Dispatcher Servlet(Spring控制器) Spring入门示例 运行时依赖库 web.xml和spring-servlet.xml文件配置 请求控制器EmployeeController.java 视图模型EmployeeVO.java Dao类 业务层类 视图employeeListDisplay.jsp MVC框架是什么 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型.视图及控制器在应用程序中的角色将业务

Spring MVC 完整示例

在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简化它的配置. MVC框架是什么 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型.视图及控制器在应用程序中的角色将业务逻辑从界面中解耦.通常,模型负责封装应用程序数据在视图层展示.视图仅仅只是展示这些数据,不包含任何业务逻辑.控制器负责接收来自用户的

IDEA+Maven+Spring MVC HelloWorld示例

用Maven创建Web项目 选择webapp模板 创建成功后点Enable Auto-Import idea给我们创建出来的结构是这样的,这还不标准,需要自己修改. 在main文件夹下创建java文件夹,这是放置源码的地方,标记为sources.创建resources文件夹且标记为resource. 初始结构如下. 配置Spring pom.xml的配置 在<dependecies>与</dependecies>之间插入以下代码,添加依赖包. <dependency>

Spring MVC详细示例实战教程【转】

一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!--configure the setting of springmvcDispatcherServlet and configure the mapping--> <servlet>     <servlet-name>

spring mvc 注解示例

springmvc.xml <?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:mvc="http://www.springframewo

spring mvc 入门示例

classpath <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.e

记录: 百度webuploader 分片文件上传java服务器端(spring mvc)示例的优化

最近项目上用到文件分片上传,于是找到了百度的一个开源前端控件webuploader. 于是尝试使用. 下载下来后,它提供的服务器端示例代码是php版的,那么Java版的呢? 其实,上传文件都是按照rfc1867标注来的, 只是分段上传需要在前端多做点事情.分段上传原理其实就是在前端使用JavaScript对文件进行分割成不同小块,然后每次ajax请求就post一小块,直到全部收到为止. 但是,为了确保后端能判断文件是否完整的收到,需要得知当前是第几块,一共多少块,每个分段的大小是多少(前后端同学

spring mvc 单元测试示例

import java.awt.print.Printable; import java.io.IOException; import javax.servlet.http.HttpServletResponse; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired