SpringMVC

1.什么是Spring Web MVC(SpringMVC):
Spring Web MVC是Spring框架一个非常重要的模块,实现了MVC结构,便于简单,快速开发MVC结构
的程序,Spring Web MVC提供的API封装了WEB开发中常用的功能,简化了WEB过程

Spring Web MVC的核心组件
Spring Web MVC提供了M,V和C相关的主要实现组件,具体如下:
.Controller(控制器,请求处理处理流程)
.ModerAndView(模型,封装业务处理结果和视图)
.ViewResolver(视图,视图显示处理器)

.DispatcherServlet(控制器,请求入口)
.HandlerMapping(控制器,请求派发)

练习:构建一个HelloWorld应用案例:
解决步骤:
1.构建环境,导包.

2.配置SpringMVC的XML配置文件
名称可以自由定义,例如spring-mvc.xml


3.在web.xml中配置DispatcherServlet前端控制器组件
.DispatcherServlet组件在Spring mvc中已存在,只需要配置即可
.配置的同时指定Spring的配置文件

4.配置HandlerMapping组件
Spring HandlerMapping用于分发web请求到Controller的映射,这个类来自于Spring MVC API,
只需要配置到Spring中即可,修改spring-mvc.xml添加HandlerMapping的配置


5.编写Controller组件
用于处理web url请求,负责执行具体的业务处理
控制器要返回ModelAndView对象,这个对象表示控制处理结果选择了哪个View(JSP作为View)用
于显示


6.配置视图解析器
增加ViewResolver组件配置
ViewResolver用于视图的显示结果处理.

请求执行流程:
1.浏览器向Tomcat7服务器发起web请求"hello.form"
2.Tomcat7会根据web.xml的配置将"hello.form请求交给"DispatcherServlet(Spring核心控制器)
3.DispatcherServlet会根据Handlempping中的urlMapping将"hello.form"请求转给helloController处理
4.helloController执行handleRequest()方法,处理请求,并且返回ModelAndView对象,对象表示
处理结果,ModelAndView包含了目标视图"hello"
5.Spring核心控制器收到ModelAndView中包含的视图"hello"
6.Spring核心控制器利用ViewResolver中的前后缀应用"hello"到/WEB-INF/jsp/hello.jsp文件
7.执行hello.jsp作为响应结果发送到浏览器
8.浏览器收到hello.jsp的执行结果,进行展示

详细说明:
ModelAndView组件.
Controller组件约定的handleRequest方法执行后返回一个ModelAndView对象,该对象可封装
视图名和模型数据
-构造方法
ModelAndView(String viewName);
ModelAndView(String viewName,Map model);
viewName:是jsp页面的名字
model的数据存储到request的attribute对象中


基于注解配置的MVC应用

RequestMapping注解应用
@RequestMapping可以用在类定义和方法定义上
@RequestMapping表明这个类或方法与哪一个客户请求对应

@Controller
@RequestMapping(name="/hello.form")

使用@RequestMapping的条件
.开启@RequestMapping注解映射,需要在Spring的XML配置文件中定义RequestMappingHandleMapping(类定义前)
和RequestMappingHandleAdapter(方法定义前)两个bean组件

Controller注解应用
推荐使用@Controller注解声明Controller组件,这样可以使得Controller定义更加灵活,可以
不用实现Controller接口,请求处理的方法也可以灵活定义.

Controller注解的使用条件.
为了使@Controller生效,需要在Spring的XML配置文件中开启组件扫描定义,并指定Controller
组件所在的包


练习:重构上面的HelloWorld案例
使用注解的方式重构
ps:复制项目的时候将工程的部署名也进行修改,避免项目无法访问的现象

SpringMVC实战技巧.
1.接收请求参数值
SpringMVC将数据提交到控制器有以下几种方法
.使用HttpServletRequest获取.
.使用@RequestParam注解获取
.使用自动机制封装Bean对象

举例说明:
@Controller
@RequestMapping("/day01")
public class HelloController {
    
    @RequestMapping("/hello.form")
    public String execute(HttpHttpServletRequest req) {
        String name = req.getParamether("name");
        return "hello";
    }
    
}
说明:
Spring核心控制器会自动将参数注入HttpServletRequest中.
优点:直接
缺点:需要自己处理数据转换类型

使用@RequestParam注解获取参数实例
ps:不需要为属性增加set方法
@Controller
@RequestMapping("/day01")
public class HelloController {
    @RequestMapping("/hello.form")
    public String execute(String name,@RequestParam("pwd") String password,HttpHttpServletRequest req) {
        System.out.println(pwd);
        String name = req.getParamether("name");
        return "hello";
    }
    
}

使用自动机制封装Bean对象示例:
1.创建数据实体类.User us;
2.在Controller组件处理方法中定义实体类类型参数

<form>
<input type="text" name="name"/>
</form>
@RequestMapping("/hello.form")
    public String execute(User us) {
        System.out.println(us.getName);
        String name = req.getParamether("name");
        return "hello";
    }
    
构建一个完整的用户登录验证功能
要求:
1.使用之前构建的SpringMVC框架作为开发环境
2.利用学习Spring核心阶段的知识构建UserService作为业务模型
这个模型提供登录认证的方法,这个模型依赖于UserDao,JDBCDataSource

2.向页面传值
当Controller组件处理完成后,需要向JSP页面传值,可以使用下面的方法
.直接使用HttpServletrequest或者Session
.使用ModelAndView对象
.使用ModelAndView注解
.使用ModelMap参数对象

3.Session存储
4.重定向视图

SpringMVC  文件上传  限制上传文件的大小.异常处理,中文乱码解决方案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值