写点什么

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
用户头像

关注

在校大三学生一枚 2022.08.02 加入

喜欢学习编程,擅长技术栈JAVA

评论

发布
暂无评论
Struts实现登录_Struts2_斯_InfoQ写作社区