前言
比较struts2与spring mvc
实现机制:
Struts2是基于过滤器实现的。
Springmvc基于servlet实现。Servlet比过滤器快。
运行速度:
Struts2是多列
请求来了以后,struts2创建多少个对象:
ActionContext,valuestack,UserAction,ActionSuport,ModelDriven
Springmvc是单列
参数封装来分析:
Struts基于属性进行封装。
Springmvc基于方法封装。
页面回显:
查询所有
构造一组list数据
|
|
页面回显(利用jstl标签回显)
注意此处有个delete
利用?的方法,无疑将值显示的传过去,很不安全
测试:在浏览器中输入http://localhost:100/springmvc2/test/userlist.do
可以取出集合中的数据,同时delete中有显示id=参数传过去了
URL模版映射
url模版映射是restfull软件架构
Web.xml拦截方式:在rest目录下所有请求都被拦截,servlet可以拦截目录
配置如下:
|
|
():匹配接受页面Url路径参数
@Pathariable:()里面参数注入后面参数里面
|
|
页面修改:
测试:同样输入相同地址,会发现href代参直接变成/参数
转发和重定向
转发
关键字:forward
本类进行转发:
本类方法与方法之间进行forward
转发方式:
return “forward : /test/userlist.do”;
跨类进行转发:
转发方式:return ”forward:/items/userlist.do“;
其中items是类前面的路径声明
重定向
关键字:redirect
本类进行重定向:
本类方法与方法之间进行redirect
重定向方式:
return “redirect:/test/userlist.do”;
跨类进行重定向:
转发方式:return ”redirect:/items/userlist.do“;
@responseBody和@RequestBody
@responseBody把后台pojo转换json对象,返回到页面。
@RequestBody接受前台json数据,把json数据自动封装javaBean。
下面以一个实例说明
这里ajax传递json数据用jquery来模拟
步骤一:导入jar包(jackson-core-asl-1.9.11.jar和jackson-mapper-asl-1.9.11.jar)
加入jquery
在springmvc.xml文件中声明对json数据的支持
页面传递ajax格式
后台代码:
此处声明了接受的参数和返回的都是json数据格式
测试:在浏览器输入http://localhost:100/springmvc2/index.jsp
通过点击文本,后台会打印参数,同时返回一个user对象给前台,并显示出来
pojo,后台返回json
前台请求数据构造:key=value&key=value.
首先是页面
|
|
最后在springmvc中配置的前两个设配器,我们可以通过一个注解声明代替
不仅如此,它还自动包括了json数据格式声明等等
即默认创建注解处理器映射器,注解处理器适配器。提供json格式支持。