struts2 简介

struts2的前身可以说是framework。strut1作为当时很流行的框架,但是有很多的不足之处,framework出生后,它带来了很好的框架,但是很多人已经习惯了strut1.所以问津framework的人不多。后来framework被apache收购,改名为struts2.这就是struts2的由来

struts2比struts1的优点之处

struts2的核心是基于xwork的,struts2使用了ognl表达式语言,a.用于更灵活的访问对象中的各种属性。b.在jsp页面中访问session或request内容时,提供了更加简便的方式,而且让我们使用标签的方式去遍历或迭代。减少了jsp中java代码的数量

struts2理论知识:

framework是基于http协议的web框架(因为它是基于请求响应(request-response)模式的应用)

1.framework的逻辑结构:

(1)控制器(controller):相当于中央调度器,它的所有处理都由他来完成,(j2ee用servlet事先控制器)

(2)业务逻辑层:提供基础组件供开发人员完成真正的业务实现

(3)数据逻辑层(Data logic):没有提供,struts2只是提供了前端到服务器端的交换过程,也就是基于web端的交换过程

struts1的视图层就是jsp。

struts2由jsp taglib 和 servlet组成。基于struts2框架的web设计模式基本上符合jsp model2(jsp model2是MVC设计模式的一种变化)的设计标准。

这时不得不说下jsp的三种模式:1jsp:html+java代码

2jsp model1:html+java代码+javabean

3jsp model2:html+java代码+javabean+servlet

struts2是建立在jsp和servlet之上的,对他们做了良好的封装,用于web服务器层端

最后说一下struts2的工作流程

结合图

首先我们知道form表单中action值能够被struts接受,若action中值没有后缀名,则此默认为.action

form表单提交,向struts2提交请求,首先被struts的过滤器接受到,然后再去struts.xml文件中寻找对应名字为***的action。再由action中对应的class去处理提交来的请求,在class文件中将成员变量生成对应的getter和setter方法。用于得到页面上面的值和将值response到页面上。然后去执行处理数据的方法(默认的是execute()方法,也可以在astruts.xml的对应action中设置method方法)此方法将返回一个字符串给struts.xml中对应的action。然后在action中寻找result的名字为返回字符串的值,然后返回到对应的页面

其实 其实,说白了就是匹配,找到对应的信息,servlet由tomcat管辖,而struts是由过滤器管辖,所以过滤器相当于controller(控制器)。其中set和get方法是通过反射机制动态生成的,而不是真正存在,在setter执行完之后,将信息放到request作用域中。

过滤器是用来接管我们的请求的、

通过查看过滤器文件,得知,过滤器实现了dofilter、destory方法

struts2 学习日记1的更多相关文章

  1. Linux学习日记-使用EF6 Code First(四)

    一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是  请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...

  2. [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. android学习日记05--Activity间的跳转Intent实现

    Activity间的跳转 Android中的Activity就是Android应用与用户的接口,所以了解Activity间的跳转还是必要的.在 Android 中,不同的 Activity 实例可能运 ...

  5. android学习日记03--常用控件Dialog

    常用控件 9.Dialog 我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框 对话框,要创建对话框之前首先要创建Bui ...

  6. android学习日记03--常用控件checkbox/radiobutton

    常用控件3.checkbox 复选框,确定是否勾选,点击一下勾选,点击第二下取消,当有一系列备选项时适合用checkbox控件,方便用户提交数据. 贴上例子Activity的java代码 packag ...

  7. android学习日记03--常用控件button/imagebutton

    常用控件 控件是对数据和方法的封装.控件可以有自己的属性和方法.属性是控件数据的简单访问者.方法则是控件的一些简单而可见的功能.所有控件都是继承View类 介绍android原生提供几种常用的控件bu ...

  8. Zend Framework学习日记(2)--HelloWorld篇(转)

    Zend Framework学习日记(2)--HelloWorld篇 这一篇主要演示如何用zf命令行工具建立一个基于Zend Framework框架的工程,也是我初学Zend Framework的小练 ...

  9. Zend Framework学习日记(1)--环境搭建篇(转)

    Zend Framework学习日记(1)--环境搭建篇 (1)开发工具 Zend Framework框架:http://framework.zend.com/download/latest 包含2个 ...

随机推荐

  1. Linux下快速删除输错的密码技巧(快速删除输入的命令)

    1.[Esc]+[退格键(Backspace)] 2.[Ctrl]+[U] 说明:以上两个快捷键都会删除全部输错的命令或密码. 参考: http://blog.csdn.net/u013895662/ ...

  2. Jenkins构建完成后通过SVN Publisher Plugin上传文件到指定的SVN(教程收集)

    SVN Publisher Plugin:https://wiki.jenkins-ci.org/display/JENKINS/SVN+Publisher 构建完成后的文件,比如Maven打的war ...

  3. 邁向IT專家成功之路的三十則鐵律 鐵律二十一:IT人用才之道-穿透

    在以道德為基礎的企業主管之人,其最根本的能力除了須要有洞悉事物的敏捷思維之外,眼光還必要有像水柱般一樣的穿山引石之能,如此不僅能夠為企業找到適才之人,更能為企業的永續經營奠定有如泰山般的基石.只可惜大 ...

  4. android 获取GPS定位

    AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xm ...

  5. Go -- FIFO类(缓存淘汰算法)(转)

    1 FIFO 1.1. 原理 按照“先进先出(First In,First Out)”的原理淘汰数据. 1.2. 实现 FIFO队列,具体实现如下: 1. 新访问的数据插入FIFO队列尾部,数据在FI ...

  6. PS 如何制作柔和的边框

    柔和边框制作 1 新建一个图层,按填充为黑色.(填充当前图层为前景色 A/T+Delete 背景色 CTRL+Delete),不透明度设为60%.混合模式为正片叠底,   2 选择椭圆选择一片区域(也 ...

  7. Item 51:写new和delete时请遵循惯例

    Item 51: Adhere to convention when writing new and delete. Item 50介绍了怎样自己定义new和delete但没有解释你必须遵循的惯例. ...

  8. 向odoo贡献中文翻译

    建议通过 osc-git向odoo贡献中文翻译     osc-git 是指'开源中国'的git平台. 网址是 http://git.oschina.net/     注册osc-git 账号省略. ...

  9. 【Java编程】Java在dos窗体编译与运行的批处理

    近期在Java编程过程中,常常使用到dos窗体对程序进行编译与执行. 可是不方便之处在于每次都要输入命令进入将要编译的程序的文件夹(事实上也有简单的方法,在文章末尾给出).于是编写了一个配置文件,能够 ...

  10. Win8 使用经验之飞鸽传书

    参考资料: http://jingyan.baidu.com/article/c1a3101eb52cd8de656deba6.html Win8的UAC关闭不生效?彻底关闭Win8的UAC? 1. ...