Struts2开发笔记一
来源:互联网 发布:淘宝账号注销后支付宝 编辑:程序博客网 时间:2024/06/05 15:29
Struts2概述
1 框架概念: 实现了部分功能的半成品,让开发更轻松有序,简化企业开发2 JAVA开发中的三大框架 Stutus2 Hibernate Spring3 Struts2 基于MVC设计模式 本质上相当于一个servlet,Filter Struts2作为控制器(Controller)来建立模型与视图的数据交互 在 struts 1和WebWork的技术基础上进行了合并,以WebWork为核心4 发展历史 Struts1是一个高度成熟的框架,市场占有率曾超过20%,JSP/Servlet耦合非常紧密,导致了一些严重的问题,并且Struts1代码严重依赖于Struts1 API,属于侵入性框架。 Struts 2虽然是在Struts1的基础上发展起来的, 但是实质上是以WebWork为核心的。 Struts2为传统的Struts1注入了WebWork的先进的设计理念, 统一了Struts1和WebWork两个框架。5 技术改进 在Action的实现方面 Struts1要求必须统一扩展自Action类,而Struts2中可以是一个POJO(Plain Ordernary Java Object)。 线程模型方面 Struts1一个Action实例处理所有请求,Struts 2的Action是一个请求对应一个实例,没有现成安全问题 Servlet依赖方面 Struts2不再依赖Servlet API,利于测试
Struts2的实现分析
xx图片
Struts2 快速入门 重点掌握
下载Struts2框架
http://struts.apache.org/download.cgiStruts struts2目录结构apps 该文件夹包含了基于struts2 的示例应用,这些示例应用对于学习者是非常有用的docs 该文件夹下包含了struts2 相关文档,包括struts2 快速入门、struts2的文档以及API文档等lib 该文件夹下包含了Struts2框架和核心类库,以及struts2第三方插件类库src 该文件夹下包含了Struts2框架的全部源代码
配置jar包到当前应用程序下
导入asm-3.3.jar 操作java字节码的类库asm-commons-3.3.jar 提供了基于事件的表现形式asm-tree-3.3.jar 提供了基于对象的表现形式commons-fileupload-1.3.2.jar 文件上传commons-io-2.2.jar io包commons-lang3-3.2.jar 封装了java lang基本到操作freemarker-2.3.22.jar FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具javassist-3.11.0.GA.jar 分析、编辑和创建Java字节码的类库。log4j-api-2.3.jar 输出loglog4j-core-2.3.jar 输出logognl-3.0.19.jar 是支持ognl表达式struts2-core-2.3.32.jar struts2的核心jar包,不可缺少的xwork-core-2.3.32.jar xwork的核心包,由于Struts2是由xwork的延伸 有些类依然关联着 xwork的类
配置web.xml 根据版本配置–直接copy
<?xml version="1.0" encoding="UTF-8"?><web-app id="starter" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <!-- Filters --> <!-- START SNIPPET: filter --> <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><!-- Welcome file lists --><welcome-file-list> <welcome-file>index.jsp</welcome-file></welcome-file-list>
配置struts.xml
写一个Action类
public class HelloWorldAction extends ActionSupport { @Override public String execute() { System.out.println("被访问了。。。"); return "success"; }}
dtd关联
搜索xml,XML catalog
C:\学习\JavaEE第三个月讲课资料\day01\资料\struts-2.3.32\src\core\src\main\resources\2.3.dtd
src下配置struts.xml
普通配置<!-- 包名随便定义 actio result 指定对应结果的界面 --><!-- 名称空间跟路径有关系 默认为/ --><!-- method指定特定方法名称 --><!-- action name 指定地址栏访问路径 --><!-- action class 要访问的action的全路径名称 --><package name="haha" extends="struts-default"> <action name="hello" class="com.example.struts2.HelloWorldAction"> <result name="success"> /struts2_helloworld.jsp </result> </action></package>
Strust2中Action的三种写法
第一种 直接写类
public class FirstAction {public String execute() { System.out.println("我是第一种类型的Action"); return "success";}}
第二种 写类继承自Action
public class SecondAction implements Action{@Overridepublic String execute() { System.out.println("我是第二种类型的Action"); return "success";}}
第三种 写类继承自ActionSupport 重点掌握
public class ThirdAction extends ActionSupport {@Overridepublic String execute() throws Exception { System.out.println("我是第三中类型的Action"); return SUCCESS;}}
常用ServletAPI
ActionContext
获取Action的环境,可以通过actionContext获取请求参数,session等信息
实现 ServletRequestAware ServletContextAware ServletResponseAware 接口获取Servlet中请求 响应 和 ServletContext信息
ServletActionContext 重点掌握
HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); ServletContext servletContext = ServletActionContext.getServletContext(); PageContext pageContext = ServletActionContext.getPageContext();
结果类型
SUCCESS = "success"; // 数据处理成功 (成功页面)NONE = "none"; // 页面不跳转 return null; 效果一样ERROR = "error"; // 数据处理发送错误 (错误页面)INPUT = "input"; // 用户输入数据有误,通常用于表单数据校验 (输入页面)LOGIN = "login"; // 主要权限认证 (登陆页面)<result name="error"> /default.jsp</result>
案例一:登陆案例
用户名——————密码——————登陆
乱码终极解决方式
找到conf中的server.xml设置服务器编码方式 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/>
属性封装的三种方式
- 第一种方式 在Action类中直接写属性,封装set方法 属性驱动
- 第二种方式 在Action类中写javaBean,比如User user;在表单中提交参数时以user.username user.password形式进行命名 属性驱动
- 第三种方式 模型驱动方式实现 ModelDriven接口
界面跳转类型配置 重点掌握
dispatcher :Action 转发给 JSP 默认 chain :Action调用另一个Action (同一次请求) hehe 是一个Action的名字 <result type="chain"> hehe </result> redirect : Action重定向到 JSP <result type="redirect"> /default.jsp </result> redirectAction : Action 重定向到Action <result type="redirectAction"> hehe </result>
通配符配置
增删改查<action name="user_*" class="com.example.action.SecondAction" method="{1}">
案例 图书管理系统
![](http://img.blog.csdn.net/20170711082333634?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjk4NTY4NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
阅读全文
0 0
- Struts2开发笔记一
- Struts2 + Hibernate开发笔记(一)
- Struts2 + Hibernate开发笔记(一)
- Struts2学习笔记(一):struts2开发环境配置
- struts2学习笔记(一)
- Struts2 学习笔记一
- struts2学习笔记(一)
- struts2学习笔记一
- struts2学习笔记(一)
- Struts2学习笔记(一)
- Struts2笔记(一)
- struts2学习笔记一
- Struts2学习笔记(一)
- Struts2学习笔记一
- struts2学习笔记一
- struts2笔记(一)
- Struts2学习笔记一
- struts2学习笔记(一)
- 工薪层每年存款翻一番,2年后自己做老板
- 斜率优化DP——BZOJ1010/Luogu3195 [HNOI2008]玩具装箱TOY
- 面向切面编程(一)
- 单点更新 区间查询最值 线段树 杭电hdu1754
- 博弈搜索练习-BFS&DFS
- Struts2开发笔记一
- [codevs1222]信与信封问题(匈牙利)
- 声明!!!!!!!!!!!!!!!!!!!
- JS(初学)
- Kotlin-类型安全的建设者
- asp.net web api实例
- 智融集团CTO齐鹏详析:AI如何处理金融领域的弱特征数据?丨CCF-GAIR 2017
- MVC框架路由模块的解析
- 史上最简单的 MySQL 教程(二十五)「数据的高级操作 之 查询(下)」