springMVC || SSM整合开发

本文详细介绍了SpringMVC的流程,包括web.xml配置、DispatcherServlet、Controller设计、参数接收、视图解析、返回值处理以及SSM整合开发要点。涵盖了核心概念和常见实践,适合初学者理解与实践。
摘要由CSDN通过智能技术生成

 

  1. 先@RequestMapping把请求接收过来
  2. 参数列表获取接收的数据
  3. 再通过ModelAndView把处理结果返回给浏览器

springMVC流程

 

 

1.web.xml配置文件

  • spring监听器使得spring容器中的所有对象一次性创建出来
  • dispatcher创建时把springMVC容器创建出来。 希望能在tomcat启动时就把dispatcher创建,从而把spring创建出来

dispatcherServlet创建,并 指定配置文件xml的位置

mapping映射  url与servlet的映射  

  • 传统的是自己写一个myservlet文件,继承httpServlet,url与myservlet对应,执行nyservlet中的方法。
  • springMVC创建了一个dispatcherServlet,它本质就是一个servlet,所有定义的url都和dispatcherServlet对应,dispatcherServlet再通过配置文件去找controller控制器,在controller类中寻找与页面传入的url对应的方法,并执行

 

2.springMVC 配置文件

定义扫描器,声明controller类所在的包

3.定义Controller类

  • value对应web.xml中的url
  •  能处理请求的都是控制器(处理器),4/ Controller就是后端控制器
  • value是一个数组,可以存储多个值。 当访问这些路径时,多个请求都交给doSome()来处理。
  • 在一个controller类中可以创建多个方法(在Controller类中写多个方法),也可以多个请求交给同一个方法处理(value的值写多个)

 

 

编写实现方法 

  • 当进入/some.do页面时,会调用dosome()
  • mv.addObject相当于request的setAttribute(),传入name和value,这个attribute在这一次request中是整个服务器共享的。
  • 可以在跳转页面中输出attibute的内容  
  • mv.setViewName()相当于Request的请求转发的forward方法,会自动跳转到" "中。

4. 结果跳转的页面show.jsp

其中可以输出dosome()中设置的attribute

5.设置视图解析器。

  • 如果把show.jsp等视图直接放在webapp目录下,其他人可以猜出来路径,直接访问
  • 为了防止这种情况,可以新建一个文件夹,存储view视图
  • 即把访问路径变得更复杂

 

6.给地址加一个模块名称(用)

  • 模块名称可以通过requestMapping放在类上面(方便修改),也可以在方法上面/user/some.do
  • 当功能很多时,可以按照模块分类  

7.指定使用通过get还是post方式发起请求(不用)

  • RequestMethod是一个枚举类型的,主要用到的值时get,post
  • 在controller类的方法中,通过method= 来指定 
  • 也可以不指定,则可以通过get/post访问

  • html中get和post的区别

 get方式传入参数


 

8.接收参数

a.request, response, session参数

b. 逐个接收请求参数

参数名必须和html中定义的参数名一样才能接收到

requestParam在【逐个接受请求参数】中可以解决:

  • 参数名不一样的问题,使用value参数
  • 传入参数能否为空的问题,使用Required   false可以为空
  • requestParam只能在【逐个接受请求参数】中使用

 c.接收java对象(用这个,因为我们已经建好了实体类domain)

不能使用requestParam

接收参数时会产生两个问题8-9

8.使用Integer代替int,能使传入的int类型为空而不出错(用)

  • springMVC会自动获取前端传入的数据,并且把string自动转换为int类型
  • 但是如果定义为int类型 的值,浏览器中不输入,为null传入,.valueOf()会出错,报400错误
  • 400是客户端错误,表示提交请求参数时,出了问题。
  • 只要把int类型改为Integer就能解决“传入为null”的问题。
  • Integer类型只能传入整数

9.解决字符编码问题   过滤器(用)

  • get方法无乱码问题,post方法有中文乱码问题
  • 原始servlet中,在doGET()中指定字符参数。但是在springMVC中,如果每个方法都指定,很麻烦

  •  声明过滤器解决   。接收到的所有请求先经过过滤器,修改字符编码,再传入controller

 

10.三种返回值

  • ModelAndView: 如果请求处理完成后,既需要返回数据,也需要跳转到其他方面(视图),用ModelAndView
  • String:返回视图,视图执行.forward()  。视图名称有两种写法:a.视图解析器+逻辑名称show  b.不使用视图解析器+完整路径。 可以使用request.setAttribute()类获取数据并设置
  • void 
  • Object

SSM整合开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值