【Struts2】〖登录功能〗Struts2框架实现登录功能

〖登录功能〗Struts2框架实现登录功能

    访问登录页面,如果输入的用户名为江河,并且密码为8023,则跳转至登录成功页面,并且将用户名保存在session中,否则则跳转至登录失败页面。

项目结构

在这里插入图片描述

Jsp页面

    login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>登录</title>
    </head>

    <body>
        <form action="default/login" method="post">
            用户名:<input type="text" name="user.userName" /><br />&nbsp;码:<input type="password" name="user.password" /><br />
            <input type="submit" />
        </form>
    </body>
</html>

    success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
    <head>
        <title>登录成功</title>
    </head>

    <body>
        欢迎您,${sessionScope.get("CURRENT_USER").userName}
    </body>
</html>

    fail.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>登录失败</title>
    </head>

    <body>
        用户名或密码不匹配。
    </body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <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>
</web-app>

实体类

    User类

package 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;
    }
}

Action业务控制器

    LoginAction

package action;

import com.opensymphony.xwork2.Action;
import entity.User;

public class LoginAction implements Action {
    private User user;

    public String execute() throws Exception {
        System.out.println("用户名:" + user.getUserName());
        System.out.println("密码:" + user.getPassword());
        
        if ("江河".equals(user.getUserName()) && "8023".equals(user.getPassword())) {
            / 将user对象保存在session中
            Map<String, Object> session = null;
            session = ActionContext.getContext().getSession();
            session.put("CURRENT_USER", user);
            return Action.SUCCESS;
        } else {
            return Action.ERROR;
        }
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}

struts.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <package name="default" namespace="/default" extends="struts-default">
        <action name="login" class="action.LoginAction" method="execute">
            <!--结果为字符串"success"时,跳转至登录成功页面-->
            <result name="success">/success.jsp</result>
            <!--结果为字符串"error"时,跳转至登录成功页面-->
            <result name="error">/fail.jsp</result>
        </action>
    </package>
</struts>

运行结果

    输入正确的用户名和密码
在这里插入图片描述
在这里插入图片描述
    输入错误的用户名和密码
在这里插入图片描述
在这里插入图片描述


我寻见一片海 碧蓝且耀着光
大片船只航行其上 都向着远方

                         Shared by Foriver_江河



© 1997-8023 江河 All Rights Reserved.
  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值