老规矩,首先对Struts2的背景信息做简单介绍,这里不过多解释MVC设计模式是如何如何的,Struts2是MVC中Controller角色的一个较好实现,它包含了请求的处理、数据的验证、数据模型绑定、安全验证、日志记录、类型转换等开发常用的大部分技术需求,较新的Struts2版本同样兼容JDK的新版本中技术,从总体来说,它确实是一个不错的框架,本着“学了的东西不一定能用得上,但是用的时候必须要有”的精神,下面开始准备搭建一个Struts2项目;

首先说一下,学习Struts2对技术的基本要求:

  • Java技术
  • Filters,JSP,and Tag Libraries
  • JavaBeans
  • HTML 和 HTTP
  • Web Containers(比如Tomcat,Jetty)
  • XML
另外Struts2要求,Servlet API 2.4以上,JSP版本2.0或以上,JDK版本1.7或以上,好了废话不多说了,开始搭建Struts项目,本次项目搭建,从官网上下载的Struts 2.3.30版本的,官网目前最高支持到2.5版本的,由于新版本后期在于其它框架整合时,可能会有一些兼容性的问题,所以采用稍微稳定点的版本;
1、新建一个Web项目,如下设置,PS下:千万不要怕类名、包名、项目名称等长度长,只要规范达意即可,如下图设置,我是用的MyEclipse10版本的工具,目前最高支持到Java EE 6.0,对技术要求不是过于新的完全够用;
有时候会弹出,如下框,表示你的根据你的JavaEE版本推断出的JDK版本与你当前的版本不一致,是否需要改成推荐的,这个点击Yes就可以了
新建完毕后的项目结构如下:
2、大家都知道由于要使用Struts2框架的功能,那么肯定要把框架的Jar文件放进去,那么往下载完的lib目录里面一看,不算各种插件Jar文件,发现有106个jar文件,显然这些并不都需要,那么如何筛选必须的Jar包呢?仔细查看下载的文件会发现,有一个apps文件夹,里面放了5个实例项目,这些实例项目里面的jar肯定是能让项目正常跑起来的,所以,我们做的工作就是解压->复制Jar->粘贴Jar文件到咱们自己项目的lib文件夹下,然后刷新项目,就可以了,完成之后,项目结构如下:
3、下面开始通过配置文件,让Struts2接管以前由Servlet处理请求和响应的任务,找到项目中的web.xml,添加如下配置:
<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>

由此,由于url-pattern元素,可以匹配所有请求,那么所以的请求都会通过Struts2的过滤器交由Struts2接管,那么Struts2就正式纳入到Web项目中;

4、问题来了,Struts2虽然确实纳入到Web项目里面去了,但是由于Struts2还要创建Controller类等,那么这些类的信息在哪里配置的呢?还是找到app下面的任意一个项目,会发现有一个struts.xml文件,打开后发现,在这个配置文件中,配置这各种Bean的信息,好的,我们将这个文件复制过来,放到src目录下,然后做简单配置,配置完如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><constant name="struts.devMode" value="true" /><package name="default" extends="struts-default"><action name="login" class="com.struts.action.LoginAction"><result name="success">/welcome.jsp</result></action></package></struts>

然后在src目录下,新建com.struts.action包,以及LoginAction类,代码如下:

package com.struts.action;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {@Overridepublic String execute() throws Exception {System.out.println("我的第一个Struts2项目搭建成功!!!");return SUCCESS;}
}

在WebRoot文件夹下面,新建welcome.jsp页面,JSP页面代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>My JSP 'welcome.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"></head><body><h1>恭喜你,Struts2项目搭建成功!!</h1></body>
</html>

此时,项目目录结构如下:

5、在Tomcat服务器,配置项目,这里推荐的方式是找到Tomcat的安装目录的conf文件夹里面的server.xml文件,

打开,找到里面的Host元素,在其下,添加如下配置:
<Context path="struts" docBase="D:/ME_WorkSpace/FirstStruts2Project/WebRoot" reloadable="true"/>
到此,配置完毕,启动服务器,查看MyEclipse控制台,如果正常启动的话,无异常信息,然后在地址栏输入:
http://localhost:8080/struts2/login
会在控制台和浏览器打印出:

