【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
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,您想了解关于Struts2和Hibernate框架技术实现登录界面。这里提供一个简单的示例代码,供您参考。 首先需要搭建好Struts2和Hibernate的开发环境,然后创建一个登录页面login.jsp,包含用户名和密码输入框以及登录按钮。 login.jsp代码: ```html <html> <head> <title>Login Page</title> </head> <body> <h2>Login Page</h2> <form action="login" method="post"> <label>Username:</label> <input type="text" name="username" /> <br/><br/> <label>Password:</label> <input type="password" name="password" /> <br/><br/> <input type="submit" value="Login" /> </form> </body> </html> ``` 然后创建一个Action类LoginAction,用于处理登录请求。 LoginAction代码: ```java package com.example.action; import com.example.dao.UserDao; import com.example.entity.User; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private String username; private String password; public String execute() { UserDao userDao = new UserDao(); User user = userDao.findUserByUsernameAndPassword(username, password); if (user != null) { return SUCCESS; } else { return ERROR; } } // getters and setters } ``` 上述代码中,我们使用了一个UserDao类来访问数据库,根据输入的用户名和密码查询是否有匹配的用户。 UserDao代码: ```java package com.example.dao; import com.example.entity.User; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public class UserDao { private SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); public User findUserByUsernameAndPassword(String username, String password) { Session session = sessionFactory.openSession(); Transaction tx = null; User user = null; try { tx = session.beginTransaction(); user = (User) session.createQuery("from User where username = :username and password = :password") .setParameter("username", username) .setParameter("password", password) .uniqueResult(); tx.commit(); } catch (Exception e) { if (tx != null) { tx.rollback(); } } finally { session.close(); } return user; } } ``` 在上述代码中,我们使用Hibernate框架来访问数据库,根据输入的用户名和密码查询是否有匹配的用户。 最后,我们需要在struts.xml文件中配置LoginAction,使得访问/login路径时可以调用LoginAction的execute方法。 struts.xml配置代码: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <package name="default" extends="struts-default"> <action name="login" class="com.example.action.LoginAction" method="execute"> <result name="success">welcome.jsp</result> <result name="error">login.jsp</result> </action> </package> </struts> ``` 在上述代码中,我们定义了一个名为login的action,它会调用LoginAction的execute方法。如果登录成功,将跳转到welcome.jsp页面,否则将继续显示login.jsp页面。 这就是一个简单的使用Struts2和Hibernate框架技术实现登录界面的示例代码。希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值