idea快速搭建struts2框架

news2025/8/3 10:38:00

一.用maven创建一个javaweb项目:
在这里插入图片描述
pom.xml内容:

<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<!-- $Id: pom.xml 642118 2008-03-28 08:04:16Z reinhard $ -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <packaging>war</packaging>

  <name>struts2demo</name>
  <groupId>org.example</groupId>
  <artifactId>struts2demo</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <maven.compiler.source>7</maven.compiler.source>
    <maven.compiler.target>7</maven.compiler.target>
  </properties>
  <build>
  <plugins>
  <!--tomcat 的插件 (相当于在maven内部放置了个tomcat服务器)-->
  <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
  </plugin>
  </plugins>
  </build>

  <dependencies>
  <!-- struts2-core -->
  <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.3.33</version>
  </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>


</project>

二.配置web.xml(过滤器),是struts2的入口

<!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>

三.创建核心配置文件struts.xml
在这里插入图片描述
四.右键目录resources—>new—>XML Configuration File—>Struts Config,命名为struts,生成struts.xml文件
五.例子:hello struts2
访问路径:http://localhost:8080/test
struts.xml文件:

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

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">

<struts>
    <!-- struts2是基于package管理每一个action配置
        package用来管理众多的action配置
        name:包名,随便起
        extends:继承  默认写成Struts-default
    -->
    <package name="default" extends="struts-default" >
        <!--管理TestAction
            action:作用:用来配置项目中的一个个action
                name:当前action访问的路径
                class:当前管理action的全类名
        -->
        <action name="test" class="com.slp.action.HelloAction">
            <result name="OK">index.jsp</result>
        </action>
    </package>
</struts>



java下面建一个action类:
在这里插入图片描述

public class HelloAction implements Action {
    //execute()专门处理请求的方法
    public String execute() throws Exception {
        System.out.println("hello struts2~~~struts构建完成");
//        return SUCCESS;  //返回的结果可以是:Action接口内部常量
        return "OK";   //返回的结果也可以是自定义的字符串
    }
    @Override
    public Object getValue(String s) {
        return null;
    }
    @Override
    public void putValue(String s, Object o) {

    }

    @Override
    public void setEnabled(boolean b) {

    }

    @Override
    public boolean isEnabled() {
        return false;
    }

    @Override
    public void addPropertyChangeListener(PropertyChangeListener propertyChangeListener) {

    }

    @Override
    public void removePropertyChangeListener(PropertyChangeListener propertyChangeListener) {

    }

    @Override
    public void actionPerformed(ActionEvent actionEvent) {

    }

}

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>index</title>
</head>
<body>
<h1>
    <a href="HelloWorld.jsp">点击前往测试页面</a>
</h1>
</body>
</html>

HelloWorld.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>hello</title>
</head>
<body>
<div align="center">
    <h1>HelloStruts2</h1>
</div>
</body>
</html>

参考例子:
【Struts2】一_idea快速搭建struts2框架
【IDEA版】简单快速上手撸Struts框架

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

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

相关文章

SpringCloud之入门

目录 一、简介 微服务架构介绍 微服务架构的常见问题 二、微服务架构拆分代码实现 微服务环境搭建 案列准备 微服务调用 实现步骤 创建一个父工程 创建成功spcloud-shop的pom依赖 创建基础模块 基础模块 shop-common pom依赖 创建用户微服务 shop-user 源码 shop-use…

纵目科技冲刺科创板:拟募资20亿 小米君联同创是股东

雷递网 雷建平 11月24日纵目科技&#xff08;上海&#xff09;股份有限公司&#xff08;简称&#xff1a;“纵目科技”&#xff09;日前递交招股书&#xff0c;准备在科创板上市。纵目科技计划募资20亿元&#xff0c;其中&#xff0c;12.92亿元用于上海研发中心建设项目&#x…

HTML5期末大作业 基于HTML+CSS+JavaScript学校官网首页

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 校园班级网页设计 | 我的班级网页 | 我的学校 | 校园社团 | 校园运动会 | 等网站的设计与制作 | HTML期末大学生网页设计作业 HTML&#xff1a;结构 …

基于FME实现地铁路径规划

在建设智慧城市的背景下&#xff0c;智慧交通、智慧出行等建设在近几年日常生产、生活中占比逐渐加大。 路径规划是智慧交通、智慧出行建设过程当中较重要的专题分类。不管是百度、高德等公共服务平台&#xff0c;亦或是地方政府部门都在大力推动导航发展。路径规划作为数据导…

如何实现企业全链路协同,实现企业业绩增长

随着全球经济环境、贸易格局、产业结构的不断变化&#xff0c;持续冲击着各大企业供应链。在链路长、流程复杂的供应链体系中&#xff0c;由于“牛鞭效应”&#xff08;供应链上的一种需求变异放大现象&#xff09;的影响&#xff0c;需求单位、各级采购中心、供应商之间的信息…

【目标检测】英雄联盟能用YOLOv5实时目标检测了 支持onnx推理

目录 一、项目介绍 二、项目结构 三、准备数据 1.数据标注 2.数据转换格式 四、执行训练 1.anchors文件 2.标签文件 3.预训练模型 4.训练数据 5.修改配置 6.执行训练 五、执行预测 1.检测图片 2.检测视频 3.heatmap 五、转换onnx 1.导出onnx文件 2.检测图片…

Linux中如何检测系统是否被入侵

Linux中如何检测系统是否被入侵&#xff0c;检查系统的异常文件 查看敏感目录&#xff0c;如/tmp目录下的文件&#xff0c;同时注意隐藏文件夹&#xff0c;以.为名的文件夹具有隐藏属性 > ls -al查找1天以内被访问过的文件 > find /opt -iname "*" -atime 1…

