今天开始学习Struts2了,Struts2使用了MVC的设计模式,使Java web应用层次更分明,是非常流行的一种框架,下面我记录在Java web应用中添加Struts2支持的几个步骤:

一、在MyEclipse中新建普通的Java web应用

这里我们给工程取名为Struts2App,项目结构如上图所示

二、在lib文件夹中加入Struts2依赖的jar包

其实MyEclipse可以自动给我们创建的web应用添加Struts支持,但是这里我不打算使用MyEclipse的功能,而是自己手动将Struts2加入到工程里,导入的jar包主要有如下几个:

上面的jar包可以从http://www.apache.org/的官网上获取

三、编写web.xml文件

默认情况下,新建的Java web项目中的web.xml文件是这样子的:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>

web.xml文件在项目的/WebRoot/WEB-INF路径下,我们需要编辑该文件,在文件中加入过滤器,通过配置过滤器,使url请求交给Struts来处理,编辑好的web.xml文件代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><filter><filter-name>struts2</filter-name><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>
</web-app>

我们在web.xml文件中加入了filter和filter-mapping标签,这样就设置了struts2的过滤器,上面的url-pattern指定了过滤的url的类型为/*,即过滤所有类型的url

四、编写struts.xml文件

struts.xml文件是Struts2框架中的核心文件,所有被过滤的请求都会通过struts.xml文件来处理,我们在项目的src目录下新建xml文件,命名为struts.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd" ><struts><package name="example" extends="struts-default"> <action name="login" class="com.test.action.LoginAction"><result name="ok">/ok.jsp</result></action></package>
</struts>

上面的配置文件里,指定了package和action、result等标签,package类似于Java工程里的包,不过上面的包继承了struts-default包,然后在包中有一个action,名字为login,对应的class为com.test.action.LoginAction,这里的意思就是,名为login的请求,会交给com.test.action.LoginAction的类来处理,这个LoginAction类,是一个普通的Java类,不继承任何类,不实现任何接口,其代码如下:

package com.test.action;public class LoginAction {public String execute() throws Exception{return "ok";}
}

可以看到,LoginAction类中的代码,就一个方法:execute(),该方法返回值为String类型,这里的返回值对应了上面的struts.xml文件中的result标签,即当LoginAction返回"ok"时,会在struts.xml文件中找到ok对应的JSP页面即ok.jsp,然后请求会转发给ok.jsp

五、编写ok.jsp页面

六、测试运行

我们将项目部署到tomcat,在浏览器中输入:http://localhost:8080/Struts2App/login,访问后出现的即为ok.jsp页面中的内容

Java web项目添加Struts2支持的步骤相关推荐

  1. maven Web项目添加数据源支持,包括Oracle、Mysql

    pom.xml 支持jkbc: <dependency><groupId>org.springframework.boot</groupId><artifac ...

  2. Java Web项目是怎么跑起来的?

    良心公众号 关注不迷路 01 简单Java程序的启动过程 在之前的HelloWorld是怎么跑起来的?一文中,我们一起学习了IDE执行简单的Java程序的过程.可以总结为如下三个步骤: 首先,将程序通 ...

  3. Java Web项目中缺少Java EE 6 Libraries怎么添加

    Java Web项目中缺少Java EE 6 Libraries怎么添加 具体步骤如下: 1.项目名称上点击鼠标右键,选择"Build Path-->Configure Build P ...

  4. java web项目部署到tomcat服务器(一般步骤和自己所犯错误的总结)————高手忽略

    最近由于项目需求,需要将java web项目部署到本地tomcat上(版本为8.0)进行测试.作为一个非计算机专业的菜鸟,之前的工作都是写后台逻辑代码,没接触过web项目部署.部署的时候不知道如何下手 ...

  5. jsp项目在idea需要导入什么依赖_idea中的java web项目(添加jar包介绍)和java maven web项目目录结构...

    java web项目 web项目下web根目录名称是可以更改的 idea中新建java web项目,默认src为Sources Root,当然也可以手动改,在Sources Root下右键只能新建Pa ...

  6. sts中给项目添加服务器,sts创建java web项目

    sts创建java web项目 [2021-02-03 01:57:35]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...

  7. java Web项目如何windows桌面运行?

    一.前言 前几天一个朋友找我,说有一个 数据接口开发 能够页面展示的小项目,能够在本地运行就行,不需要放到网上,问我这边可不可以做,本来想 婉言谢绝 的,但是听到说,可以给点 辛苦费,于是想到了 李白 ...

  8. 云服务器 ECS 建站教程:手工部署Java Web项目

    手工部署Java Web项目 Tomcat 一个开源的且免费的 Java Web 服务器,常用来作为 web 开发的工具.它可以托管由 servlet,JSP 页面(动态内容),HTML 页面,jav ...

  9. eclipse maven打包jar 部分jsp无法访问_Maven系列教材 (九)- 在Eclipse中创建maven风格的java web项目...

    Maven系列教材 (九)- 在Eclipse中创建maven风格的java web项目 步骤1:删除j2ee目录步骤2:新建Maven 项目步骤3:这个界面点下一步步骤4: 这个界面使用webapp ...

最新文章

  1. linux系统基本操作命令
  2. php生成首页 教程,简单静态页生成 过程_PHP教程
  3. python中socket实现代理功能_python实现代理服务功能实例
  4. Leetcode--113. 路径总和Ⅱ
  5. 【今日CS 视觉论文速览】Wed, 12 Dec 2018
  6. python自动化框架pytest pdf_Python自动化测试框架-pytest,python
  7. Java程序员从笨鸟到菜鸟之(八十七)跟我学jquery(三)jquery动态创建元素和常用函数示例...
  8. BZOJ 1015: [JSOI2008]星球大战starwar 并查集
  9. java sqlserver数据库连接_JAVA连接SQLserver数据库
  10. 2016版excel_【重磅分享】最完整EXCEL教程,视频+PPT下载
  11. PHP100视频教程(2012-2013版)下载地址及密码
  12. vmware 安装报错:failed to install hcmon drivers 完美解决(含VMware15激活码)
  13. 社会工程学案例调研和研究
  14. Material Design ui设计风格详解
  15. 架构师到底该不该写代码?
  16. 第53篇-某天猫评论sign参数分析【2022-08-31】
  17. 异常检测论文阅读笔记《MIST: Multiple Instance Self-Training Framework for Video Anomaly Detection》
  18. 前端技术之:使用npx创建一个Nuxt.js项目
  19. html按钮和多选框
  20. 【随手记】fatal: cannot do a partial commit during a merge. 解决

热门文章

  1. 二叉树的建立及层次遍历(自下而上,自左而右输出)
  2. 中国式家长计算机入门怎么去的,中国式家长新手入门怎么玩_新手入门注意事项...
  3. 合肥先进光源束测步进电机及驱动器的选择
  4. a12处理器怎么样_要用在电脑上的A12Z性能怎么样?跑分超过了Intel四核酷睿i5处理器,达到中端水平...
  5. IOS-读写文件大全
  6. while遍历数组c语言,C语言多维数组遍历
  7. 霍尔传感器测距应用和磁铁的选择
  8. 乖离水机器人攻略_乖离性百万亚瑟王
  9. 【p5.js】作业一——动态图形临摹
  10. wps表格怎么多个工作表检索内容?