1.Struts2概述:
  1. Struts2是一个用来开发MVC应用程序的框架。
  2. Struts2提供了web应用程序开发过程中一些常见问题的解决方案;
    • 对用户输入的数据进行合法性验证
    • 统一的布局
    • 可扩展性
    • 国际化和本地化
    • 支持Ajax
    • 表单的重复提交
    • 文件的上传和下载
    • ... ...
2.Struts2相对于Struts1的优势:
  1. 体系结构更优秀
    • 类更少, 更高效:在Struts2中无需使用“ActionForm” 来封装请求参数
    • 扩展更容易:Struts2通过拦截器完成了框架的大部分工作,在Struts2中插入一个拦截器相当简单
  2. 更容易测试:即使不使用浏览器也能对基于Struts2的应用进行测试
3.Struts2的本质:
  1. Struts2严格来说并非是从Struts1升级而来,而是换了品牌标签的webwork
  2. 从Struts1到Struts2的升级:
 
Struts1使用ActionServlet作为控制器
Struts2使用过滤器作为控制器
Struts1中每一个HTML表单都对应一个ActionServlet实例
Struts2中HTML表单直接被映射到一个POJO
Struts1的验证逻辑编写在ActionServlet中
Struts2的验证逻辑编写在Action中
Struts1中Action类必须继承org.apache.struts.action.Action类
Struts2中任意一个POJO都可以是Action类
Struts1使用el和jstl
Struts2在页面中使用ognl来显示各种对象模型
4.Struts2环境搭建:
  1. 添加jar包:将jar包添加到应用程序的webContent下的WEB-INF/lib目录下
  2. 在当前应用程序的web.xml文件中配置Struts2
  3. 添加Struts2配置文件Struts2.xml到src目录的根目录下
  4. 关联Struts2的智能提示:
  1. 注意:在使用struts2.3以上版本时,如果启动服务器后出现404 NOT FOUND错误则删除掉lib目录下的struts2-rest-plugin-2.5.14.1.jar
5.使用strut2的优点:
  1. Filter的使用:不需要直接在Filter中编写代码,而是通过struts2的配置文件实现
  2. 取值:只需要使用${属性名}:${requestScope.product.productId }→${productId }
  3. 使用步骤:
    • 在index.jsp页面跳转到/WEB-INF/pages/input.jsp
    • 在input.jsp页面中跳转到Product类中的save方法,save返回一个"details",并通过Struts2的反射跳转到/WEB-INF/pages/details.jsp
    • struts.xml配置文件:
6.详解:
  

01_Struts2概述及环境搭建的更多相关文章

  1. 写给前端同学的C++入门教程(一):概述和环境搭建

    说明:本人是前端er,因为最近对 UE4(一个游戏开发引擎)产生了兴趣,而这个引擎源开发游戏时需要用到 C++ ,所以就开始入坑 C++ 了.现将自己学习 C++ 的笔记整理并分享出来,以便一些想入门 ...

  2. MongoDB副本集学习(一):概述和环境搭建

    MongoDB副本集概述 以下图片摘自MongoDB官方文档:http://docs.mongodb.org/manual/core/replication-introduction/ Primary ...

  3. 接口自动化:HttpClient + TestNG + Java(一) - 接口测试概述+自动化环境搭建

    1.1 接口测试简介 1.1.1 什么是接口测试 开始学习接口自动化测试之前,我们先要来了解什么是接口,以及什么是接口测试. 我们都知道,测试从级别上划分可以分为 组件测试 集成测试 系统测试 验收测 ...

  4. Bootstrap(1) 概述与环境搭建

    视频教程:http://study.163.com/course/courseMain.htm?courseId=1017002 源码和笔记:http://pan.baidu.com/s/1c06Ri ...

  5. Linux入门第一天——基本概述与环境搭建

     一.Linux简介 1.历史 Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux是一套免费使用和自由传播的类Unix操 ...

  6. 001_Java概述与环境搭建

    Java由来: SUN公司开发,95年推出,96年推出JDK1.0版本 09年被Oracle(甲骨文)收购 詹姆斯·高斯林被称作“Java之父” JavaSE:Java Standard Editoi ...

  7. 01-Hadoop概述及基础环境搭建

    1 hadoop概述 1.1 为什么会有大数据处理 传统模式已经满足不了大数据的增长 1)存储问题 传统数据库:存储亿级别的数据,需要高性能的服务器:并且解决不了本质问题:只能存结构化数据 大数据存储 ...

  8. JavaMaven【一、概述&环境搭建】

    课程概述 JavaMaven[一.概述&环境搭建] JavaMaven[二.目录结构&HelloMaven] JavaMaven[三.常用指令] JavaMaven[四.坐标& ...

  9. 基于WDF的PCI/PCIe接口卡Windows驱动程序(1)-WDF概述及开发环境搭建

    原文出处:http://www.cnblogs.com/jacklu/p/4619110.html 本科毕业设计是这方面的工作,所以想开几篇博客来介绍使用WDF开发PCI/PCIe接口卡的驱动程序方法 ...

随机推荐

  1. [洛谷P1197/BZOJ1015][JSOI2008]星球大战Starwar - 并查集,离线,联通块

    Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这些星球通过 ...

  2. Python第三方库的安装方法总结

    源码安装 很多第三方库都是开源的,几乎都可以在github 或者 pypi上找到源码.找到源码格式大概都是 zip . tar.zip. tar.bz2格式的压缩包.解压这些包,进入解压好的文件夹,通 ...

  3. SpringBoot(六):springboot热部署

    在j2ee项目开发中,热部署插件是JRebel.JRebel的使用为开发人员带来了极大的帮助,且挺高了开发便捷.而在SpringBoot开发生态环境中,SpringBoot热部署常用插件是:sprin ...

  4. POJ-1860 Currency Exchange---Bellman-Ford判断正环

    题目链接: https://vjudge.net/problem/POJ-1860 题目大意: 我们的城市有几个货币兑换点.让我们假设每一个点都只能兑换专门的两种货币.可以有几个点,专门从事相同货币兑 ...

  5. Spring MVC的核心流程(步骤)

    具体步骤: 1.客户端发送请求先要经过前端控制器,请求被Spring 前端控制器DispatcherServlet获取,如详细图第一步:DispatcherServlet对请求URL进行解析(比如我们 ...

  6. CF 472 div1 D. Contact ATC

    #include <algorithm> #include <cmath> #include <cstdio> #include <cstring> # ...

  7. java集合详解

    1.java集合框架的层次结构 Collection接口: Set接口: HashSet具体类 LinkedHashSet具体类 TreeSet具体类 List接口:   ArrayList具体类 L ...

  8. C#之Winform跨线程访问控件

    C#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,当一个控件的InvokeRequired属性值为真时,说明有一个创建它以外的线程想访问它.此时它将会在内部调用ne ...

  9. No mapping found for HTTP request with URI [/user/login.do] in DispatcherServlet with name 'dispatcher'错误

    1.警告的相关信息 七月 24, 2017 3:53:04 下午 org.springframework.web.servlet.DispatcherServlet noHandlerFound警告: ...

  10. c++类与对象(1)——构造,复制构造函数

    CPP的类与对象: 当我们定义一个基本类型变量时,方法如下: int p; #定义一个int类型变量 bool b; #定义一个bool类型变量 float c ; #定义一个float类型变量 显然 ...