Struts2基础1--创建一个Struts2 Web应用程序

news/2024/9/21 22:58:41/文章来源:https://www.cnblogs.com/Freeland98/p/18353482

  Struts2不仅仅是Struts1 的升级版本,更是一个全新的Struts架构,是当前较为普及和成熟的基于MVC设计模式的Web应用程序框架,并在RIA(Rich Internet Applications)Web应用程序开发中得到了广泛应用,成为最好的Web框架之一。本文将通过详细的步骤来说明如何下载获取相关资源、安装设置开发环境、创建Java Web应用程序以及如何配置引入Struts2框架技术。

1.开发环境安装配置

  在网上搜索下载Eclipse、JDK、Tomcat、Struts等软件,也可以通过百度网盘在以下地址下载所需要的全部资源:https://pan.baidu.com/s/1A0S0yC3dI37P5E-ImuHUEg?pwd=ddu6(提取码:ddu6) 。本文中用到的Eclipse版本信息为:Eclipse Java EE IDE for Web Developers.Version: Photon Release (4.8.0).Build id: 20180619-1200;JDK:jdk1.8.0_25;Tomcat:apache-tomcat-9.0.41;Struts:struts-2.5.33-min-lib。

  (1)安装JDK:从百度网盘下载的JDK只需要按照提示步骤安装即可,不需要配置环境变量;

  (2)安装Tomcat:从百度网盘下载的Tomcat Web服务器也仅需要按照提示步骤安装即可;

  (3)安装Eclipse:把从百度网盘下载的Eclipse软件包解压缩到目标磁盘,在解压缩后的文件夹中找到汉化包,并按照说明文件的提示步骤复制汉化包到指定位置,就能汉化Eclipse IDE,然后执行Eclipse启动程序就能进入开发界面。

2 为Eclipse IDE添加Tomcat Web服务器

  (1)在IDE菜单中依次选择《Windows窗口》--《首选项》--在左侧导航栏选择《Server》项--《Runtime Environments》,然后在右侧《Add》按钮,如图1。

图1 添加Tomcat Web服务器 

  2)在《New Server Runtime Environment》对话框中,如图2,选择《Apache》列表中的《Apache Tomcat v9.0》选项,然后点击《下一步》按钮。

2 《New Server Runtime Environment》对话框

  (3)在确定Tomcat安装位置对话框中,通过《Browse》按钮选择自己安装Tomcat服务器的位置,如图3,然后点击《完成》按钮。

3 确定Tomcat安装位置对话框

  (4)最后在《首选项》对话框中点击《应用并关闭》按钮,如图4

4 《首选项》对话框

3.创建一个Java Web应用程序

  (1)打开创建Web应用程序向导:运行Eclipse IDE,依次选择菜单项《文件》-->《新建》-->《Dynamic Web Project》,如图5,或者《文件》-->《新建》-->《其他》,在打开的对话框中找到《Web》选项并打开,如图6,然后选择《Dynamic Web Project》选项,再点击《下一步》按钮打开创建Web应用程序向导。

 

 

5 打开创建Web应用程序向导 

 6 打开创建Web应用程序向导

  (2)创建名为myStruts的Web应用程序:在《New Dynamic Web Project》对话框中找到《Project Name》标签并在后面的文本框中输入Web应用程序的名字,这里是myStruts。找到《Target runtime》标签,在他下面打开下拉选择框选择《Apache Tomcate v9.0》,如图7。设置完成后点击《下一步》按钮。

7 Web应用程序基本信息设置对话框 

  (3)在Web应用程序配置对话框中(如图4)直接点击《下一步》按钮。

8 Web应用程序配置对话框

  (4)Web应用程序模型设置对话框(如图9)中勾选《Generate web.xml deployment descriptor》选项,然后点击《完成》按钮完成一个Java Web应用程序的创建工作。

 

9 Web应用程序模型设置对话框

  (5)创建index.jsp文件,文件代码:

<!DOCTYPE html>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

<html>

  <head>

    <meta charset="UTF-8">

    <title>Basic Struts 2 Application</title>

  </head>

  <body>

    <h1>Welcome To Struts 2!</h1>

  </body>

</html>

  运行Web应用结果为:

10 Web应用运行结果

4. 添加 Struts 2 的jar文件到项目中

  (1)复制Struts文件到项目中:将下载struts-2.5.33-min-lib.zip文件解压缩,然后复制所有文件到Web项目的WebContent/WEB-INF/lib文件夹下,如图11。

