从零开始的java+Eclipse+Struts+Tomcat+MySQL配置攻略

虽然网上已经有很多“靠谱”攻略,但是到搞出一个HelloWorld还是花了好大功夫(同一个软件不同的版本配置方式还是不一样的(深刻体会),而我又想尽量用最新版),踩了不少坑。趁热记一下配置步骤。

安装环境:

Win10
Java v1.8.0_131
Eclipse Java EE IDE for Web Developers, Version: Oxygen Release (4.7.0)
Struts2 v2.5.13
Tomcat v9.0
MySQL v5.7.19

第一步:安装Eclipse

大家的电脑上可能已经有Eclipse了,但是经验表明下载一个最新版的IDE总是可以省掉你很多事。
我之前用的 EclipseFor普通玩家 在环境配置里只能看到Tomcat8.0,在装了 EclipseFor企业玩家 (Java EE)后就可以直接看到Tomcat9.0,很方便。所以推荐装一个Eclipse Java EE IDE。

打开Eclipse的时候会让你选择workspace,这一个workspace里的项目用的是一套环境配置。接下来会在workspace里配置Tomcat。

第二步:安装Tomcat

2.1 下载解压测试Tomcat

Tomcat是一个开源的应用服务器,类似于Apache,优势在于处理动态网页。可以直接去官网下载。我下的是Tomcat9 64-bit Windows zip。下载之后解压在你知道的地方。

尝试运行 解压根目录\bin\startup.bat,然后在浏览器里访问 localhost:8080,应该能看见Tomcat的测试网页。

2.2 在Eclipse中引入Tomcat

在Eclipse你正在使用的workspace中,Window->Preferences->Server->Runtime Environments,点Add,选择Apache Tomcat v9.0,点next,然后Browse到你刚刚解压Tomcat的地址,jre选你的版本,点Finish。这时Tomcat就引入成功了。可以随手Window->Show View->Servers,这样就可以在下面console旁边看到server的内容了。

第三步:安装配置Struts2

3.1 建立maven-web项目

用maven可以很方便的帮你下载安装各种依赖项,所以我打算用maven来装struts,这样就不用自己下那些jar包了。但还是建议你去下一个struts,下那个Full的,后面配置的时候会用到。我下的是struts-2.5.13-all.zip

根据某大爷的指点,我们先建立一个Dynamic Web Project。可以在File->New->Dynamic Web Project,也可以直接在欢迎页面戳

然后你就会获得一个这样的架构。

接下来 右击项目->Configure->Convert to Maven Project。这样你的project就变成了Maven Project了。

3.2 安装Struts2

Maven可以通过添加Dependency来安装依赖包。在pom.xml里添加

或者 右击项目->Maven->Add Dependency

感兴趣的同学可以去查一下Dependencies和Dependency Management的区别。

这样就设置好了依赖。然后 右击项目->Run As->Maven install。过一会,如果正常你的项目里就会安装好以下jar包:

注意到log4j只有api的包,运行会报错,建议用同样的方法再安装log4j-core,版本号和api的那个一样。然后配置一下log4j。在Java Resources/src/ 下新建log4j2.xml,填入

3.3 配置struts的一个小技巧

现在到了我们刚刚下的那个60多MB的Struts2 Full发挥作用的时候了。

解压完之后在 struts-2.5.13\apps 下面是官方提供的一些example,是一些打包后的war文件,可以import到你的Eclipse workspace中,看别人的博客里的什么配置代码在他的版本实用但是在你的版本可能根本不适用,例如这个

别人用的可能是2.3,而我是2.5,没注意到就很尴尬。而在你的struts版本对应的example里就不用担心,一顿复制就很爽。

3.4 配置文件与HelloWorld

即使如此我还是要给一下我的配置代码,至少说一下要配置那些文件。

web.xml

在WebContent\WEB-INF\ 下有一个web.xml,我们要在这里设置欢迎页,和filter。

 

<welcome-file>项是告诉Tomcat默认欢迎页是什么,如果你想用index系列和default系列以外的可以加在这里。

下面的<filter-name>struts2</filter-name>那些是告诉Tomcat我们用的struts。

HelloWorld.jsp

在 WebContent\ 下新建 HelloWorld.jsp,填入

记住这个<s:property value=“name” />,到时候会变成你的名字。

index.jsp

在 WebContent\ 下新建 index.jsp,作为默认欢迎页,填入

