(一)Struts2 基础
一、Struts简介
1.1 历史

- 虽然Struts 2号称是一个全新的框架,但这仅仅是相对Struts 1而言。Struts 2与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度上来讲,Strut2没有继承Struts 1的血统,而是继承了WebWork的血统。或者说,WebWork衍生出了Struts 2,而不是Struts 1衍生了Struts 2。因为Struts 2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证;而且吸收了Struts 1和WebWork两者的优势,因此,是一个非常值得期待的框架。
1.2 struts与servlet的区别
1.2.1 区别一:

- servlet是单例,线程安全,每次请求都是由第一个请求到来后建立的那个servlet招呼,所以servlet一般没有成员变量;struts2是通过一个servlet负责招待每个到来的线程,并为这个线程向action工厂要一个全新的action,并把它们俩放进一个叫Threadlocal的容器中,直到线程断掉,这些东西才被gc这个收垃圾的收走。所以struts2是多线程的。
1.2.2 区别二

- servlet中的JSTL和EL对字符串和集合的操作支持很弱,而struts中的OGNL对集合的操作非常强大, 但是OGNL表达式的运行性能没有JSTL和EL高。
1.2.2 区别三

1.3 体系结构

体系结构:1、Web浏览器请求一个资源。
2、过滤器Dispatcher查找方法,确定适当的Action。
3、拦截器自动对请求应用通用功能,如验证和文件上传操作。
4、Action的execute方法通常用来存储和重新获得信息。
5、结果被返回到浏览器。

1.4 基于servlet的MVC设计模式与基于Struts框架的设计模式

二、初步使用Struts框架
2.1 下载
2.2 Struts框架的使用初步:
A:Apache下载struts.2.1.8.rar包。
B:进入apps目录,解压空工程。
C:将struts2的基本jar包拷到工程的lib目录中。

D:配置web.xml,加载struts2的过滤器
we.xml:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
E:加载struts的配置文件struts.xml到src目录。
- 在空工程的apps\WEB-INF\classes包里找到struts.xml,并复制这个xml文件到工程的src目录下。

F:编写Struts中的Action类。并且类中必须有返回值为String的execute方法。
ActionFirst.java:
package com;
public class ActionFirst {
/**
* 必须要有String的execute方法
* @return
*/
public String execute(){
System.out.println("将执行execute方法");
return "index";
}
}
- exeucte是用于执行用户请求(Request)和响应用户(Response)的操作。
用于接收GET与POST的请求。
G:将Action类配置到struts.xml中。
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" extends="struts-default">
<action name="xx" class="com.ActionFirst">
<result name="index">/index.jsp</result>
</action>
</package>
</struts>
- 解析:当url为/xx 时,会执行com.ActionFirst,并调用该Action中的execute方法,该方法返回一个String值为index,再与《result》中的name属性相匹配,匹配到就跳转到/index.jsp页面。
H:页面访问Action,执行exceute方法,根据execute方法的返回值到Action到result中
进行名称的匹配,从而请求转发或者重定向到页面。
结果:

(一)Struts2 基础的更多相关文章
- Struts2入门1 Struts2基础知识
Struts2入门1 Struts2基础知识 20131130 代码下载: 链接: http://pan.baidu.com/s/11mYG1 密码: aua5 前言: 之前学习了Spring和Hib ...
- Struts2基础学习2
Struts2基础学习2 项目结构,测试页面与实体类 <%@ page language="java" contentType="text/html; charse ...
- Struts2基础入门
Struts2基础入门 创建一个web工程 0)导包并且创建一个核心配置文件 <?xml version="1.0" encoding="UTF-8"?& ...
- Struts2基础学习总结
引用自:http://www.cnblogs.com/jbelial/archive/2012/05/10/2486886.html Struts 2是在WebWork2基础发展而来的. 注意:str ...
- 经典MVC框架技术-struts2基础知识
Struts2框架简介 struts2框架是在struts1和webwork技术的基础上,进行合并的全新框架,struts2以Webwork为核心,采用拦截器来处理用户的请求,这样的设计使得业务逻辑控 ...
- Struts2框架学习第三章——Struts2基础
本章要点 — Struts 1框架的基本知识 — 使用Struts 1框架开发Web应用 — WebWork框架的基本知识 — 使用WebWork框架开发Web应用 — 在Eclipse中整合To ...
- struts2 基础
框架(frameWork):某一种应用的半成品 struts2: 表现层 处理与页面进行交互的相关功能 hibernate: 持久层 负责业务逻辑数据的持久化 spring: 业务层 负责复杂的业 ...
- struts2 基础学习
Struts 2是在WebWork2基础发展而来的. 注意:struts 2和struts 1在代码风格上几乎不一样. Struts 2 相比Struts 1的优点: 1.在软件设计上Struts ...
- 2. Struts2 基础
1. Struts2简介 Struts2是一个WEB端MVC框架.作为比较早的MVC 框架之一,Struts2在使用中还是比较多的.虽然个人感受没有SpringMVC还那么的好用 Struts2 官网 ...
随机推荐
- GDPR全文翻译(二)
第三节 数据保护影响评估以及事先咨询 第35条 数据保护影响评估 1.鉴于一种数据处理方式,尤其是使用新技术进行数据处理,统筹考虑处理过程的性质.范围.内容和目的,(不难得知)这很可能对自然人权利和自 ...
- VS Code 使用技巧[转载]
原文:VS Code 快捷键(VS Code Shortcuts.pdf) 常用 General 按 Press 功能 Function Ctrl + Shift + P,F1 显示命令面板 Show ...
- hystrix流程图收藏
最近在看张开涛的亿级流量的书,学习了一个新的防雪崩的功能hystrix,在学习这个功能的过程中,看了一些网站也温习了一些知识,例如double_check locking功能,还有cache的击穿作为 ...
- 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_02-用户认证-认证服务查询数据库-需求分析&搭建环境
1.2 认证服务查询数据库 1.2.1 需求分析 认证服务根据数据库中的用户信息去校验用户的身份,即校验账号和密码是否匹配. 认证服务不直接连接数据库,而是通过用户中心服务去查询用户中心数据库. 完整 ...
- 详解VMware 虚拟机中添加新硬盘的方法
一.VMware新增磁盘的设置步骤 (建议:在设置虚拟的时候,不要运行虚拟机的系统,不然添加了新的虚拟磁盘则要重启虚拟机) 1.选择“VM”----“设置”并打开,将光标定位在“硬盘(SCSI)”这一 ...
- 123457123457#1#-----com.threeapp.circlerunner01----儿童旋转跑酷游戏
com.threeapp.circlerunner01----儿童旋转跑酷游戏
- C#关于DateTime得到的当前时间的格式和用法
DateTime.Now.ToShortTimeString() DateTime dt = DateTime.Now; dt.ToString();//2005-11-5 13:21:25 dt.T ...
- 02.提交bug
写代码最烦的也就是修复bug了,虽然这个避无可避…………………… a. bug的严重级别设置 1级:影响主要流程 ->在bug 的影响下,主流程 测试无法向下进行 2级:影响核心功能 -> ...
- JsonSchema用法
JsonSchema用法 简介 JSON Schema是基于JSON格式,用于定义JSON数据结构以及校验JSON数据内容.JSON Schema官网地址:http://json-schema.org ...
- 零基础python之列表的简单介绍
你点击关注,就分你小鱼干 一.概念:列表,由一系列按特定顺序排列的元素组成. 在 python 中,用 [ ] 方括号来表示列表,并用逗号来分割其中的元素. 二.访问列表因素 列表是有序集合,如要访问 ...