>_起因
这是学习Java EE课程所进行的一次实验的步骤记录。
由于指导老师使用的是Eclipse而我使用的是IntelliJ IDEA,在询问老师没有得到详细的答复之后一周,懒笔的我终于还是决定自己查自己折腾了。
>_实验环境
>_Windows 10 x64
>_IntelliJ IDEA 2020.2.4
>_Struts 2.5.30 & Tomcat 9.0.72
>_环境准备
本来我使用的是2020.1.2的版本,因为之前太新的版本已经将Java EE升级成了Jakarta EE,我又不想重新了解(主要是新特性我也用不到),所以更换成了旧版,但是2020.1.2太旧了,它的插件商店里甚至没有Struts2.。。
所以我在查了一些大佬的博客之后换成了2020.2.4的版本。
废话结束,接下来是正文。
>_Step.1 struts 2的安装:依次点击“Files” —"Settings"——"Plugins",搜索“Struts2”并点击“Install”安装。
>_Step.2 新建项目:依次点击“Files”—"New"—"Projects..",然后选择Java EE(Legacy),勾选"Web Application(4.0)"和“Struts2”。
然后在下方“Libraries”选项卡中选择“Use Library”,点击右侧“Create”按钮。选中所需的JAR包。这里使用的是Struts官网提供的2.5.30的最小包体。链接附上:
点这里获取JAR包https://resby.lanzoul.com/iVhMs0wi7jre
点击“Next”,之后更改项目名称和存放地址后,点击“Finish”。
>_项目编辑
>_ Steps.3 进行配置:首先展示一下项目目录构成:
>_Steps.3.1 对Web/WEB-INF/web.xml进行查看和修改
这里的配置一般没有问题,重点在于根据Struts2的版本不同,<filter-class>标签内的内容可能会有所区别,对于Struts2.5以上的版本,代码应当是这样的:
<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>/*</url-pattern>
</filter-mapping>
>_Steps.3.2 主要页面的编写
这部分主要是实验的简单代码编写。主要是一个登陆页面和现实登陆成功或失败的页面,共3个页面需要编写。
<%--
Login.jsp
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Login</title>
</head>
<body>
<form action="Login.action" method="post">
Please Enter Your Account: <input type="text" name="account"><br>
Please Enter Your Password: <input type="password" name="password">
<input type="submit" value="Login">
</form>
</body>
</html>
<%--
LoginFail.jsp
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>Login FAIL</h2>
<h3>Please Check Your Input And Retry</h3>
</body>
</html>
<%--
LoginSuccess.jsp
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>Login SUCCESS!</h2>
</body>
</html>
>_Steps.3.3 创建LoginAction
在src下创建新的Package,命名为Prj,在新的包中新建Java类,重命名为loginAction.java。
package Prj;
public class LoginAction {
private String account;
private String password;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute() throws Exception {
if(account.equals("losAngel") && password.equals("THEFEAST")){
return "success";
}
return "error";
}
}
>_Steps.3.4 修改Struts.xml
<package name="struts2" extends="struts-default">
<action name="Login" class="Prj.LoginAction">
<result name="success">/LoginSuccess.jsp</result>
<result name="error">/LoginFail.jsp</result>
</action>
</package>
注意这里的resultname里面的值与LoginAction.java中execute()方法内部的返回值要保持一致。
>_ Steps.4 测试项目
启动Tomcat服务器,运行Login.jsp
输入预设的账户和密码,点击Login。
错误的账号和密码会跳转至错误提示页面。
实验到这里就结束了,在实验过程中,主要的问题是有关于web.xml的编辑,因为国内无法使用IDEA提供的在线导入lib功能,因此出了一些配置问题,在查了快一个小时的资料之后解决了。
希望能给和我一样的初学者一些帮助吧。
其实实验可以用Eclipse做的,但我不习惯Eclipse,所以只好舍近求远了。
另外有关于Tomcat的配置,CSDN上的大佬们的教程有很多,我就不再赘述了。