记住我们在这里写了一个<form action=”hello”>,名为hello的action。

HelloWorld.java

在 Java Resources/src/ 下新建HelloWorld.java,填入

放在helloworld的package下。用来获取和保存名字。

struts.xml

最关键的struts.xml,在Java Resources/src/ 下新建struts.xml,填入

我对struts.xml的一些理解:

<include file=”struts-default.xml” />和extends=”struts-default”是一般要做的事情。接下来是说在package helloworld下,我们有一个名为hello的action,它和方法helloworld.HelloWorld绑定起来,结果运行HelloWorld.jsp。

大概流程就是:index.jsp里的action=”hello”和struts.xml里的action name=”hello”是联系起来的,index告诉struts有action,struts调用HelloWorld.java,HelloWorld.java拿到名字字符串,返回SUCESS,回struts调用HelloWorld.jsp,HelloWorld.jsp拿到HelloWorld.java的名字字符串,显示HelloWorld,name。

最后你的项目应该是这个结构:

3.5 运行测试

右击项目->Run As->Run on Server,效果如下:

运行的时候下面的console会有些红字,大部分是信息,可能会有一个warning:警告: [SetContextPropertiesRule]{Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:SE2-booklib’ did not find a matching property. 这个无伤大雅,可以无视。

第四步:MySQL配置

4.1 下载安装MySQL

下载MySQL 5.7 installerJDBC驱动包,MySQL下下来应该是一个windows用的msi安装包,先装上。

解压JDBC驱动包(如果他是zip的话),会得到一个jar包:mysql-connector-java-5.1.44-bin.jar

4.2 测试MySQL

按下图所示建一个数据库用作后面的连接测试。

4.3 把驱动引入Eclipse

右键项目->Build Path->Configure Build Path->add External JARS加入驱动包。

注意:引入驱动包后java app已经可以连接数据库了,但是在Tomcat里跑java web的时候会提示没有这个Driver,解决方法是把这个包往Tomcat的lib或者WebContent/WEB-INF的lib下面再丢一个就好了。(配置云端服务器的时候也不要忘了)

然后Winidow->Preferences->Data Management->Connectivity->Driver Definitions->Add

这部直接把默认的那个找不到的包edit成你刚刚解压出来的jdbc的jar。

这里随手填一下你在安装MySQL时候填的账户密码数据库什么的。

4.4 数据库可视化

Window->Show View->Data Source Explorer,然后你就可以在下面看到你的数据库信息了。

到此配置完毕。

在java语言中使用Graphviz画图

 上图是使用Graphviz画图的一个示例,它是由以下dot脚本生成的。

如果你没有graphviz请去http://www.graphviz.org/下载(windows在添加环境变量后要restart才能生效),或者到网页版体验一下。

编写你的脚本保存成文件,例如graph.gv。然后在当前路径下运行命令行,使用最基本的dot命令:dot 脚本路径 -格式 -o 生成图片路径

这样会生成一个img.png图片像上图一样,graphviz还有很多其他布局可以自己尝试。

dot语言

dot是一种很方便的描述语言,上面表示一个有向图的dot脚本简单分成3大部分:

①框框,表示构造一个有向图。

②顶点,(其实不写顶点A,B直接加边A->B会默认自动生成A,B顶点)。

一般格式是:顶点名称 [属性=值, 属性=值, ……] [属性=值, ……]

一个顶点后面的属性都默认描述这个顶点,边同理,顶点名称会默认作为显示的标签,如果加了label=… 则显示时会显示label。

后面属性说明会覆盖全局的属性说明。

③边,边的一般格式是:起点->终点 [属性=值, ……] []

属性格式基本和顶点一样,可以重边,自环。

上图的脚本中只展示了样式,填充颜色,线条加粗几个属性,还有很多属性例如修改形状,对齐方案等等可以去看官方文档

java中调用graphviz

下面讲怎么用java简单地调用graphviz画图。(当然也可以去找别人写好的工具,例如graphviz-java

第一步我们要生成一个dot脚本

准备好图后我们要按顺序把图的信息写到字符串里再写到文件里。

第二步调用graphviz生成图片

用java调用命令行的方式来执行dot命令。(在linux里是调用bash)。

java中可以用Runtime来执行命令,一般用法:

也可以写一行:

然后就可以去指定位置收集生成的图片了,也可以顺便用命令行执行mspaint img.png 展示出来。

上面的完整代码可见软工实验一 WordGraph/ShowGraph.java