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

使用eclipse创建Struts2项目

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

struts版本:2.3.16 http://struts.apache.org/


1.新建web项目

打开Eclipse,新建一个web项目"Struts2"


项目名字


勾选 web.xml选项


建好的项目


2.拷贝struts的jar包

在struts2文件包中,找到struts-2.3.16\apps\struts2-blank.war文件,并将其用解压,这个项目完全是一个空白项目。

复制\WEB-INF\lib\ 下的所有jar包

将前面复制的所有jar包复制到eclipse所建立的项目 -- WebContent -- WEB-INF --lib下

已经复制成功后的lib目录视图

在Libraries下的Web App Libraries下也可以引用成功的jar包


3.拷贝web.xml

在struts的WEB-INF下有web.xml,可以直接拷贝到Eclipse的WEB-INF下,也可以只取其中的filter复制到Eclipse中已经的web.xml

拷贝filter

下面是一个完整的web.xml

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

4.拷贝Struts.xml文件以及相关的java文件和其他的xml配置文件

复制struts2-blank\WEB-INF\src\java目录下的所有文件

因为需要在Package Explorer中进行粘贴,在Project Explorer中不能正确粘贴。

所有先要切换到Package Explorer

拷贝好Struts.xml文件以及相关的java文件以后的视图

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">/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>


4.拷贝jsp文件

选择struts2-blank目录下的index.htm文件以及jsp目录

复制上述文件到WebContent下


5.启动项目

在需要启动的文件上右键点击运行

选择对应的server来运行项目


6.运行的页面

http://localhost:8080/Struts2/index.html

http://localhost:8080/Struts2/example/Welcome.jsp页面

点击“Sign On”以后


7.新增文件

修改struts.xml文件,增加

<action name="hello2"><result>/hello.jsp</result></action>

在WebContent下新建hello.jsp文件

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
HelloWorld! By http://blog.csdn.net/unix21
</body>
</html>

重新Run文件,使用http://localhost:8080/Struts2/hello2就可以访问

至此一个基本的struts的helloworld项目就完成了。


更多参考:在Eclipse中配置Struts2项目(二)    很老的文章,不过每一步很详细,可以看看特别是JDK和Tomcat的配置

Eclipse怎样配置struts2? 文章较新

相关文章:

8、进程通信-匿名管道

匿名管道 一个单向&#xff0c;未命名的管道&#xff0c;通常用来在一个父进程和一个子进程间传输数据。只能实现本地机器上两个进程间的通信&#xff0c;而不能实现跨网络的通信。 BOOL CreatePipe( PHANDLE hReadPipe, // read handle PHANDLE hWriteP…

Enhanced-RCNN: 一种高效的比较句子相似性的方法 |​WWW 2020

作者 | 彭爽出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;国际顶级会议WWW2020将于4月20日至24日举行。始于1994年的WWW会议&#xff0c;主要讨论有关Web的发展&#xff0c;其相关技术的标准化以及这些技术对社会和文化的影响&#xff0c;每年有大批的学者、研究人…

直接可以拿去用的正则验证表达式

直接可以拿去用的正则验证表达式为了方便自己也方便初学的学弟们&#xff0c;自己总结了网上的众多正则验证式&#xff0c;现分享给大家&#xff0c;可以直接拿去用。一、校验数字的1 数字&#xff1a;^[0-9]*$2 n位的数字&#xff1a;^\d{n}$3 至少n位的数字&#xff1a;^\d{n…

家庭局域网开启AP隔离利用无线路由器互连

一开始可以上网&#xff0c;可以ping网关192.168.1.1&#xff0c;但是几台电脑之间就是不能互ping。 其实&#xff0c;真实的原因就是没有开启无线路由器的AP隔离。 在浏览器中输入192.168.1.1进入路由搜索一般用户名密码都是admin&#xff0c;具体请参见自己路由的说明书 操…

通过 Python 代码实现时间序列数据的统计学预测模型

来源 | DeepHub IMBA封图 | CSDN 付费下载于视觉中国 在本篇中&#xff0c;我们将展示使用 Python 统计学模型进行时间序列数据分析。 目标是&#xff1a;根据两年以上的每日广告支出历史数据&#xff0c;提前预测两个月的广告支出金额。原始数据&#xff1a;2017-01-01 到 201…

神色洋溢的 域名背后的故事

前短时间&#xff0c;我刚申请一个域名&#xff0c;好的顶级域名都被被人一拥而上的都强去了&#xff0c;我只好找那些申请好的用户买呀&#xff0c;这叫炒作&#xff0c;就是这样的抄起来的。你说平常一个也就100左右就搞定&#xff0c;可是现在要是到那票手里&#xff0c;那就…

