01_Struts2概述及环境搭建
2024-10-16 20:09:22
1.Struts2概述:
- Struts2是一个用来开发MVC应用程序的框架。
- Struts2提供了web应用程序开发过程中一些常见问题的解决方案;
- 对用户输入的数据进行合法性验证
- 统一的布局
- 可扩展性
- 国际化和本地化
- 支持Ajax
- 表单的重复提交
- 文件的上传和下载
- ... ...
2.Struts2相对于Struts1的优势:
- 体系结构更优秀
- 类更少, 更高效:在Struts2中无需使用“ActionForm” 来封装请求参数
- 扩展更容易:Struts2通过拦截器完成了框架的大部分工作,在Struts2中插入一个拦截器相当简单
- 更容易测试:即使不使用浏览器也能对基于Struts2的应用进行测试
3.Struts2的本质:
- Struts2严格来说并非是从Struts1升级而来,而是换了品牌标签的webwork
- 从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环境搭建:
- 添加jar包:将jar包添加到应用程序的webContent下的WEB-INF/lib目录下
- 在当前应用程序的web.xml文件中配置Struts2
- 添加Struts2配置文件Struts2.xml到src目录的根目录下
- 关联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
- 注意:在使用struts2.3以上版本时,如果启动服务器后出现404 NOT FOUND错误则删除掉lib目录下的struts2-rest-plugin-2.5.14.1.jar
5.使用strut2的优点:
- Filter的使用:不需要直接在Filter中编写代码,而是通过struts2的配置文件实现
- 取值:只需要使用${属性名}:${requestScope.product.productId }→${productId }
- 使用步骤:
- 在index.jsp页面跳转到/WEB-INF/pages/input.jsp
- 在input.jsp页面中跳转到Product类中的save方法,save返回一个"details",并通过Struts2的反射跳转到/WEB-INF/pages/details.jsp
- struts.xml配置文件:
6.详解:
最新文章
- SynchronousQueue类
- hihoCoder太阁最新面经算法竞赛18
- [JAVA] 基于TCP的起重机运行模拟器
- ma
- ZSDR100 跑原材料MRP
- POC
- 方法:查询MongoDB数据库中最新一条数据(JAVA)
- TCP/IP三次握手
- linux下为用户添加sudo命令功能
- Android app去应用市场评分功能
- HDU 1796 容斥原理 How many integers can you find
- centOS IP能ping通但是域名ping不通
- 结合Socket实现DDoS攻击
- Android开发学习之路--MAC下Android Studio开发环境搭建
- Mybatis 系列9
- 关于flutter插件地图的使用flutter_map
- Java成神路上之设计模式系列教程之一
- TransmittableThreadLocal 解决 线程池线程复用 无法复制 InheritableThreadLocal 的问题.
- 关于微信分享的一些心得之recommend.js(直接复制就行)
- WEBBASE篇: 第一篇, HTML知识1
热门文章
- MySql中的varchar长度究竟是字节还是字符
- python github
- Java中如何实现j并发更新数据库同一条数据
- POJ-3069 Saruman's Army---区间选点
- ZOJ-1655 Transport Goods---dijkstra变形&;&;最长路
- POJ-1700 Crossing River---过河问题(贪心)
- jquery mouseout mouseover 多次执行
- [机器学习Lesson4]多元线性回归
- [LeetCode] Minimum Absolute Difference in BST 二叉搜索树的最小绝对差
- [LeetCode] Longest Palindromic Subsequence 最长回文子序列