今天开始学习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. android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcessor'
  2. 深度学习——你需要了解的八大开源框架
  3. 【转】android的消息处理机制(图+源码分析)——Looper,Handler,Message
  4. 傅里叶变换表_Numpy库小抄表!主要语法和代码都在这里啦
  5. 技术动态 | 人工智能开源软件发展现状连载——知识图谱开源软件
  6. java 线程百科_Java并发——线程介绍
  7. LockSupport HotSpot里park/unpark的实现
  8. WebStorm 6.0下运行pomelo项目
  9. 泰山游记:厕所竟然没水,可想而知
  10. MessageBox的用法
  11. 【案例】CRM客户管理系统的登录模型
  12. JAVA日期转换函数(包括:日期、周数的计算)
  13. 裸辞1天 vs 裸辞10天 vs 裸辞一个月
  14. zsh: no matches found: 错误解决 setopt no_nomatch
  15. 淘宝店铺将导航和店招修改成通栏
  16. 【思维模型】五分钟了解<乔哈里窗>,为什么学习乔哈里窗?什么是乔哈里窗?怎么应用乔哈里窗?
  17. js的join()与 split()
  18. 浅谈Kafka选举机制
  19. 2015级吉大计算机博士生,这所211大学清退33名博士生!最长已读博15年……
  20. Design with the User in Mind--从用户角度进行设计

热门文章

  1. ERP主数据(2):主数据管理6大策略+5大步骤
  2. 读书笔记:《让云落地:云计算服务模式(SaaS、PaaS和IaaS)设计决策》
  3. 怎么删除微博服务器里的个人信息,“搞垮” 微博服务器?每天上亿条用户推送是如何做到的...
  4. 如何在iPhone或Mac上取消 Apple提供的付费订阅?
  5. vue核心面试题:Vue中相同逻辑如何抽离?
  6. MySQL最全整理!java垃圾回收器的作用不包括
  7. mysql增量同步_在两个MySQL数据库之间实现数据增量同步
  8. 国庆节这么玩微信腾讯服务器,2019十一旅游怎么发朋友圈 国庆节旅游微信心情说说...
  9. 模拟鼠标向下滚动 java_软网推荐:滚动截图将超长网页“一网打尽”
  10. 电子工程可以报考二建_【电子信息工程专业能考二级建造师吗_2020年二级建造师】- 环球网校...