刘强东对京东零售动刀:提醒打工仔,要立新功不吃老本

雷递网 雷建平 11月24日在宣布下调京东高级管理人员的现金薪酬后&#xff0c;京东创始人刘强东又强势对京东零售管理人员进行动刀。此次调整中&#xff0c;时尚家居事业群负责人冯轶&#xff08;Carol&#xff09;、大商超全渠道事业群刘利振、平台业务中心负责人林琛成为此次调…

云原生大数据平台零信任网络安全实践技术稿

近年来星环科技围绕着数据安全做了大量的工作&#xff0c;形成了一个数据安全的产品体系。本文主要给大家介绍下星环数据云基于零信任安全理念在网络安全上的思考与实践。 首先对星环数据云产品的安全需求进行梳理和分类&#xff0c;大致可分为四类&#xff1a; ​ l 数据应用…

微软黑科技如何加速游戏开发,读这篇就够了

2022迈入尾声&#xff0c;游戏产业这场凛冽的寒风比想象中更为持久与刺骨。 一边是投入的缩减&#xff0c;一边是玩家攀升的要求。“既要又要还要”成为游戏制作人的高频句型。在紧预算与精制作的矛盾面前&#xff0c;游戏产业工业化的必要性再次被验证。如何把更多的精力投注…

通过PreparedStatement预防SQL注入

通过PreparedStatement预防SQL注入 简介&#xff1a;本文只讲PreparedStatement预防SQL注入的写法&#xff0c;大家学会就好。 推荐学习路线&#xff1a;JDBC数据库的连接->Connection&#xff08;数据库连接对象&#xff09;->Statement->ResultSet->通过Prepare…

【vim】系统剪切板、vim寄存器之间的复制粘贴操作命令?系统剪切板中的内容复制粘贴到命令行?vim文本中复制粘贴到命令行

一、系统剪切板和文本内容的复制粘贴 1.1 从系统剪切板复制粘贴到文本中 需要操作3次&#xff1a; 分别是英文双引号、一个加号或梅花号&#xff0c;最后是一个p 也即"p 或者直接使用组合键【Shift insert】 1.2 从文本复制粘贴到系统剪切板 也需要操作3次&#xff…

poi导入数据工具类,直接复制使用,有详细注释

poi导入工具类&#xff0c;直接复制使用&#xff0c;有详细的注释前言一、引入依赖二、封装的工具类以及注解类直接copy使用首先是工具类无需做操作然后是封装的两个注解类&#xff0c;也是直接复制使用测试工具类功能测试实体类Controller层调用执行结果如果ifNull 设置为true…

Mongodb认证入库并进行多版本缓存使用

作者:yangjunlin 使用过mongodb数据库的小伙伴们都知道&#xff0c;mongodb存储超图缓存是不需要密码的&#xff0c;只需要设置一个用户即可&#xff0c;但部分小伙伴们因为安全问题想用加密模式访问&#xff0c;但是不清楚如何创建&#xff0c;并且想用mongodb库进行多版本缓存…

GitHub 下载量过百万,阿里 P8 秘密分享的「亿级并发系统设计」

随着互联网的不断发展&#xff0c;CPU 硬件的核心数也在不断进步&#xff0c;并发编程越来越普及&#xff0c;但是并发编程并不像其他业务那样直接了当。在编写并发程序时&#xff0c;我们常常都会出现各种漏洞&#xff0c;这些问题往往都突然出现&#xff0c;然后又迅速消失&a…

centos7.9安装MySQL-学习

一、下载mysql5.7安装包 1.下载 二、安装 1、检查系统是否安装过mysql //检查系统中有无安装过mysql rpm -qa|grep mysql 2、查询所有mysql 对应的文件夹&#xff0c;全部删除 whereis mysql find / -name mysql 3、检查mysql 用户组是否存在 cat /etc/group | grep mysql …

Steam项目推进 (一) ——项目情况简述

一、前言 之前跟一个策划朋友一起做过一个小项目Demo&#xff0c;然后中止了大半年&#xff0c;现在想继续把这个项目推进下去。又怕自制力不够&#xff0c;所以建立一个栏目来记录这个项目的推进情况&#xff0c;记忆在项目中学习到的东西。 二、目前的项目情况 1、项目定位…

R-CNN,Fast R-CNN详解

R-CNN R-CNN可以说是利用深度学习进行目标检测的开山之作。作者Ross Girshick多次在PASCAL VOC的目标检测竞赛中折桂&#xff0c;曾在2010年带领团队获得终身成就奖。 R-CNN流程 R-CNN流程可以分为4个步骤&#xff1a; 1.一张图像生成1k~2k个候选区域(使用Selective Search方…

【算法基础】P问题、NP问题、NP-Hard问题、NP-Complete问题

P问题、NP问题、NP-Hard问题、NP-Complete问题前提1. 时间复杂度&#xff1a;2. 约化(Reducibility)P问题NP问题NPHard问题NP-Complete问题其它&#xff1a;前提 1. 时间复杂度&#xff1a; 2. 约化(Reducibility) 如果能找到一个变化法则&#xff0c;对任意一个A程序的输入&…

【华为OD机试真题 python】 转骰子【2022 Q4 | 200分】

■ 题目描述 【转骰子】 骰子是一个立方体,每个面一个数字,初始为左1,右2,前3(观察者方向),后4,上5,下6,用123456表示这个状态,放置在平面上, 可以向左翻转(用L表示向左翻转1次), 可以向右翻转(用R表示向右翻转1次), 可以向前翻转(用F表示向前翻转1次), 可以…