11 导入Struts文件后程序结构图

  (2)添加Struts文件到引用库:在项目导航来选择省Struts所有文件,然后右键点击,在弹出的快捷菜单中依次选择《构建路径》-->《添加至构建路径》,如图12。Eclipse添加到引用库的作用是让项目能够访问和使用外部的类库或JAR包,‌从而扩展项目的功能。‌在软件开发过程中,‌经常需要使用到第三方库或者自己编写的类库,‌这些库通常以JAR包的形式存在。‌通过将这些JAR包添加到Eclipse的引用库中,‌项目就可以直接引用这些库中的类和方法,‌而无需重新编写或实现相应的功能。‌这样做的好处是提高了开发效率,‌减少了重复劳动,‌同时也便于管理和维护项目依赖的类库。

12 添加Struts文件到引用库

5. 在web.xml文件中添加配置struts2 的过滤器

  在项目中打开web.xml文件建下面加粗倾斜的内容添加进来。Struts过滤器的配置内容不同版本不尽相同,可以在官网下载例子程序参考修改。在struts-2.5.33版本中将prepare和execute过滤器分别进行配置。将URL模式配置成<url-pattern>/*</url-pattern>意味着struts2的过滤器将会被应用到这个web 应用的所有URL上。

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

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">

  <display-name>myStruts</display-name>

  <filter>

  <filter-name>struts-prepare</filter-name>

  <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareFilter</filter-class>

</filter>

<filter>

  <filter-name>struts-execute</filter-name>

  <filter-class>org.apache.struts2.dispatcher.filter.StrutsExecuteFilter</filter-class>

</filter>

<filter-mapping>

  <filter-name>struts-prepare</filter-name>

  <url-pattern>/*</url-pattern>

</filter-mapping>

<filter-mapping>

  <filter-name>struts-execute</filter-name>

  <url-pattern>/*</url-pattern>

</filter-mapping>

  <welcome-file-list>

      <welcome-file>index.html</welcome-file>

      <welcome-file>index.htm</welcome-file>

      <welcome-file>index.jsp</welcome-file>

      <welcome-file>default.html</welcome-file>

      <welcome-file>default.htm</welcome-file>

      <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

</web-app>

6. 创建和配置struts.xml文件

  struts.xml文件是Struts 2框架的核心配置文件,‌具有重要的作用。‌它主要负责管理应用中的Action映射以及该Action包含的Result定义。‌struts.xml文件存放于Web应用的类加载路径下,‌具体位置为WEB-INF/classes路径下。‌该文件主要用来配置Action和HTTP请求的对应关系,‌以及配置逻辑视图和物理视图资源的对应关系。‌除了这些基本功能,‌struts.xml还有一些额外的功能,‌如配置常量、‌导入其他配置文件等。该文件的配置也可以参考Struts提供的例子程序中‌struts.xml文件。在项目的src文件夹下创建struts.xml文件,如图13,最简单的配置文件内容如下:

<?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>
<constant name="struts.devMode" value="true" />
<package name="myStruts" extends="struts-default">
  <action name="index">
    <result>/index.jsp</result>
  </action>
</package>
</struts>‌

13 创建完成struts.xml文件后项目的结构图 

7. 测试Strusts2配置效果

  在上面的struts.xml文件中将名称为“index”的action项目的响应结果“result”配置为/index.jsp,这个简单的配置告诉struts2框架,如果访问的URL是http://localhost:8080/myStruts/index.action或是http://localhost:8080/myStruts/index则转发到index.jsp视图响应。

  (1)设置Eclipse IDE测试用浏览器:在IDE菜单中依次选择《窗口》-->《Web Browser》-->《Chrome》即可完成设置,如图14。

14 设置Eclipse IDE测试用浏览器

  (2启动Tomcat服务器:首先打开Server试图,在IDE菜单栏中依次选择《窗口》-->《显示视图》-->Servers》,然后在窗口的右下部分找到绿色箭头按钮,点击即可启动Tomcat服务器,如图15。

图15 启动Tomcat服务器

  (3)在Google Chrome浏览器中测试:当我们在浏览器中输入网址http://localhost:8080/myStruts/index访问测试时,其相应结果如图16:

16 Struts 2测试运行结果

 8.常见问题1

  在新创建的jsp文件开始位置出现如下警告信息:“The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path”,出现该警告信息是因为在创建Java Web应用程序的时候没有选择设置运行时的环境为Tomcat,或者是还没有把安装和设置好的Tomcat Web服务器添加到Eclipse IDE中,解决该问题需要完成以下设置;

  (1)用鼠标右键点击新建的Web应用程序,在弹出的快捷菜单中依次选择《构建路径》-->《配置构建路径》,如下图17。

 

图17 配置构建路径 

  (2Web应用程序属性对话框中《构建路径》,然后在右侧项目中点击《添加库》按钮,如图18。

图18 添加库 

  (3)在添加库对话框中,选择《Server Runtime》选项,然后点击《下一步》按钮,如图19。

图19 选择Sever Runtime

  (4继续选择《Apache Tomcat v9.0》选项,然后点击《完成》按钮,如图20,接着在返回Web应用属性对话框中点击《应用并关闭》按钮即可完成设置。

 

图20 选择《Apache Tomcat v9.0》选项

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

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

相关文章

STM32学习记录(九):RTC

RTC框图 实时时钟(Real-time clock: RTC)是一个独立的计时器。RTC提供一组连续运行的计数器,可以与合适的软件一起使用,以提供时钟日历功能。可以写入计数器值以设置系统的当前时间/日期。可以选择以下三种作为RTC时钟源:HSE时钟进行128分频 LSE振荡器时钟 LSI振荡器时钟有关…

炒鸡好用的Markdown语法

简介 Markdown是一种轻量级标记语言,它最初由John Gruber和Aaron Swartz在2004年共同创建,可以通过简单、纯文本的语法,快速构建格式化、排版精美的文档。其可与HTML混编,可导出为HTML、PDF、Word等格式的文件 Markdown可以让作者更多地关注内容本身而非格式排版。同样的内…

Arweave区块链私有化部署

Arweave区块链私有化部署Arweave区块链主打数据永久存储,即保存在区块链的数据永久存在、不可篡改。公链主网络arweave.N.1在2024年8月11日累计产生了148万个区块(见下截图所示),区块还在不断产生,大约2分钟产生一个区块。Arweave区块链可以在Ubuntu 22.04LTS或Ubuntu 24.04…

多线程复习总结

1基本概念 1什么是进程什么是线程 进程:是程序执行一次的过程,他是动态的概念,是资源分配的基本单位。一个应用程序(1个进程是一个软件)。 线程:一个进程可以有多个线程,线程是cpu调度的单位,一个进程中的执行场景/执行单元。 对于java程序来说,当在DOS命令窗口中输入…

kubernetes-POD的基本原理

目录什么是POD?POD有以下特点:为什么使用POD作为最小单元,而不是container为什么允许一个POD里有多个容器POD中如何管理多个容器POD的yaml格式定义配置文件说明如何使用PodPOD的持久性和终止Pause我们首先在节点上运行一个pause容器然后再运行一个nginx容器,nginx将为localh…

【投资认知】- 2024Q1的英伟达NVIDIA

来自关注的Twitter博主@ZeevyInvesting 💡 Investing visuals | 📜 One-pager analysis | 📈 Tech portfolio updates | 🥊 Business Battles来源:https://twitter.com/ZeevyInvesting/status/1801691822705512947名词解释CAGR:复合年增长率(Compound Annual Grow…

【1.0版】【MYSQL安全】sql注入系列:基于报错的 SQL 盲注

主题 sql注入:基于报错的 SQL 盲注一、Floor报错注入1.1 floor 函数1.2 rand函数 1.3 count(*) 1.4 floor函数实际利用二、extractvalue函数三、updatexml函数:同extractvalue本来网页是不显示信息的,但是我们可以构造 payload 让信息通过错误提示回显出来一、Floor报错注入…

CISC和RISC

CISC的特点RISC的特点CISC和RISC的比较如何分辨CISC和RISCCISC的指令不定长,RISC的指令都是定长的 RISC中只有Load\Store类指令可以访问主存

P1502 窗口的星星 题解

题目传送门。 思路 扫描线 扫描线 首先,将题目中给出的条件和问题进行转化: 首先先不考虑边框上的点不算在内的限制,考虑一个点可以对那些矩形产生贡献。 只考虑矩形的右上角,容易发现,每个星星的亮度只对右上角在以星星为左下角的长为 \(W\),高为 \(H\)的矩形有贡献。 如…

bugbountyhunter scope BARKER:第7滴血 存储型 XSS 编码测试和多处引用 报告

注册后,来到UI Display Name处直接点击更新之后,发现反射值的存在尝试一些编码,发现没有任何转换。编码测试更简单,语义一把梭:比如各种华丽花哨的编码到落地并没有被还原成 <>"等语义,此处没有漏洞 https://github.com/swisskyrepo/PayloadsAllTheThings/tre…

centos7中安装了centos-release-scl后,之前的yum源变为不可用 解决方案

centos7中安装了centos-release-scl后,之前的yum源变为不可用 解决方案 1. 前言 今天遇到了一个奇奇怪怪的事情,我自己在自己的服务器(centos7)上安装了centos-release-scl后,之前运行正常的yum命令竟然变得不可用。 2. 场景重现 执行下面这条命令后,再次使用yum报错。 yum …