当前位置: 首页 > 编程日记 > 正文

struts2笔记01-环境搭建

1、官网下载struts2

struts-2.3.28-all.zip,这个包可谓应有尽有,以后全靠它了!

2、jar包怎么选?

      (1)struts-2.3.28-all\struts-2.3.28\lib\*.jar,可以选这个目录下的所有jar包,不过是不是太多了?应该没有必要吧!

(2)struts-2.3.28-all\struts-2.3.28\apps,这个目录是干嘛的?是一些例子啊,进去瞧瞧吧,有几个war包,解压一个看看!

(3)struts2-blank.war,解压它,`(*∩_∩*)′,得到一个空的struts2 web项目!

(4)struts-2.3.28-all\struts-2.3.28\apps\struts2-blank\WEB-INF\lib,这目录之下的jar包应该是一个struts项目必备的了!

asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-fileupload-1.3.1.jar
commons-io-2.2.jar
commons-lang3-3.2.jar
freemarker-2.3.22.jar
javassist-3.11.0.GA.jar
log4j-api-2.3.jar
log4j-core-2.3.jar
ognl-3.0.13.jar
struts2-core-2.3.28.jar
xwork-core-2.3.28.jar

复制到自己的项目lib下即可

3、配置web.xml

     怎么配啊?同样参考struts-2.3.28-all\struts-2.3.28\apps\struts2-blank\WEB-INF\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>

一个filter过滤器,StrutsPrepareAndExecuteFilter这个过滤器就是struts的根了,struts2是基于过滤器实现的mvc框架,这个过滤器就是它!

4、添加struts.xml

   找到 struts-2.3.28-all\struts-2.3.28\apps\struts2-blank\WEB-INF\classes\struts.xml,复制到工程即可。

<?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.enable.DynamicMethodInvocation" value="false" /><constant name="struts.devMode" value="true" /><package name="default" namespace="/" extends="struts-default"><default-action-ref name="index" /><global-results><result name="error">/WEB-INF/jsp/error.jsp</result></global-results><global-exception-mappings><exception-mapping exception="java.lang.Exception" result="error"/></global-exception-mappings><action name="index"><result type="redirectAction"><param name="actionName">HelloWorld</param><param name="namespace">/example</param></result></action></package><include file="example.xml"/><!-- Add packages here --></struts>

end.

转载于:https://www.cnblogs.com/sdnu/p/5350375.html

相关文章:

php 生成动态键值 数组_你的PHP项目遇到性能问题了吗?看完这篇性能分析恍然大悟...

你的项目中遇到性能问题了吗&#xff1f;遇到性能问题你是如何解决的呢&#xff1f;你的解决方式是否正确呢&#xff1f;下面就跟大家一起分享php项目的性能问题。PHP语言级性能分析php在什么情况下会遇到性能问题呢&#xff1f;在讨论性能问题时&#xff0c;我们要明白&#x…

前来推荐一本比较喜欢的读物——《浪潮之巅》

基本属性 书籍介绍&#xff1a;《浪潮之巅》是一本介绍IT行业兴衰变化的书&#xff0c;书中的内容最早发表在Google黑板报上&#xff0c;经过几年的积累并整理成书。 作者介绍&#xff1a;吴军&#xff0c;美国约翰霍普金斯大学计算机科学博士&#xff0c;其人写作风格风趣幽默…

socks5   代理

安装gcc和make,并安装ss5的依赖包&#xff1a;yum -y install pam-devel openldap-devel cyrus-sasl-devel gcc automake make openssl openssl-devel2.下载ss5安装包并编译安装&#xff1a;wget -c http://sourceforge.net/projects/ss5/files/ss5/3.8.9-2/ss5-3.8.9-2.tar.gz…

Java Day02-2(字符串)

&#xff08;1&#xff09;字符串的连接 1.可以用加号连接两个字符串&#xff0c;“”在这里是起到了连接字符的运算。 2.转义字符 &#xff1a; \n(换行&#xff0c;另起一行&#xff0c;将光标移动到下一行的开始处) \r 把光标移动到本行的开始的位置 \t 制表符&am…

Blender3.0动画制作入门学习教程 Learn Animation with Blender (2021)

要求 下载并安装Blender。免费下载和免费用于任何目的。 描述 加入我的动画课程。 在本课程中&#xff0c;我将从头开始讲述在Blender中创建动画场景的过程。 从第一步到最终渲染。在这个课程中&#xff0c;我们将使用blender 3.0。您将学习将自己的3D动画带入生活的所有步骤…

python中if else语句用法_python中if及if-else如何使用

if 结构 if 结构允许程序做出选择&#xff0c;并根据不同的情况执行不同的操作 基本用法 比较运算符 根据 PEP 8 标准&#xff0c;比较运算符两侧应该各有一个空格&#xff0c;比如&#xff1a;5 3。 PEP8 标准 &#xff08;相等&#xff09;&#xff1a;如果该运算符两侧的值…

poj2002 hash+数学

1 .求不同的四个点组成最大正方形的总个数&#xff1b; 2.由&#xff08;x1,y1&#xff09;,(x2,y2),可以求出另外两点的坐标&#xff1b; 即 x3x1(y1-y2);y3y1-(x1-x2); x4x2(y1-y2);y4y2-(x1-x2); 或者 x3x1-(y1-y2);y3y1(x1-x2); x4x2-(y1-y2);y4y2(x1-x2); 3.由求出的点的坐…

计算机如何表示色彩?

我们都知道&#xff0c;颜色或色彩是通过眼、脑和我们的生活经验所产生的一种对光的视觉效应。 而其中人眼对红、绿、蓝这3种光的敏感度最高。 由于任何光都可以用红、绿、蓝这3种光按不同的比例混合而成&#xff08;三原色原理&#xff09;&#xff0c;我们才能看到色彩斑斓的…

Java基础班学习笔记(13)IO流

知识要点&#xff1a;1:异常(理解)(1)程序出现的不正常的情况。(2)异常的体系Throwable|--Error 严重问题&#xff0c;我们不处理。|--Exception|--RuntimeException 运行期异常&#xff0c;我们需要修正代码|--非RuntimeException 编译期异常&#xff0c;必须处理的&#xff0…

问题一:云服务中那么多的服务器怎么拓扑???

云服务&#xff1a; 1.云存储&#xff08;百度云&#xff09; 2.视频点播 3.平台或者是软件&#xff08;阿里云&#xff09; 数据中心&#xff1a;存储数据的地方&#xff0c;我们通常会在一些电影里看到的大型的服务器整齐的罗列在一个大的房间中&#xff0c;那个也就差不…

2016-2022年AutoCAD起重机吊装计划和索具图纸

AutoCAD Crane Lifting Plan and Rigging Drawings 2016-2022 完成AutoCAD 2D高级起重机提升计划和索具图纸-基于项目的培训 你会学到什么 学习所有基本和高级的AutoCAD 2D工具栏 学习高级块和动态块 准备AutoCAD面试和考试 创建图纸、物料清单和布局的使用 学习图纸集管理器和…

tensorflow 转张量类型为float_TensorFlow快速入门

TensorFlow是一个数值计算库&#xff0c;其中数据&#xff08;Tensor&#xff0c;张量&#xff09;在计算图中流动。数据在TensorFlow用被称为张量的n维数据表示。计算图由数据和数学操作符构成。计算图中的节点代表数学操作符计算图中的边代表操作符之间的张量计算图(Graph)在…

环境变量配置文件

环境变量配置文件 关于显示"bash5.2#"问题 由于是PS1没有设置成功&#xff0c;说明~/.bash_profile --> ~/.bashrc --> /etc/.bashrc的文件加载流程出错。 posted on 2016-04-06 12:50 大侠去哪儿 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.…

【译】CSS动画 vs JS动画

原文地址 目前有两个主流的方法在web上创建动画&#xff1a;使用CSS或JS。到底选择哪种方法来实现动画&#xff0c;完全取决于你的项目以及你想要达到的效果。 tips: 对于简单的只出现一次的过渡效果&#xff0c;可以采用CSS动画&#xff0c;比如切换UI元素的状态在需要高级的效…

问题二:相关性怎么引入?

在大数据处理的时候总是会有说&#xff0c;现今科学技术的发展使得我们使用样本取代总体的时代过去了。在新的时代我们使用的是足够多的接近于总体的大的数据。在这个大的数据里面&#xff0c;我们没有办法具体数据具体的分析。因为它足够的大。 因此引入了相关性的概念&#x…

【UE5】虚幻引擎5中的VFX游戏特效制作学习教程

从零开始学习虚幻引擎5中的实时VFX。 你会学到什么 了解如何创建实时效果 通过创造效果来学习Niagara 了解Niagara是如何运作的 为游戏创造各种各样的效果。 创造风格化的火 创建风格化的爆炸 创造能量球 MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz 语…

HDOJ 1236 排名(练耐心题)

Problem Description 今天的上机考试虽然有实时的Ranklist&#xff0c;但上面的排名只是根据完成的题数排序&#xff0c;没有考虑 每题的分值&#xff0c;所以并不是最后的排名。给定录取分数线&#xff0c;请你写程序找出最后通过分数线的 考生&#xff0c;并将他们的成绩按…

python跟java 效率_对比平台--Java与Python之间的性能差异

ava Performance和Python之间的主要区别 以下是描述Java Performance和Python之间的区别的要点列表&#xff1a; 以下是Java性能与Python之间的主要区别&#xff0c;我们在决定应该选择哪种语言之前必须进行分析和评估。 Java是一种编译语言&#xff0c;而Python是一种解释语言…

你听说过反摩尔定律吗?

相信很多人听说过摩尔定律&#xff0c;但是你听说过反摩尔定律吗&#xff1f; 可能你会以为反摩尔定律就是与摩尔定律相反的定律&#xff0c;甚至认为这两个定律相互矛盾&#xff0c;那你就大错特错了&#xff0c;其实两种定律可以说是针对同一种现象的不同说法。 摩尔定律是…

《Java从入门到精通》第九章学习笔记

第9章 类的高级特性 一、抽象类 抽象类只声明方法的存在&#xff0c;不能被实例化&#xff0c;就是说抽象类不能创建其对象&#xff0c;在定义抽象类时要在class前面加上abstract关键字。 1 /*定义一个抽象类Fruit&#xff0c;并定义其抽象方法2 *在其子类中实现该抽象方法3 …

Python中的super()函数

多路继承的问题 描述&#xff1a; 解决这样的问题Python中可以使用super&#xff08;&#xff09; super&#xff08;&#xff09;函数有点&#xff1a; &#xff08;1&#xff09;在父类中可以直接的调用未绑定的方法 &#xff08;2&#xff09;在确保所有的父类的构造方…

【UE5教程】影棚拍摄于虚拟场景合成制作流程学习

用虚幻引擎预算虚拟生产5 你会学到什么 使用虚幻引擎5进行虚拟生产 使用虚幻引擎5的独立虚拟制作 用虚幻引擎预算虚拟生产5 用虚幻引擎5进行穷人虚拟生产 用虚幻引擎5进行自制虚拟制作 虚幻引擎5独立虚拟制作 带虚幻引擎5的复合绿屏 虚拟生产导论 面向初学者的虚拟生产 MP4 |视…

java面试题:分布式和微服务的区别

分布式架构解决的是如何将一个大的系统划分为多个业务模块这些业务模块会分别部署到不同的机器上,通过接口进行数据交互的问题。微服务是指很小的服务,可以小到只完成一个功能,这个服务可以单独部署运行,不同服务之间通过rpc调用。分布式架构是将一个大的系统划分为多个业务模块,这些业务模块会分别部署到不同的机器上,通过接口进行数据交互。微服务架构是架构设计方式,是设计层面的东西,一般考虑如何将系统从逻辑上进行拆分,也就是垂直拆分。分布式系统是部署层面的东西,即强调物理层面的组成,即系统的各子系统部署在不同计算机上。

python安装成功的图标_ubuntu下:安装anaconda、环境配置、软件图标的创建、成功启动anaconda图形界面...

Ubuntu安装anaconda常见的四大问题&#xff1a;目录1、介绍2、安装anaconda3、环境配置4、软件图标的创建5、成功启动anaconda图形界面1、介绍先介绍一下anaconda和python的关系&#xff1a;初学者所安装的python2/3只是python的环境&#xff0c;没有python的工具包&a…

jQuery和dom的相互转换

1.将DOM对象转换成jQuery对象 $div $(objDom); 2.将jQuery对象转换成DOM对象 objDom $(objJqeury).get(0); 3.判断一个元素是否存在于页面 jQuery方法&#xff1a; $("#id").length >0:代表存在于页面 0&#xff1a;不存在页面 4.取另一个页面中存在的元素 …

VScode的撤销操作的快捷键

撤销刚才的操作&#xff1a;CtrlZ 恢复刚才的操作&#xff1a;CtrlShiftZ

IOS初级:UIAlertController

- (IBAction)signOutAction:(id)sender {//初始化,StyleActionSheet是对话框的样式UIAlertController *alert [UIAlertController alertControllerWithTitle:"是否注销?" message:"真的要注销吗" preferredStyle:UIAlertControllerStyleActionSheet];//添…

1976年图灵奖

获奖原因&#xff1a; 在1959年发表的论文“有限自动机及其判定问题”中提出了非确定性有限状态自动机这一概念。 图灵奖引用&#xff1a; 授 予 MichaelO. Rabin与DanaSteward Scott图灵奖以表彰合作撰写的研究论文“有限自动机与其判定性问题”。在该研究论文中&#xff0c;…

UE4蓝图无代码编程游戏开发技能学习教程

在虚幻引擎4中创建、设计和开发自己的游戏&#xff0c;无需编码 你会学到什么 虚幻引擎4中使用蓝图的游戏开发(无代码编程) 使用行业标准方法的游戏设计 使用Maya进行三维设计 在本课程中创建您的第一个游戏 Game Development Essentials with Unreal Engine 4 Blueprints M…

“睡眠猴子”团队项目及成员介绍

“睡眠猴子”团队项目及成员介绍 咳咳……软件工程这门课最终还是来到了团队开发的部分&#xff0c;我们宿舍三只经过一下午的讨论和需求分析决定做一款名叫“睡眠猴子”的安卓版手机软件&#xff0c;具体的项目功能和团队介绍如下&#xff1a; 一、“睡眠猴子”开发团队介绍&a…