使用struts2框架搭建简单的登陆功能

三个页面:login.jsp        error.jsp      welcome.jsp

login.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!-- 引用struts2的标签库 -->
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><s:text name="loginPage" /></title>
</head>
<body>
	<s:form action="login">
		<s:textfield name="username" key="user" />
		<s:textfield name="password" key="pass"></s:textfield>
		<s:submit key="login"/>
	</s:form>
</body>
</html>

由于表单指定的action为login,所以我们还要自己定义一个处理类。

LoginAction.java

package sadhu;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
	private String username;
	private String password;
	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;
	}
	//定义处理用于请求的execute方法
	public String execute() throws Exception
	{
		//当username为sadhu,password为sadhu时即登陆成功
		System.out.println(getPassword());
		if(getUsername().equals("sadhu") && getPassword().equals("sadhu"))
		{
			ActionContext.getContext().getSession().put("user",getUsername());
			return SUCCESS;
		}
		else
		{
			return ERROR;
		}
	}
}

Struts 2的Action通常都应该继承ActionSupport基类。

写了之后还要在struts.xml中进行配置。在struts.xml中增加配置

<!-- 所有的Action定义都应该放在package下 -->
	<package name="frank" extends="struts-default">
		<action name="login" class="sadhu.LoginAction">
			<!-- 定义三个逻辑视图和物理资源之间的映射 -->
			<result name="input">/login.jsp</result>
			<result name="error">/error.jsp</result>
			<result name="success">/welcome.jsp</result>
		</action>
	</package>

当配置完后重新运行就可以看到效果了。

使用struts2框架搭建简单的登陆功能

你可能感兴趣的:(使用struts2框架搭建简单的登陆功能)