Java web项目添加Struts2支持的步骤
今天开始学习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支持的步骤相关推荐
- maven Web项目添加数据源支持,包括Oracle、Mysql
pom.xml 支持jkbc: <dependency><groupId>org.springframework.boot</groupId><artifac ...
- Java Web项目是怎么跑起来的?
良心公众号 关注不迷路 01 简单Java程序的启动过程 在之前的HelloWorld是怎么跑起来的?一文中,我们一起学习了IDE执行简单的Java程序的过程.可以总结为如下三个步骤: 首先,将程序通 ...
- Java Web项目中缺少Java EE 6 Libraries怎么添加
Java Web项目中缺少Java EE 6 Libraries怎么添加 具体步骤如下: 1.项目名称上点击鼠标右键,选择"Build Path-->Configure Build P ...
- java web项目部署到tomcat服务器(一般步骤和自己所犯错误的总结)————高手忽略
最近由于项目需求,需要将java web项目部署到本地tomcat上(版本为8.0)进行测试.作为一个非计算机专业的菜鸟,之前的工作都是写后台逻辑代码,没接触过web项目部署.部署的时候不知道如何下手 ...
- jsp项目在idea需要导入什么依赖_idea中的java web项目(添加jar包介绍)和java maven web项目目录结构...
java web项目 web项目下web根目录名称是可以更改的 idea中新建java web项目,默认src为Sources Root,当然也可以手动改,在Sources Root下右键只能新建Pa ...
- sts中给项目添加服务器,sts创建java web项目
sts创建java web项目 [2021-02-03 01:57:35] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...
- java Web项目如何windows桌面运行?
一.前言 前几天一个朋友找我,说有一个 数据接口开发 能够页面展示的小项目,能够在本地运行就行,不需要放到网上,问我这边可不可以做,本来想 婉言谢绝 的,但是听到说,可以给点 辛苦费,于是想到了 李白 ...
- 云服务器 ECS 建站教程:手工部署Java Web项目
手工部署Java Web项目 Tomcat 一个开源的且免费的 Java Web 服务器,常用来作为 web 开发的工具.它可以托管由 servlet,JSP 页面(动态内容),HTML 页面,jav ...
- eclipse maven打包jar 部分jsp无法访问_Maven系列教材 (九)- 在Eclipse中创建maven风格的java web项目...
Maven系列教材 (九)- 在Eclipse中创建maven风格的java web项目 步骤1:删除j2ee目录步骤2:新建Maven 项目步骤3:这个界面点下一步步骤4: 这个界面使用webapp ...
最新文章
- android-apt plugin is incompatible with the Android Gradle plugin. Please use 'annotationProcessor'
- 深度学习——你需要了解的八大开源框架
- 【转】android的消息处理机制(图+源码分析)——Looper,Handler,Message
- 傅里叶变换表_Numpy库小抄表!主要语法和代码都在这里啦
- 技术动态 | 人工智能开源软件发展现状连载——知识图谱开源软件
- java 线程百科_Java并发——线程介绍
- LockSupport HotSpot里park/unpark的实现
- WebStorm 6.0下运行pomelo项目
- 泰山游记:厕所竟然没水,可想而知
- MessageBox的用法
- 【案例】CRM客户管理系统的登录模型
- JAVA日期转换函数(包括:日期、周数的计算)
- 裸辞1天 vs 裸辞10天 vs 裸辞一个月
- zsh: no matches found: 错误解决 setopt no_nomatch
- 淘宝店铺将导航和店招修改成通栏
- 【思维模型】五分钟了解<乔哈里窗>,为什么学习乔哈里窗?什么是乔哈里窗?怎么应用乔哈里窗?
- js的join()与 split()
- 浅谈Kafka选举机制
- 2015级吉大计算机博士生,这所211大学清退33名博士生!最长已读博15年……
- Design with the User in Mind--从用户角度进行设计
热门文章
- ERP主数据(2):主数据管理6大策略+5大步骤
- 读书笔记:《让云落地:云计算服务模式(SaaS、PaaS和IaaS)设计决策》
- 怎么删除微博服务器里的个人信息,“搞垮” 微博服务器?每天上亿条用户推送是如何做到的...
- 如何在iPhone或Mac上取消 Apple提供的付费订阅?
- vue核心面试题:Vue中相同逻辑如何抽离?
- MySQL最全整理!java垃圾回收器的作用不包括
- mysql增量同步_在两个MySQL数据库之间实现数据增量同步
- 国庆节这么玩微信腾讯服务器,2019十一旅游怎么发朋友圈 国庆节旅游微信心情说说...
- 模拟鼠标向下滚动 java_软网推荐:滚动截图将超长网页“一网打尽”
- 电子工程可以报考二建_【电子信息工程专业能考二级建造师吗_2020年二级建造师】- 环球网校...