属于侵入性框架,struts2不严重依赖于servletAPI,属于非侵入型框架。
线程模型方面:
Struts1的Action是单实例的,
一个Action的实例处理所有的请求。
Struts2的Action是一个请求对应一个实例(每次请求时都新new出一个对象),
没有线程安全方面的问题
封装请求参数:
Struts1中强制使用ActionForm对象封装请求的参数。
Struts2可以选择使用POJO类来封装请求的参数,或者直接使用Action的属性。
struts1的前端总控制器(核心总控制器)为ActionServlet,
struts2的前端总控制器(核心总控制器)为FilterDispather
六、Spring MVC、struts1和struts2区别
1.spring mvc 单例 非线程安全
struts1单例 非线程安全
struts2线程安全对每个请求都产生一个实例
2.spring mvc的入口是servlet,而struts2是filter
spring 的前端总控制器为 DispatcherServlet
struts2 的前端总控制器为 FilterDispatcher
struts1 的前端总控制器为 actionServlet
3. 参数传递:struts是在接受参数的时候,
可以用属性来接受参数,这就说明参数是让多个方法共享的。
springmvc 用方法来接受参数
4.spring mvc是基于方法的设计,而sturts是基于类
七、Struts2中result中的type类型
1.dispatcher:它是默认的,用来转向页面,通常处理JSP
2.redirect:将用户重定向到一个已配置好的URL
3.redirectAction:将用户重定向到一个已定义好的action
4.chain:将action和另外一个action链接起来
5.freemarker:呈现Freemarker模板
6.httpheader:返回一个已配置好的HTTP头信息响应
7.stream:向浏览器发送InputSream对象对下载的内容和图片非常有用
8.velocity:呈现Velocity模板
9.xslt :该XML可以通过XSL模板进行转换
10.plaintext:显示原始文件内容,例如文件源代码
八、Struts2标签
首先需要引用 <%@taglib prefix="s" uri="/struts-tags"%>
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:textarea> 文本域标签
8.<s:select></s:select> 下拉标签
9.<s:url></s:url> 声明一个url的路径
最常用的是:
判断<s:if></s:if>
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-65658-2.html
我们就不仅仅是丧失机遇的问题了
思路真的是太清晰了