【Struts2框架】idea快速搭建struts2框架

news2025/7/21 9:51:50

文章目录

      • 什么是SSH框架?
      • Struts2框架
        • 1、struts2的环境搭建
          • `1.1 创建web项目(maven),导入struts2核心jar包`
          • `1.2 配置web.xml(过滤器),是struts2的入口,先进入`
          • `1.3 创建核心配置文件struts.xml`
        • 2、创建项目
          • ▶创建HelloAction.java:
          • ▶配置web.xml文件
          • ▶创建一个hello.jsp页面
          • ▶测试
          • ▶总结:

什么是SSH框架?

SSH是 struts+spring+hibernate 的一个集成框架,是16年之前较为流行的一种Web应用程序开源框架。区别于 Secure Shell 。

集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。

Struts2框架

初代Struts1已经分化成了两个框架:第一个是在传统的Struts1的基础上,融合了另外的一个优秀的Web框架WebWork的Struts2。Struts 2虽然是在Struts1的基础上发展起来的,但是实质上是以WebWork为核心的。Struts2为传统的Struts1注入了WebWork的先进的设计理念,统一了Struts1和WebWork两个框架。

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。

1、struts2的环境搭建

在这里插入图片描述

1.1 创建web项目(maven),导入struts2核心jar包
<!-- struts2-core -->
<dependency>
  <groupId>org.apache.struts</groupId>
  <artifactId>struts2-core</artifactId>
  <version>2.3.33</version>
