01_Struts2概述及环境搭建

1.Struts2概述:
  1. Struts2是一个用来开发MVC应用程序的框架。
  2. Struts2提供了web应用程序开发过程中一些常见问题的解决方案;
  • 对用户输入的数据进行合法性验证
  • 统一的布局
  • 可扩展性
  • 国际化和本地化
  • 支持Ajax
  • 表单的重复提交
  • 文件的上传和下载
  • ... ...
2.Struts2相对于Struts1的优势:
  1. 体系结构更优秀
  • 类更少, 更高效:在Struts2中无需使用“ActionForm” 来封装请求参数
  • 扩展更容易:Struts2通过拦截器完成了框架的大部分工作,在Struts2中插入一个拦截器相当简单
更容易测试:即使不使用浏览器也能对基于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的智能提示:
  • 复制http://struts.apache.org/dtds/struts-2.5.dtd →proferences→xml→xml catalog→粘贴到key中→File System→struts-2.5.14.1\src\core\src\main\resources\struts-2.5.dtd
  • 注意:Key Type必须选择URI
  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.详解:

 

转载于:https://www.cnblogs.com/lxc-2017/p/8530328.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/390087.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高可用性、负载均衡的mysql集群解决方案

2019独角兽企业重金招聘Python工程师标准>>> 一、为什么需要mysql集群? 一个庞大的分布式系统的性能瓶颈中,最脆弱的就是连接。连接有两个,一个是客户端与后端的连接,另一个是后端与数据库的连接。简单如图下两个蓝色框…

剥开比原看代码09:通过dashboard创建密钥时,前端的数据是如何传到后端的?

2019独角兽企业重金招聘Python工程师标准>>> 作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 在前面一篇文章,我们粗略的研究…

004. ES6之函数的扩展

2019独角兽企业重金招聘Python工程师标准>>> 1. 函数参数的默认值 ES6 允许为函数的参数设置默认值, function log(x, y World) {console.log(x, y); }log(Hello) // Hello World log(Hello, China) // Hello China log(Hello, ) // Hello// 1. 参数变量…

一名3年工作经验的程序员应该具备的技能

本文转自:https://m.imooc.com/article/details?article_id7557 前言 因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章。这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发的,因此有一部…

多语言版希尔排序

2019独角兽企业重金招聘Python工程师标准>>> 简介 希尔排序(Shells Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L…

UML 中extend和include的区别

在UML用例图中有两种关系——包含和扩展,容易混淆,下面通过一张表来区别一下这两种关系。 转载于:https://www.cnblogs.com/yonyong/p/8555547.html

浏览器兼容CSS渐进增强 VS 优雅降级如何选择

由于低级浏览器不支持 CSS3,但是 CSS3 特效太优秀不忍放弃,所以在高级浏览器中使用CSS3,而在低级浏览器只保证最基本的功能。二者的目的都是关注不同浏览器下的不同体验,但是它们侧重点不同,所以导致了工作流程上的不同…

2018年,牛客网小白月赛5

第一次啊,补题,希望大佬批评。 题目按我补题顺序来的。 https://www.nowcoder.com/acm/contest/135#question H 题 最大公倍数 题意:给出两个数,求最大公倍数 欧几里德算法算出最大公约数k; 然后算出。最大公倍数即可 代码如下: …

爬虫笔记(十二)——浏览器伪装技术

为什么要进行浏览器伪装技术? 有一些网站为了避免爬虫的恶意访问,会设置一些反爬虫机制,对方服务器会对爬虫进行屏蔽。常见的饭爬虫机制主要有下面几个: 1. 通过分析用户请求的Headers信息进行反爬虫 2. 通过检测用户行为进行反…

《活出生命的意义》:人生有何意义?

在你一生的阅读体验中,如果能够有一本书,它的某个章节、某种思想、或者某句话能够触动你的内心,解决你的困惑,甚至能改变你的命运,那这样的一本书你一定要视如珍宝,经常翻阅,维克多弗兰克尔的《…

右键添加git-bash

主要: 右键如果没有git-bash,如何给右键手动添加 前面对右键存在git-bash但使用出现问题的解决,也想到如果右键都没有,该如何给右键添加了,于是接着记录下如何添加的过程: 情形: 手动给右键添加…

Weblogic的缓存

2019独角兽企业重金招聘Python工程师标准>>> 最近遇到一个关于weblogic缓存的问题。再把war包放入到weblogic指定目录启动以后,访问页面信息没有更新。最后发现是\weblogic\user_projects\domains\base_domain\servers\AdminServer下的文件没有清除&…

725. 分隔链表

725. 分隔链表 给你一个头结点为 head 的单链表和一个整数 k ,请你设计一个算法将链表分隔为 k 个连续的部分。 每部分的长度应该尽可能的相等:任意两部分的长度差距不能超过 1 。这可能会导致有些部分为 null 。 这 k 个部分应该按照在链表中出现的顺…

LAMP介绍-MySQL安装

2019独角兽企业重金招聘Python工程师标准>>> LAMP: linux-apache-mysql-php (安装方式有:rpm,源码,二进制免编译) linux-操作系统 apache-web服务软件(httpd) mysql-存储数据库 php…

java1

不知道为啥粘贴的图片是一堆编码。。。。 如何插入图片 博客后后台MarkDown编辑器上只有一个按钮,就是用来上传图片并自动插入MarkDown标记的,超级好用 (一)学习总结 1.在java中通过Scanner类完成控制台的输入,查阅JDK…

430. 扁平化多级双向链表

430. 扁平化多级双向链表 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构&#xff0c…

标记偏见_分析师的偏见

标记偏见“Beware of the HiPPO in the room” — The risks and dangers of top-down, intuition-based decision making are well known in the business world. Experimentation and data-based decision making become widely acknowledged as the right way to steer a bu…

用户体验数据分析 书单_如何使用数据改善用户体验设计

用户体验数据分析 书单In the current age of technology, if an entrepreneur comes up with a grand idea, chances are they’ll need a pretty sweet website to go along with it. And if they want their idea to really sell, they will also need a website that reall…

推荐11个实用的JavaScript库

2019独角兽企业重金招聘Python工程师标准>>> JavaScript 仍然是 2018 年最受欢迎和使用最为广泛的编程语言,因此 JavaScript 生态系统也会继续发展壮大。 然而,JavaScript 的标准库仍然继续保持“短小精悍”的身材。为了填补标准库功能方面的…

371. 两整数之和

371. 两整数之和 给你两个整数 a 和 b ,不使用 运算符 和 - ​​​​​​​,计算并返回两整数之和。 示例 1: 输入:a 1, b 2 输出:3 示例 2: 输入:a 2, b 3 输出:5 提示&a…