〖登录功能〗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 />
密 码:<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_江河