至此,搭建环境成功!!

特别需要注意的是在web.xml和struts.xml上面配置的内容!

Struts2项目搭建相关推荐

  1. Struts2 项目搭建

    版权声明:本文首发 http://asing1elife.com ,转载请注明出处. https://blog.csdn.net/asing1elife/article/details/8286218 ...

  2. idea strus html项目创建,搭建struts2 项目开发环境——(使用Intellij IDEA+Maven+struts2 )...

    一.Struts介绍 Struts是Apache软件基金会(ASF)赞助的一个开源项目.它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目.它通过采用JavaServle ...

  3. Struts2框架搭建

    使用Struts2版本为:struts-2.3.16.3 下载地址:http://struts.apache.org/ 一.向web项目中添加struts2依赖库 commons-fileupload ...

  4. IntelliJ IDEA新建Struts2项目并运行成功

    准备好Struts2的组件包,下载网址:https://struts.apache.org/index.html 打开网页后点击"DownLoad",然后在下载界面下载Struts ...

  5. 超简单的react和typescript和引入scss项目搭建流程

    1.首先我们先创建一个react项目,react官网也有react项目搭建的命令 npx create-react-app my-app cd my-app 2.安装我们项目需要的样式依赖,这个项目我 ...

  6. angular6 mysql_Angular6项目搭建

    安装工具: Nodejs, npm     最新版, https://nodejs.org/en/ Angular CLI,    npm install -g @angular/cli Visual ...

  7. 使用eclipse创建Struts2项目

    eclipse版本: Kepler Service Release 1    http://www.eclipse.org/downloads/ struts版本:2.3.16     http:// ...

  8. webstorm打包rn项目_React 之 项目搭建

    阅读本文约需要6分钟 大家好,我是你们的导师,经常看我朋友圈的同学应该知道,我每天会在微信上给大家免费提供以下服务! 1.长期为你提供最优质的学习资源! 2.给你解决技术问题! 3.每天在朋友圈里分享 ...

  9. 个人博客开发-01-nodeJs项目搭建

    // window系统下 1.nodeJs 安装 nodeJs 安装 看  这里 , 先下载再下一步下一步就OK了,我的是在C盘里安装的. 安装完以后 按 win + R ,在弹出的小框框里输入 CM ...

最新文章

  1. MySQL学习(十一)
  2. 服务器购买是有无系统,买服务器含不含操作系统
  3. TensorFlow(五)常用函数与基本操作
  4. 乐高泰坦机器人视频解说_“安防”机器人将亮相服贸会
  5. C 实现一个跨平台的定时器 论述
  6. Odoo10教程 -- 主题教程
  7. CI(持续集成)/CD(持续部署)
  8. python中出现iterator should return strings, not bytes怎么解决
  9. Excel弱爆了!这个工具30分钟完成了我一天的工作量,零基础也能学!
  10. 商品库存清单案例java_java实现超市商品库存管理平台
  11. mono 最近的三条消息
  12. mapreduce实现——腾讯大数据QQ共同好友推荐系统【你可能认识的人】
  13. 基于matlab和proe的曲面建模,两个基础曲面建模实例教你Proe曲面建模技巧和思路...
  14. 利用微信搜索抓取公众号文章(转载)
  15. mathematica 矩阵对角化
  16. 从0到1搭建一款Vue可配置视频播放器组件(Npm已发布)
  17. ios 渐变透明背景_PPT设计的总是太单调,不如换个背景试试,超精彩!
  18. 【表单设计】优秀表单设计案例
  19. 爬取微博热点评论用户ID--简易版本
  20. 软文营销是什么,怎么理解

热门文章

  1. 关于Cocos2d-x随机数的生成
  2. Linux操纵零碎下设置JSP开发环境的方式
  3. MySQL_存储引擎
  4. 正则表达式捕获分组和非捕获分组及用法
  5. react留言功能准备一
  6. 动手学深度学习(PyTorch实现)(二)--softmax与分类模型
  7. Kinect开发学习笔记之(二)Kinect开发学习资源整理
  8. 第2关:子节点创建、列出、删除
  9. 7-3 欢迎参加贵工程2021年C语言程序设计大赛! (5 分)
  10. 7-293 鸡兔同笼 (10 分)