</dependency>
1.2 配置web.xml(过滤器),是struts2的入口,先进入
  • 拦截器作用域小于过滤器 :拦截器只拦截action,拦截器是Struts2的核心功能;拦截器是在struts.xml配置文件中进行配置的,自定义拦截器后,要将Struts2默认拦截器在struts.xml中重新配置。
  • 过滤器属于Servlet,配置在web.xml中,过滤器可以作用于一切页面,控制器等等元素。
  • 实际上都可以叫 拦截器或者过滤器 ,只不过一个拦截web请求,一个拦截Action方法(拦截器拦截前Action已经实例化了!!!)调用。
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>

  <!-- struts2的过滤器 -->
  <filter>
    <filter-name>struts2</filter-name>  <!-- struts.xml -->
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>  <!-- /*:所有的页面都先经过过滤器 -->
  </filter-mapping>

  <!-- welcome-file-list是一个配置在web.xml中的一个欢迎页,
  用于当用户在url中输入项目名称或者输入web容器url(如http://localhost:8080/)时直接跳转的页面 -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

</web-app>
1.3 创建核心配置文件struts.xml

注意:核心配置文件只能叫struts.xml,与web.xml中定义的过滤器struts2相对应

【File-->Settings--->Plugins--->搜索struts2下载插件,才能创建有关struts2的配置】
在这里插入图片描述

两种方式:
1. 右键目录resources—>new—>XML Configuration File—>Struts Config,命名为struts,生成struts.xml文件
在这里插入图片描述
2. 直接创建xml文件,命名为struts,生成struts.xml文件,复制struts2的头部命名空间

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
	<!--相关配置-->
</struts>

2、创建项目

▶创建HelloAction.java:

在java目录下创建action包(com.wxy.action这是我的包路径,你们随意),创建一个HelloAction类实现Action接口,此接口中有一些常用的响应。

  • 看一下Action接口内部的一些参数:在这里插入图片描述
    HelloAction.java类
public class ActionTest implements Action {
	//execute()专门处理请求的方法
    public String execute() throws Exception {
        System.out.println("hello struts2~~~struts构建完成");
        return SUCCESS;  //返回的结果可以是:Action接口内部常量
        //return "OK";   //返回的结果也可以是自定义的字符串
    }
}
▶配置web.xml文件
<!--所有的action都放在package中,必须继承struts-default-->
<!--struts-default中有默认的拦截器配置,能处理参数等信息-->
<package name="default" extends="struts-default">
	<!--name对应的是请求的地址--http://localhost:8080/hello;
	class是处理请求的类,完全限定名-->
	<action name="hello" class="com.wxy.action.HelloAction">
		<!--success是Action类中返回的字符串,根据不同字符串返回不同的页面-->
		<result name="success">hello.jsp</result>
		<!--<result name="OK">hello.jsp</result>-->
	</action>
</package>

这里报红,是没有影响的:
在这里插入图片描述

▶创建一个hello.jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Hello</title>
</head>
<body>
	<h2>struts2</h2>
</body>
</html>
▶测试

启动Tomcat,当控制台输出了HelloAction类中的方法,hello输出了页面内容,即一个简单struts2算是搭建完成。

访问路径:http://localhost:8080/hello
在这里插入图片描述
在这里插入图片描述

▶总结:

1、导入核心jar包
2、在web.xml中配置入口
3、写请求处理HelloAction类,execute()专门处理请求的方法,返回字符串
4、在struts.xml中配置返回页面,配置在< package >标签中:

  • 标签的name属性代表路径;class属性代表执行的请求
  • 标签的 name属性表示返回的字符串,与请求类返回一致;标签内是返回页面。

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

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

相关文章

STM32 Bootloader开发记录 3 固件签名校验

STM32 Bootloader开发记录 3 固件签名校验 文章目录STM32 Bootloader开发记录 3 固件签名校验1. 移植mbedtls1.1 编译mbedtls1.2 修复rsa_sign的一个bug1.3 测试RSA1.3.1 **RSA加解密&#xff1a;**1.3.2 **RSA签名验签&#xff1a;**1.3.3 **生成秘钥对**1.4 移植到STM321.4.1…

NFV中:DPDK与SR-IOV应用场景及性能对比

DPDK与SR-IOV两者目前主要用于提高IDC&#xff08;数据中心&#xff09;中的网络数据包的加速。但是在NFV&#xff08;网络功能虚拟化&#xff09;场景下DPDK与SR-IOV各自的使用场景是怎样的&#xff1f;以及各自的优缺点&#xff1f; 本文主要通过从以下几点来阐述这个问题&a…

视觉SLAM十四讲(高翔版本),ch4章节部分笔记

目标&#xff1a;理解slam的框架以及它的理论知识。供以后自己查阅。 这一章主要非常重要&#xff0c;也是理解后续优化的基础&#xff0c;它是将旋转矩阵和平移向量&#xff0c;转化为李代数的形式进行优化&#xff0c;因为它有很多好处。好处如下&#xff1a; 意思就是采用…

Linux硬盘垃圾清理心得

最近有台系统盘才10G的服务器咔咔报警&#xff0c;一共才10G的空间&#xff0c;运维还设置了80%的报警阈值&#xff0c;实在难顶。为了清理硬盘里的垃圾&#xff0c;敲了不少命令&#xff0c;怕以后忘了&#xff0c;记录一下。 首先输入df -h查看一下硬盘空间占用情况&#xf…

呼叫中心中间件(mod_cti基于FreeSWITCH)-通话记录(CDR)接口

支持把FreeSWITCH的通话记录写入mysql,sqlserver,oracle等数据库&#xff0c;也可以写入redis的list&#xff0c;或者PUBLISH到redis的channel,方便业务程序实时获取通话记录。 使用说明 如果一个通话是A呼叫B&#xff0c;那么就有2个通话记录&#xff0c;一个叫aleg,一个叫b…

Vue3 - 全局指令(详细教程)

前言 咱们在真实项目开发中&#xff0c;其实有很多指令都是通用的。我们绝对不可能去每个页面都定义一次&#xff0c;这样不仅写起来困难&#xff0c;维护起来更是困难&#xff0c;你想一下&#xff0c;假设稍微变点逻辑&#xff0c;你就需要翻阅好几个文件去改。 其实用法和局…

家用吸尘器的总体结构设计

目 录 摘 要 i Abstract ii 1 引言 1 2 家用吸尘器的历史及发展 2 2.1 家用吸尘器的历史 2 2.2 业界的发展情况 3 3 家用吸尘器的分类 5 3.1 卧式&#xff08;Canister&#xff09; 5 3.2 立式&#xff08;Upright&#xff09; 5 3.3 手持式 &#xff08;Handy&#xff09; 6 3…

ON1 NoNoise AI 2023:AI智能摄影降噪工具

ON1 NoNoise AI 2023中文版是一款强大的AI智能摄影降噪工具&#xff01;使用 AI 驱动的 NoNoise AI 快速去除噪点并获得照片中最清晰的细节。 更快地获得绝对最佳结果&#xff01; ON1 NoNoise 比其他领先的图像去噪产品快十倍&#xff0c;结果会让您大吃一惊&#xff01; 基于…

HI3516DV300 图像输入

HI3516DV300 图像输入 易百纳的一个开发板&#xff0c;以及GC2053的摄像头。 硬件 海思 海思sensor接口如下&#xff0c;用的是差分信号&#xff0c;共4对数据线&#xff08;或者说4条lane&#xff09;&#xff0c;两对差分时钟。 连接器 海思核心板和扩展板之间通过板件连…

小啊呜产品读书笔记001:《邱岳的产品手记-06》11讲 如何借鉴灵感 12讲 产品案例分析:LabRdr的设计实验

小啊呜产品读书笔记001&#xff1a;《邱岳的产品手记-06》11讲 如何借鉴灵感 & 12讲 产品案例分析&#xff1a;LabRdr的设计实验一、今日阅读计划二、泛读&知识摘录1、11讲 如何借鉴灵感&#xff1f;2、12讲 产品案例分析&#xff1a;LabRdr的设计实验三、头脑风暴叮嘟…

【计算机毕业设计】外卖点餐源码

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 摘 要 民以食为天&#xff0c;外卖点餐系统餐饮业一直是与人们日常生活息息相关的产业。传统的电话外卖点餐或者到店消费已经不能适应市场发展的需求。随着网络的迅速崛起&#xff0c;互联网日益成为提供信息的最佳…

电话机器人详解,电销机器人获客的正确姿势是什么?

电话机器人详解&#xff0c;电销机器人获客的正确姿势是什么&#xff1f; 相信很多没接触过电话机器人的人都会好奇。 首先是预设Q&A问答主流程 通过关键词辅助指导&#xff0c;终端在与客户互动时&#xff0c;会智能地获取相应的关键词库&#xff0c;逐一回答客户的问题…

ISACA证书维持| 内附QA

Q如何维持证书 A证书的维持主要由两部分组成&#xff0c;即维持费以及CPE&#xff08;继续职业教育&#xff09;学时。ISACA会在每个日历年的第三季度以电子邮件及印刷版的方式向所有持证人员发送次年费用清单通知。年度维护费支付可在 https://www.isaca.org/renewals 上在线…

完全背包问题的解决方法______闫氏 DP 分析法

完全背包问题的解决方法&#xff1a; 闫氏 DP\ DPDP 分析法: 通过集合划分&#xff0c;我们可以得到第 i\ ii 个物品有两种状态&#xff1a;  1.选 1−T\ 1 - T1−T 个&#xff0c;最优解为前 i−1\ i− 1i−1 个物品的所有选择中&#xff0c;还能选取当前 k\ kk 个第i\ ii 个…

模式识别与机器学习 第一章:绪论

一、基础概念 样本: 所研究对象的单个个体、实例。样本集: 若干样本的集合。类或类别: 在所有样本上定义的一个子集&#xff0c;处于同一类的样本具有相似的性质&#xff0c;即具有相同的模式。特征: 用于表征样本的观测&#xff0c;也称属性。通常是数值表示的某些量化特征&a…

基于帧间差分法的视频目标检测研究-含Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、帧间差分算法原理✳️ 三、视频目标检测系统✳️ 四、参考文献✳️ 五、Matlab代码获取✳️ 一、引言 随着科技的发展、社会的进步、人民生活水平的提高&#xff0c;团体和个人的安防意识都在不断增强&#xff0c;视频监控系统也就得到了…

深入浅出 C++ 11 右值引用

彻底搞清楚&#xff1a;右值引用/移动语义/拷贝省略/通用引用/完美转发 —— 以最短的篇幅&#xff0c;介绍常见误解&#xff08;什么时候要用 move&#xff1f;什么时候不能 move&#xff1f;为什么 move 失败&#xff1f;&#xff09;和基础知识&#xff08;为什么右值引用变…

魔性洗脑神曲掀起模仿热潮,品牌为何热衷“打歌”?

【潮汐商业评论/ 原创】 抖音、快手、B站等社交媒介是品牌推广绕不开的阵地&#xff0c;围绕这些平台&#xff0c;一些品牌在“打歌”路上越走越远——通过几何级增长的播放量&#xff0c;使品牌定制曲迅速蹿红&#xff0c;成为“神曲”。这些定制曲仿佛自带魔力&#xff0c;不…

甘露糖-聚乙二醇-叠氮,mannose-PEG-N3,叠氮-PEG-甘露糖

甘露糖-聚乙二醇-叠氮&#xff0c;mannose-PEG-N3&#xff0c;叠氮-PEG-甘露糖 叠氮化合物是一类含有三个氮相连结构的化合物&#xff0c;一般用RN3表示。叠氮化合物是电子传递系统的抑制剂&#xff0c;能与细胞色素形成配位化合物&#xff0c;阻止细胞色素氧化酶氧化型a3组分…

【附源码】Python计算机毕业设计双笙映画

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…