Struts 实现登录
作者:斯
- 2022 年 9 月 24 日 河南
本文字数:1766 字
阅读完需:约 6 分钟
思路
1.首先创建一个项目,名为 StrutsTest
2.创建一个包存放 Struts,创建类,命名为 LoginAction.java
3.在该包下,创建一个 xml 文件,名为 struts.xml
4.把 jar 包导入 lib 目录下
5.在 web.xml 中配置过滤器
6.创建一个实体类 User,其中的属性值与 form 表单提交的数据保持一致
7.关键代码如下:
实现
目录结构如下:
1、LoginAction.java action 类
package sqgxy.xmp.action;
import com.opensymphony.xwork2.Action;import com.opensymphony.xwork2.ActionContext;import sqgxy.xmp.entity.User;
import java.util.Map;
public class LoginAction implements Action { //ActionSupport类
private User user; //entity实体层的User
public String execute() throws Exception { //每次访问Action,默认执行execute()方法。
System.out.println("用户名:" + user.getUserName());
System.out.println("密码:" + user.getPassword());
/**
* 简单的登录判断
*/
if ("熊民普".equals(user.getUserName()) && "xmp".equals(user.getPassword())) {
// 将user对象保存在session中
Map<String, Object> session = null;
session = ActionContext.getContext().getSession();
session.put("CURRENT_USER", user);
return Action.SUCCESS; //返回字符串SUCCESS,为struts.xml跳转做准备。
} else {
return Action.ERROR;
}
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
复制代码
2、User.java 实体类
package sqgxy.xmp.entity;
public class User {private String userName;private String password;
public User() {
}
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;
}
}
复制代码
3、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>
<package name="default" namespace="/default" extends="struts-default">
<action name="login" class="sqgxy.xmp.action.LoginAction" method="execute">
<!--结果为字符串"success"时,跳转至登录成功页面-->
<result name="success">/success.jsp</result>
<!--结果为字符串"error"时,跳转至登录成功页面-->
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
复制代码
页面代码如下:
4、登录页面
<%--Created by IntelliJ IDEA.User: xmpDate: 2022/9/13Time: 9:04To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>登录</title></head><body>
<body>
<form action="default/login" method="post">
用户名:<input type="text" name="user.userName" /><br />
密 码:<input type="password" name="user.password" /><br />
<input type="submit" />
</form>
</body>
</html>
复制代码
5、Error 页面
<%--Created by IntelliJ IDEA.User: xmpDate: 2022/9/13Time: 9:05To change this template use File | Settings | File Templates.--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>登录失败</title>
</head>
<body>
<h2 style="color: red">用户名或密码不匹配。</h2>
</body>
</html>
复制代码
6、Success 页面
<%--Created by IntelliJ IDEA.User: xmpDate: 2022/9/13Time: 9:04To change this template use File | Settings | File Templates.--%>
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<html>
<head>
<title>登录成功</title>
</head>
<body>
欢迎您,${sessionScope.get("CURRENT_USER").userName}
</body>
</html>
复制代码
结果
1.登录界面:
2.登录失败界面:
3.登录成功界面:
划线
评论
复制
发布于: 刚刚阅读数: 2
版权声明: 本文为 InfoQ 作者【斯】的原创文章。
原文链接:【http://xie.infoq.cn/article/089a0c402fec672e672adb46d】。文章转载请联系作者。
斯
关注
在校大三学生一枚 2022.08.02 加入
喜欢学习编程,擅长技术栈JAVA
评论