Rust语言开发基础(六)基础语法

2019独角兽企业重金招聘Python工程师标准>>> 一、变量的定义和使用 其它常见的编程语言对变量的定义通常是通过声明类型和使用关键new来创建一个变量&#xff0c;但Rust不是&#xff0c;Rust使用关键字let。 1. 变量绑定通过let实现 fn main() { let x 5; } 2. 变量…

400 多行代码!超详细 Rasa 中文聊天机器人开发指南 | 原力计划

作者 | 无名之辈FTER责编 | 夕颜出品 | 程序人生&#xff08;ID&#xff1a;coder_life&#xff09;本文翻译自Rasa官方文档&#xff0c;并融合了自己的理解和项目实战&#xff0c;同时对文档中涉及到的技术点进行了一定程度的扩展&#xff0c;目的是为了更好的理解Rasa工作机制…

Linux配置SSH无密码登陆

可以使用“公钥私钥"认证的方式来进行ssh登录。 所谓 "公钥私钥"认证方式&#xff0c;就是首先在客户机上创建一对公钥和私钥&#xff0c;公钥文件&#xff1a;~/.ssh/id_rsa.pub&#xff1b; 私钥文件&#xff1a;~/.ssh/id_rsa 然后把公钥文件放到目标服务器…

Linux进程浏览器htop安装与使用

htop 是一个 Linux 下的交互式的进程浏览器&#xff0c;可以用来替换Linux下的top命令。当前具有按树状方式来查看进程&#xff0c;支持颜色主题&#xff0c;可以定制等特性。其实htop是top的加强版&#xff0c;增加了很多功能。 官网 http://hisham.hm/htop/ 下载地址http:/…

什么?神经网络还能求解高级数学方程?

来源 | 数据派 THU封图 | CSDN 付费下载于视觉中国 Facebook AI建立了第一个可以使用符号推理解决高级数学方程的AI系统。通过开发一种将复杂数学表达式表示为一种语言的新方法&#xff0c;然后将解决方案视为序列到序列的神经网络的翻译问题&#xff0c;我们构建了一个在解决积…

***和******

网络是一把双刃剑&#xff0c;它在人类社会的发展中起着越来越重要作用&#xff0c;但同时&#xff0c;网络自身的安全问题也像挥之不去的阴影时刻笼罩在人们心头。据不完全统计&#xff0c;全世界平均每 20秒钟就发生一起******事件&#xff0c;互联网上大约有20万个***网站可…

Linux监控工具dstat

dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比, dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据比较显眼容易观察; 而且dstat支持即时刷新, 譬如输入dstat 3, 即每三秒收集一次, 但最新的数据都…

9月16号晚上,Asuka有一场关于Windows 7组策略的Webcast,欢迎兄弟们来捧场

之所以选题在组策略之一块&#xff0c;是因为Windows 7和2008 R2对于组策略有了很大的功能上的增强&#xff0c;但是很多IT人员都无法意识或者去重视这一块内容&#xff0c;所以我将从下面这3个角度去介绍这些更新。如果您正好有时间&#xff0c;那不妨来技术交流一番:)直播进入…

腾讯天衍实验室联合微众银行研发医疗联邦学习 AI利器让脑卒中预测准确率达80%

近几年&#xff0c;医疗行业正在经历一场数字化转型&#xff0c;这场基于大数据和AI技术的变革几乎改变了整个行业的方方面面&#xff0c;将“信息就是力量”这句箴言体现的淋漓尽致&#xff0c;人们对人工智能寄以厚望&#xff0c;希望它能真正深入临床一线&#xff0c;帮助医…

JavaSript模块化 AMD CMD 详解.....

模块化是指在解决某一个复杂问题或者一系列的杂糅问题时&#xff0c;依照一种分类的思维把问题进行系统性的分解以之处理。模块化是一种处理复杂系统分解为代码结构更合理&#xff0c;可维护性更高的可管理的模块的方式。可以想象一个巨大的系统代码&#xff0c;被整合优化分割…

在Eclipse中使用Maven构建Spring项目

最新版的Spring需要使用Maven构建&#xff0c;本文讲述怎么在Eclipse构建Maven项目&#xff0c;以配置Spring项目为例。 maven简单介绍 maven是构建工具&#xff0c;也是构建管理工具。ant只是构建工具&#xff0c;因为不支持生成站点功能&#xff0c;只有预处理&#xff0c;编…

Go 语言官网全新改版

