Struts2 学习笔记 1
来源:互联网 发布:与连接网络相关的单词 编辑:程序博客网 时间:2024/05/27 12:21
~Struts2~
开源框架openwork的基础上发布了一直到现在都非常流行的开源框架
struts2,struts2彻底解耦了servlet,不再使用servlet内核
而是开始使用更为先进的模块化可插拔设计 拦截器
struts2的改进:
M:model 支持数据库操作,支持ejb等技术,对spring
提供了完全支持,对用户操作数据库技术提供了非常大的帮助
V:提供插件式的方式,兼容市面上几乎所有的标签等,
即使存在新的技术,可以通过插件的形式集成在框架中,
不再像struts1一样只支持jsp动态技术,struts2自带的
ognl内核的struts2标签功能极为强大
C:不再需要继承任何类来完成业务逻辑,不再需要
专门设置一个类来封装表单项,内核不再是servlet基本与
servlet解耦,使用拦截器技术多实例多线程没有线程安全问题。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
commons-logging-1.0.4.jar 日志包
freemarker-2.3.8.jar 前端插件集合
ognl-2.6.11.jar ognl内核
用来支援struts2标签
struts2-core-2.0.14.jar struts2内核包
xwork-2.0.7.jar openwork内核
完。。。
一、首先大致了解下
2007年Apache项目基金下得opensymphony项目组在世界上另外一个开源框架openwork的基础上发布了一直到现在都非常流行的开源框架
struts2,struts2彻底解耦了servlet,不再使用servlet内核
而是开始使用更为先进的模块化可插拔设计 拦截器
struts2的改进:
M:model 支持数据库操作,支持ejb等技术,对spring
提供了完全支持,对用户操作数据库技术提供了非常大的帮助
V:提供插件式的方式,兼容市面上几乎所有的标签等,
即使存在新的技术,可以通过插件的形式集成在框架中,
不再像struts1一样只支持jsp动态技术,struts2自带的
ognl内核的struts2标签功能极为强大
C:不再需要继承任何类来完成业务逻辑,不再需要
专门设置一个类来封装表单项,内核不再是servlet基本与
servlet解耦,使用拦截器技术多实例多线程没有线程安全问题。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
commons-logging-1.0.4.jar 日志包
freemarker-2.3.8.jar 前端插件集合
ognl-2.6.11.jar ognl内核
用来支援struts2标签
struts2-core-2.0.14.jar struts2内核包
xwork-2.0.7.jar openwork内核
二、接下来新建一个struts2的web项目,在项目中讲解
1,首先新建web项目,借用eclipse或idea等软件很简单~~不多说
2,修改web.xml为
<filter> <filter-name>struts2</filter-name> <!-- 1:中央控制器 整个框架中最高级别的类, 它就类似一个软件公司的老总 struts2流程 A:打开tomcat时 当打开tomcat时struts2的中央控制器因为是 一个过滤器,则立刻加载,加载时读取 default.properties配置文件 此文件部署了整个框架中所有的重要参数, 在解析此文件之后无误时,接续解析如下三个文件 struts-default.xml, 此文件部署了整个框架中所有核心类,跳转结果集 以及struts2核心的拦截器 struts-plugin.xml, 此文件在使用第三方jar包时使用,一般不使用此文件 struts.xml 此文件由我们自己书写,这个文件部署了整个框架中 我们完成自己业务逻辑的Action实例,以及跳转 和拦截器调用等信息,类似struts1中的 struts-config.xml 此四个文件解析无误后,中央控制器开始等待 请求的提交 B:请求发送时 当请求发送,任意请求都可以被拦截,但是注意 被拦截之后,中央控制器会查询一个叫做ActionMapper的 类来查看是否能进行处理,默认情况下只能处理.action 后缀的请求,如果可以处理,则将请求转发给Action的代理类 ActionProxy,ActionProxy解析struts.xml文件如果存在 可以处理这个请求的Action则为这个Action创建一个专属的 工具类ActionInvocation,这个类专门为Action调用 拦截器以及跳转视图层 Action执行结束根据结果集跳转到视图层或者另外的Action Struts1:ActionServlet~~~》RequestProcessor ~~~》ActionForm~~~》Action Struts2:FilterDispatcher~~~》ActionMapper ~~~》ActionProxy~~~》ActionInvocation~~~》 Action --> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
3,新建类,MyAction.java,放在com.eatok.action包下
package com.etoak.action;public class MyAction {public String execute(){System.out.println("这里是业务逻辑!!!");return "suc";}}
4,在类路径下新建struts.xml文件,内容如下
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts><!-- name:包名,可以随便写extends:继承struts-default包也就是说我们这个文件是struts-default.xml文件的子文件--><package name="suibianxie" extends="struts-default"><!-- name:对应发送过来的请求class:我们处理业务逻辑的类的地址--><action name="helloworld" class="com.etoak.action.MyAction"><!-- name:对应业务逻辑类的返回的字符串type:结果集跳转方式默认就是dispatcher可以不写--><result name="suc" type="dispatcher">/suc.jsp</result></action></package></struts>
5,修改生成的index.jsp页面,没有的话自己新建在web-inf同级的目录下面
<body> <%-- servlet:servlet/类名 struts1:***.do struts2:***.action --%><a href="helloworld.action">你好世界</a> </body>
6,在web-inf同级目录下新建suc.jsp
<body> helloworld~~</body>
完。。。
0 0
- Struts2学习笔记1
- Struts2学习笔记1
- Struts2学习笔记(1)
- Struts2学习笔记(1)
- struts2学习笔记1
- struts2学习笔记1
- Struts2学习笔记1
- Struts2学习笔记(1)
- struts2学习笔记1
- struts2学习笔记1
- Struts2学习笔记1
- Struts2 学习笔记 1
- struts2学习1 笔记
- Struts2学习笔记(1)-Struts2概览
- Struts2学习笔记整理1
- Struts2的学习笔记(1)
- STRUTS2学习笔记(1)
- struts2学习笔记(1)
- linux sed替换命令s举例
- 负载均衡session会话保持方法
- linux下利用iptables配置路由器
- python下的selenium学习经验
- 串口通信基础
- Struts2 学习笔记 1
- 1065单身狗(25)
- Mybatis 框架文档 超详细笔记
- 使用HorizontalScrollView实现横向滑动广告栏
- eclipse 搭建Android 开发环境(ADT安装和sdk下载,选择)
- Java后端笔记(3)数据库访问
- strcpy和memecpy的区别
- 不引入第三变量交换两变量值的四种方法
- Glide加载网络图片学习网址