详细记录基于Struts2的登录系统

一.  开发步骤

1..在web.xml中配置核心控制器FilterDispatcher

2..设计和编写视图组件(JSP)

3..编写用来实现视图组件和业务逻辑组件JavaBean

4..编写视图组件对应的业务控制器组件Action, 在该Action中调用业务逻辑组件JavaBean, 进行业务逻辑处理

5..配置控制器Action, 即修改struts.xml, 配置逻辑视图和物理视图间的跳转关系.

二. 开发

(1). 我的工程: 下载地址

(2). 工程结构图

(3). 用myeclipse2017开发

   新建web service project工程,

   在web.xml中配置核心控制器:

<welcome-file-list>
	<welcome-file>login.jsp</welcome-file>
	</welcome-file-list>
<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>*.action</url-pattern>
</filter-mapping>

编写视图组件(JSP页面) :
  <body>
    <!-- 表单的action属性值为login.action -->
    <form method="post" action="login.action">
    用户名:<input name="userName" type="text" size="24">
    <br>
    密码:<input name="passWord" type="password" size="26">
    <br>
    <input type="submit" value="登录">
    </form>
    <hr>
    
  </body>

登录成功页面和失败页面 :

这个可以自己随便做一个, 或者使用index.jsp代替都可以

PS: 此处需要说明本人用html文件代替出错了, 不太知道为啥.


编写登录页面对应的业务逻辑组件LoginService :

package com.haha.Service;

public class LoginService {
	private String userName;
	private String passWord;
	//从xml表里get和set
	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;
	}
	
	//处理用户登录的方法
	public boolean login(String userName, String passWord)
	{
		boolean b=false;
		if(userName.equals("zhao")&&passWord.equals("123456"))
		{
			b=true;
			return b;		
		}
		else{
			b=false;
			return b;
		}
	}

}

编写业务控制器Action :
package com.haha.Action;

import com.haha.Service.LoginService;

public class LoginAction {

	private String userName;
	private String passWord;
	//从LoginBean里get和set
	public String getUserNmae() {
		return userName;
	}

	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;
	}
	//return到Struts.xml配置文件中, 再由Struts.xml配置跳转页面
	public String execute() throws Exception{
		LoginService ls=new LoginService();
		if(ls.login(userName, passWord))
		{
			return "success";
			
		}
		else{
			return "error";
		}
	}
}

在Struts.xml中配置Action :

ps: 请别忘记导入Struts2.1包.

<action name="login" class="com.haha.Action.LoginAction">
此句很重要 !!!!!!!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"  
"http://struts.apache.org/dtds/struts-2.1.dtd">  
<struts>
	<package name="jsp" extends="struts-default">
		<action name="login" class="com.haha.Action.LoginAction">
			<result name="error" >/jsp/login.jsp</result>
			<result name="success" >/jsp/success.jsp</result>
		</action>
	</package>
</struts>

测试结果:



猜你喜欢

转载自blog.csdn.net/qq_37832932/article/details/80038638