Struts框架实战精讲 struts1(2)- 登录案例
1 新建项目
- 拷贝 jar
web.xml
配置ActionServlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0"><display-name>LoginDemoStruts1</display-name><!-- Standard Action Servlet Configuration --><servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param><load-on-startup>2</load-on-startup></servlet><!-- Standard Action Servlet Mapping --><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><!-- The Usual Welcome File List --><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>
- 配置文件
struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN""http://struts.apache.org/dtds/struts-config_1_3.dtd"><struts-config><form-beans><form-bean name="loginForm" type="com.tzb.struts1.LoginActionForm"/></form-beans><action-mappings><action path="/login"type="com.tzb.struts1.LoginAction"name="loginForm"scope="request"><forward name="success" path="/login_success.jsp"></forward><forward name="error" path="/login_error.jsp"></forward> </action></action-mappings></struts-config>
jsp 页面
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!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>主页</title>
</head>
<body><a href="login.jsp">登录</a>
</body>
</html>
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!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>登录页面</title>
</head>
<body><form action="" method="post">用户:<input type="text" name="username"><br/>密码:<input type="password" name="password"><br/><input type="submit" value="登录"><br/></form>
</body>
</html>
- ActionForm
package com.tzb.struts1;import org.apache.struts.action.ActionForm;/*** 负责收集数据* 表单的属性必须和ActionFrom中的get\set的属性一致* @author tzb**/
@SuppressWarnings("serial")
public class LoginActionForm extends ActionForm{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;}}
- Action
package com.tzb.struts1;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;/*** 取得表单数据,调用业务逻辑,返回转向信息* * @author tzb**/
public class LoginAction extends Action {@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception {// TODO Auto-generated method stubLoginActionForm laf = (LoginActionForm) form;String username = laf.getUsername();String password = laf.getPassword();if ("admin".equals(username) && "admin".equals(password)) {// 登录成功return mapping.findForward("success");} else {return mapping.findForward("error");}}}
- 启动
1.1 程序执行流程
2 进一步划分 Action职责
- UserManager
package com.tzb.struts1;public class UserManager {public void login(String username,String password ) {if(!"admin".equals(username)) {throw new UserNotFoundException();}if(!"admin".equals(password)) {throw new PasswordErrorException();}}
}
package com.tzb.struts1;public class PasswordErrorException extends RuntimeException {}
- Action
package com.tzb.struts1;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;/*** 取得表单数据,调用业务逻辑,返回转向信息* * @author tzb**/
public class LoginAction extends Action {@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception {// LoginActionForm laf = (LoginActionForm) form;
// String username = laf.getUsername();
// String password = laf.getPassword();
// if ("admin".equals(username) && "admin".equals(password)) {// // 登录成功
// return mapping.findForward("success");
// } else {// return mapping.findForward("error");
// }LoginActionForm laf = (LoginActionForm) form;String username = laf.getUsername();String password = laf.getPassword();UserManager userManager = new UserManager();try {userManager.login(username, password);return mapping.findForward("success");} catch (UserNotFoundException e) {e.printStackTrace();request.setAttribute("msg", "找不到用户,名称=【" + username + "】");} catch (PasswordErrorException e) {e.printStackTrace();request.setAttribute("msg", "密码错误");}return mapping.findForward("error");}
}
login_error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<!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>登录失败</title>
</head>
<body><%-- <%= request.getAttribute("msg") %> --%><!-- 使用EL表达式 -->${msg}
</body>
</html>
login_success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<!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>登录成功</title>
</head>
<body>${loginForm.username}登录成功
</body>
</html>
Struts框架实战精讲 struts1(2)- 登录案例相关推荐
- 人工智能框架实战精讲:Keras项目-英文语料的DNN、Word2Vec、CNN、LSTM文本分类实战与调参优化
Keras项目-英文语料的文本分类实战 一.机器学习模型 1.1 数据简介 1.2 数据读取与预处理 1.3 数据切分与逻辑回归模型构建 二.全连接神经网络模型 2.1 模型训练 2.2 模型结果展示 ...
- 视频教程-2020最新微信小程序基础+实战精讲视频-微信开发
2020最新微信小程序基础+实战精讲视频 负责过多个软件项目的研发.设计和管理工作,拥有项目管理师认证.项目监理师中级认证.出版过的图书有<微信小程序开发图解案例教程><Axure ...
- Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲
Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台: 微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...
- 视频教程-19全新mysql教程零基础入门实战精讲mysql视频DBA数据库视频教程SQL教程-MySQL
19全新mysql教程零基础入门实战精讲mysql视频DBA数据库视频教程SQL教程 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有node/ja ...
- npm 实战精讲-曾亮-专题视频课程
npm 实战精讲-1249人已学习 课程介绍 通过 npm 命令可以安装 Node.js 第三方库,但如何正确的使用 npm 命令,如何发布自己的库,是很多童鞋的想要掌握的,这套课程会 ...
- 51单片机c语言应用开发三位一体实战精讲 pdf 119网盘,51单片机C语言应用开发三位一体实战精讲.pdf...
燎舍黪曩饔黠抽璇漩 黏 地丛书 刘波文 ∷ :著 对 向 编 策划编辑 :胡晓柏 : 正 圭 飚翻 Ξ∶ 蓝设计 寸面设计 8Π 颥曩曩罂 内容简介 51系 (SO51/ATSg)为 工程 心 全书以 ...
- Python机器学习全流程项目实战精讲(2018版)
Python机器学习全流程项目实战精讲(2018版) 网盘地址:https://pan.baidu.com/s/16SSVq74YC07M0dW1iDekPg 提取码: vu7r 备用地址(腾讯微云) ...
- 视频教程-PR教程-Premiere 2020影视剪辑实战精讲-其他
PR教程-Premiere 2020影视剪辑实战精讲 Adobe平面设计与影视剪辑专家讲师.微软Office办公软件专家讲师.资深IT图书作者/策划人/出版人.深度/终身学习研究与实践者.Python ...
- React实战精讲(React_TS/API)
英国诗人 萨松在诗歌 <与我,过去.现在以及未来>中写道:"In me the tiger sniffs the rose" 诗人余光中将其翻译为:"心有猛虎 ...
最新文章
- B2B2C网站系统建设的常见误区
- linux中cp:overwrite提示的问题
- 专车降价滴滴快车使命终结?
- 968. 监控二叉树(递归+贪心)
- Database 2 Day DBA guide_Chapter3
- 将tomcat添加到服务中
- 栈windows linux,Linux+Windows: 程序崩溃时,在 C++ 代码中,如何获取函数调用栈信息...
- 嵌入式知识概要(1)
- Java NIO编程基础
- 通过 HttpClient 下载 文件
- 2021费控报销领域最具商业合作价值企业盘点
- STM32 内核复位 与 系统复位 区别及程序实现
- 袋鼠云数据中台专栏2.0 | 数据中台之数据源
- 怎么查快递单号,查询物流状态未签收单号
- word饼图如何画引导线_excle怎么画立体饼图/如何在饼形图中添加引导线(Excel)...
- 居然有人问,软件测试算是程序员吗?
- 第九次作业(输出杨辉三角形)
- Git常规配置与用法(记录,git配置文件在系统用户文件夹下)
- java Jxl 操作Excel
- VirtualBox错误:VERR_NEM_VM_CREATE_FAILED: What do I do?