一
.
Struts1.x与Struts2.x的区别
1 ) . 框架方面: Struts2以WebWork为核心,采用拦截器的机制来在处理用户请求
1.Struts1严重依赖于ServletAPI,属于侵入型框架
2.Struts2不严重依赖于servletAPI,属于非侵入型框架
2 ) . Action方面 :
1.Struts1的Action是单实例的,一个Action的实例处理所有的请求
2.Struts2的Action是一个请求对应一个实例(每次请求时都新new出一个对象),没有线程安全方面的问题
3 ) . 封装请求参数 :
1.Struts1中强制使用ActionForm对象封装请求的参数
2.Struts2可以选择使用POJO类来封装请求的参数,或者直接使用Action的属性
4 ) .前端总控制器 :
1.Struts1的前端总控制器(核心总控制器)为ActionServlet
2.Struts2的前端总控制器(核心总控制器)为FilterDispather
二.
SpringMVC,struts1和struts2的区别
1 ) . 线程安全 :
1. Spring MVC 单例 非线程安全2. Struts1 单例 费线程安全
3. Struts2 线程安全对每个请求都产生一个实例
2 ) . 入口 :
1. Spring MVC 的入口是 servlet2. Struts1 的入口是 Filter
3. Struts2 的入口是 Filter
3 ) .前端总控制器 :
1. Spring 的前端总控制器是 DispatcherServlet2. Struts1 的前端总控制器是 FilterDispatcher
3. Struts2 的前端总控制器是 actionServlet
4 ) . 参数传递 :1. Spring MVC 用方法来接受参数2. Struts1 是在接受参数时,可以用属性来接受参数,说明参数是让多个方法共享的
3. Struts2 同Struts1
5 ) . 基于设计 :1. Spring MVC 是基于方法的设计2. Struts1 是基于 类的设计
3. Struts2 是基于 类的设计
三.
Struts2中result中的type类型
1 ) . dispatcher : 默认的,用来转向页面,通常处理JSP
2 ) . redirect : 将用户重定向到一个已配置好的URL
3 ) . redirectAction : 将用户重定向到一个已定义好的Action
4 ) . chain : 将action和另外一个action链接起来
5 ) . freemarker : 呈现Freemarker模板
6 ) . httpheader : 返回一个已配置好的HTTP头信息响应
7 ) . stream : 向浏览器发送InputStream对象对下载的内容和图片非常有用
8 ) . velocity : 呈现Velocity模板
9 ) . xslt : 该XML可以通过XSL模板进行转换
10 ) . plaintext : 显示原始文件内容,例如文件源代码
四.
Struts2标签
首先需要引用<%@taflib prefix="s" uri="/struts-tags"%>
1.全部 :
1 ) . <s:if></s:if> 判断标签 后面可跟<s:else>
2 ) . <s:iterator></s:iterator>迭代标签
3 ) . <s:include></s:include>引入标签,可以把一个JSP页面或者servlet引入一个页面中4 ) . <s:property></s:property>输出标签
5 ) . <s:set></s:set> 标签赋予变量一个特定范围内的值
6 ) . <s:form></s:form>表单标签7 ) . <s:testarea></s:testarea>文本域标签
8 ) . <s:select></s:sect>下拉标签
9 ) . <s:url></s:url> 声明一个url路径
2.常用 :
1 ) . 判断 : <s:if></s:if>
2 ) . 循环 : <s:iterator></s:iterator>
3 ) . 输出 : <s:property></s:property>