(1)首先安装JDK(jdk-6u18-ea-bin-b01-windows-i586-20_aug_2009.exe)
安装的根目录下包含有版权声明,许可文件,README文件等。src.zip文件是构成JDK的核心API所有类的源代码的归档文件。bin目录中有JDK的可执行文件,在Windows的系统变量PATH中应当有一个指示此目录的项。
所以需要在我的电脑->属性->系统属性->高级->环境变量,如果没有PATH则新建一个,如果有则加入;c:/jdk/bin(jdk安装目录中bin)。添加好之后就可以直接在命令窗口中输入和使用JDK的可执行文件了。如 java -version 是显示JDK版本的命令。
(2)安装tomcat(apache-tomcat-6.0.13.exe)
使用的是安装版,同样也可以使用非安装版,只需要解压缩就可以。如是非安装版则启动项在bin文件夹中(startup.bat)。
使用TOMCAT还需要配置一个系统变量JAVA_HOME,其值为JDK的安装目录,如c:/jdk
安装好之后则可以通过http://localhost:8080访问了,或者http://127.0.0.1:8080
(3)安装MyEclipse(Myeclipse8.5)
没有特别说明的,按指示默认安装即可。需要在其中配置tomcat,步骤为:windows->属性(最后一项)->MyEclipse->server->tomcat 选择tomcat6.x enable 选择tomcat的安装目录如(c:/tomcat6.0)应用即可。
(4)配置struts2.0(struts2-2.2.1-all.zip)
a.新建一个web项目
b.把struts2-2.2.1-all中lib文件夹下的commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,freemarker-2.3.16.jar,javassist-3.7.ga.jar,ognl-3.0.jar,struts2-core-2.2.1.jar,xwork-core-2.2.1.jar几个包拷贝到项目中的WEB_INF/lib中
(注意:其他几个蓝色的jar包是一般情况下教程中告诉大家需要加入的jar包,但是不同的struts版本经常会出现问题,像这个版本中如果不加入javassist-3.7.ga.jar,就会出现error filterDispatcher,这个错误折腾了一下午才发现的。如果不知道自己版本的struts需要拷贝哪些jar包,大家可以参考struts文件中apps中的例子,加压缩后查看事例中lib包含了哪些jar包,直接拷贝这里的jar更方便,还防止丢包导致的错误)
c.把事例中的struts.xml直接拷贝到src中,更改其中的内容
d.编写JSP页面
制作一个简单的登陆界面:login.jsp
<body>
login. <br>
<form action="login.action" method="POST">
name:<input type="text" name="username"><br>
passwor:<input type="text" name="password"><br>
<input type="submit" value="submit">
</form>
</body>
登陆成功页面:loginOk.jsp
登陆失败页面:loginFail.jsp
添加包action在包中添加LoginAction.java这个类
package action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
private String username;//与登陆页面对应的两个属性,名称必须相同
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
//一个action类区别与普通类的关键就是execute()方法,action类中必须包含一个execute()方法,其返回值也必须是String
public String execute(){
if(username.equals("aa")&&password.equals("aa"))
return "ok";//或者return SUCCESS;
else
return "fail";
}
}
e.更改struts配置
<struts>
<package name="example" extends="struts-default">
<action name="login" class="action.LoginAction">//其中login为action的名字,每一个action都有一个对应类
<result name="ok">/loginOk.jsp</result> //视图,如果返回的结果是"ok"则跳转到 loginOk.jsp
<result name="fail">/loginFail.jsp</result>//如果返回的是"fail"则跳转到loginFail.jsp
</action>
</package>
<!-- Add packages here -->
</struts>
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>
注意:<result>的name表示action的execute()方法返回的响应字符串。如果没有指出name属性值,则默认为"success"。execute()方法有2种返回值:INPUT和SUCCESS。SUCCESS和INPUT都在
com.opensymphony.xwork2.Action接口中行径了定义,类型为String,分别用来表示输入("input")和成功("success")。