2019独角兽企业重金招聘Python工程师标准>>> 前两天发现 Go 语言官网改版了&#xff0c;布局由原来的左中右变成了上中下结构&#xff0c;主色调没有变&#xff0c;整体依然保持简洁的风格。在首页添加了一个叫 Playground 的模块&#xff0c;它可以编译、运行你输入…

就在今晚 | 港科大李世玮教授问诊未来,开辟大湾区新航路

阳春三月&#xff0c;万象更新&#xff0c;2020年注定是不平凡的一年&#xff01;有激荡就会遇见变革&#xff0c;有挑战就会迎来机遇。今天总会过去&#xff0c;未来将会怎样&#xff1f;香港科大商学院内地办事处重磅推出全新升级的《袁老师访谈录》全新系列【问诊未来院长系…

NLP(Natural Language Processing)

https://github.com/kjw0612/awesome-rnn#natural-language-processing 通常有&#xff1a; (1)Object Recognition (2)Visual Tracking (3)Image Generation (4)Video Analysis NLP: &#xff08;1&#xff09;Language Modeling &#xff08;2&#xff09;Speech Recognition…

Linux环境编程

1.__sync_fetch_and_add和__sync_bool_compare_and_swap gcc从4.1.2提供了__sync_*系列的built-in函数&#xff0c;用于提供加减和逻辑运算的原子操作。 其声明如下&#xff1a; type __sync_fetch_and_add (type *ptr, type value, ...) type __sync_fetch_and_sub (type *p…

AI新基建如何构建?浪潮给出了一个答案

作者 | Just出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;伴随生产力升级&#xff0c;社会基础设施也正在发生变化。而智慧时代的新型基础设施&#xff0c;要能够对外提供各种算力服务、数据服务和AI服务。浪潮认为&#xff0c;其核心是计算力的生产中心。因此&…

协作是企业管理的重点和难点

这个问题让我想起了一道数学题&#xff0c;11&#xff1f;。在生活中这个题目的答案会千差万别&#xff0c;更别说一个企业。在我眼中&#xff0c;企业中最难管的是关系&#xff0c;更准确的说是协作。 经理过好几个信息系统建设的项目&#xff0c;小到一个简单的邮件系统&…

使用CSS3美化复选框checkbox

我们知道HTML默认的复选框样式十分简陋&#xff0c;而以图片代替复选框的美化方式会给页面表单的处理带来麻烦&#xff0c;那么本文将结合实例带您一起了解一下使用CSS3将复选框checkbox进行样式美化&#xff0c;并且带上超酷的滑动效果。 查看演示 下载源码HTML 通常我们使用以…

Thift安装

thrift官网http://thrift.apache.org/ #wget http://mirror.bit.edu.cn/apache/thrift/0.9.2/thrift-0.9.2.tar.gz #tar -zvxf thrift-0.9.2.tar.gz # ./configure --prefix/usr/local/thrift #make && makeinstall 增加到环境变量 #export PATH$PATH:/usr/…

​“手把手撕LeetCode题目,扒各种算法套路的裤子”

出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;刷LeetCode刷到懵还是一头雾水&#xff1f;莫慌&#xff0c;这里有一个标星27000的算法详解教程。从项目命名来看&#xff0c;作者labuladong就有着要干翻算法的精气神。当然&#xff0c;这个教程不只是为了机械刷题。…

c语言标准库低通的qsort函数不适宜所有排序任务的原因

c语言标准库低通的qsort函数不适宜所有排序任务的原因&#xff1a; 第一&#xff1a;它只能用于内存中的数组排序&#xff0c;不能对链表中的数据排序&#xff1b; 第二&#xff1a;因为它是参数化的函数&#xff0c;所以能对各种数据进行操作&#xff0c;也造成它的运行速度比…

第三周学习进度条

星期日 星期一 星期二 星期三 星期四 星期五 所花时间 下午&#xff1a; 3:00-5&#xff1a;00 上午&#xff1a; 8&#xff1a;00-10&#xff1a;00 下午&#xff1a; 3:00-5&#xff1a;00 下午&#xff1a; 2:30-4:30 下午&#xff1a; 4:30-5:30 下午&#xff1…

jca分析java dump日志

可以使用jca分析java dump的日志 jca:https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid2245aa39-fa5c-4475-b891-14c205f7333c 运维报说是某机房突然全部都线程阻塞了 其中锁住了tcp的socket&#xff0c;在研究无果的情况下…

shell脚本10

对于使用/bin/bash作为登录shell的系统用户,检查他们在/opt目录中拥有的子目录或文件数量,如果超过100个,则列出具体数值及对应的用户帐号.具体实现: #!/bin/bash DIR"/etc" LMT100 validusersgrep "/bin/bash" /etc/passwd|cut -d ":" -f 1 for…