我本不是学习javaEE的,本打算只是简单了解一下javaWeb,毕竟是企业及开发嘛,想着以后工作能用到,没想到慢慢学起来了。
好了废话不多说,我的东西也都是自己学的,ssh、ssm(看了点不是很懂,但能理解)、最近看了spring boot(感觉很不错,个人认为比之前的好学)。
介绍一下我的配置:
我用的IDE: myeclipse GA 2014(虽然集成了好多工具,但是好多jar包需要后期手动升级,比较麻烦,后期打算用eclipse)
WEB服务器:tomcat-8.5.16(这个版本至少要比8.0.45高,因为要支持Struts2)
Struts版本是:2.5.12(这个版本我也不是很清楚,可能只是为了追求新版本吧)
接下来开始 Struts2 配置的第一步:
首先要准备Struts的jar包:Struts2下载
完整jar包的下载:struts-2.5.12-all.zip(包括以下所有东西)
官方给的例程:struts-2.5.12-apps.zip (35MB)
搭建Struts2需要的最小配置:struts-2.5.12-min-lib.zip (4MB)
Struts2的所有依赖包:struts-2.5.12-lib.zip (19MB)
Struts2的DOC文档:struts-2.5.12-docs.zip (13MB)
Struts2的源码包:struts-2.5.12-src.zip (7MB)
建议新手还是下载最全的jar包,毕竟有时候需要查看一下大牛们是怎么写的代码。
这个是我下载完整包的解压结果
这个是我们需要的jar包依次是:
commons-fileupload-1.3.3.jar
commons-io-2.4.jar
commons-lang3-3.6.jar
freemarker-2.3.23.jar
javassist-3.20.0-GA.jar
log4j-api-2.8.2.jar
ognl-3.1.12.jar
struts2-core-2.5.12.jar
现在我们可以打开IDE,来创建一个Web Project了(我用的me)
file→new→Web Project
我们将刚才那个需要的jar包复制到/WEB-INF/lib目录下
选中并选择“add to build path”
即完成了导入jar包的工作
我们需要配置的文件有web.xml位于(/WEB-INF/目录下)和struts.xml(/src/目录下)
没有的话需要新建一个在该目录下进行新建
/**
************web.xml************
*这里面的filter就是要让我们的struts2起作用
*filter:是定义一个filter
*filter-name:这个是filter的名字,可以自定义
*filter-class:指定你filter的java类
*filter-mapping:定义一个filter映射
*url-pattern:指定filter过滤的条件,“*”代表全部过滤
*/
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>ssh2</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
</web-app>
/**
************struts.xml************
*!DOCTYPE:可以在struts2-core-2.5.12.jar下找到对应的*.dtd文件中复制
*package:定义一个包名,可以定义多个,但name必须唯一,namespace是访问的路径(默认值为”“),extends继承其他包(默认值:”struts-default”,继承多个父包时逗号隔开)
*action:定义一个action,name是访问的子路径(必须唯一),class是你action所对应的java类,method是java类中所对应的方法(默认值:”execute”)。
*result:是java action所对应类中定义的 方法返回的结果,result的值就是你要跳转的页面地址(也可以是action)
*/
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="hello" class="com.ssh2.web.action.HelloAction" method="say">
<result name="err">/WEB-INF/err.jsp</result>
<result name="hi">/WEB-INF/hello.jsp</result>
</action>
这是HelloAction.java的代码,他的默认值执行方法是execute方法,
这里编写的say()方法是与struts.xml中action的method相对应。
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport {
/** * */
private static final long serialVersionUID = 1L;
/** * 这个是我创建的say方法,是与 * @return String */
// @Override
// public String execute() throws Exception {
// // TODO Auto-generated method stub
// return super.execute();
// }
public String say() {
return "hi";
}
}
到这里配置就全部结束了,我们可以开始测试了!
我准备了两个jsp页面index.jsp和hello.jsp
index.jsp中添加一个a标签
${pageContext.request.contextPath} 这个是获取你当前的项目名称的el表达式
<a href="${pageContext.request.contextPath}/配置的action的name值.action">进入我的世界</a>
hello.jsp
<h1>It's my world!</h1>
启动tomcat-8.5.16,在地址中输入“http://localhost:8080/你的项目名称/ ”即可。