详细记录基于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"
".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>
测试结果: