Struts1.x 基本原理及注册模块的实现
1、编写JavaBean:User,必须继承于ActionForm类
package myuser;
import org.apache.struts.action.ActionForm;
public class User extends ActionForm{
//不加这个 eclipse 有警告
private static final long serialVersionUID = 5599822869891501922L;
private Integer id;
private String userName;
private String pwd;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
2、在struts-config.xml中注册User的对象user
FormBean的概念,顾名思义,Form中的bean,表单中的数据,在Struts1.x由专门的ActionForm类负责接收,配置在 struts-config.xml中
<form-beans>
<form-bean name="user" type="myuser.User"/>
</form-beans>
一些反复编写的,没有任何技术含量的代码,都有框架来实现,比如:
User user = new User();
getParameter 等。
FormBean的作用,为操作(action)提供数据。
3、编写UserDao类的方法 addUser(User user)
public void addUser(User user){
String sql = "insert into users(userName,pwd) values(?,?)";
//获取连接
Connection conn = DBLib.getConn();
//创建数据库操作对象
PreparedStatement pstmt;
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user.getUserName());
pstmt.setString(2, user.getPwd());
//执行数据库操作
pstmt.execute();
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
} finally{
try {
//关闭数据库连接
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
4、编写AddUserAction,调用UserDAO类中的addUser方法,添加用户,此类必须继承于Action。
package action; 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; import dao.UserDAO;
import myuser.User; public class AddUserAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
User user = (User)form;
UserDAO dao = new UserDAO();
dao.addUser(user);
return mapping.findForward("list");//跳转到userlist.jsp页面
} }
5、配置AddUserAction, path,name,scope,forward,添加成功后转向userlist.jsp
<?xml version="1.0" encoding="UTF-8"?> <!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="user" type="myuser.User"/>
</form-beans> <action-mappings>
<action path="/addUser" type="action.AddUserAction" name="user">
<forward name="list" path="/userlist.jsp" />
</action>
</action-mappings>
</struts-config>
配置说明:
form-beans:用来放置多个formbean
from-bean:单个的formbean
| name:from-bean的名字,用于下面action标签的引用
| type:所对应的类,该类一定要继承 ActionForm
action-mappings:用来放置多个action
action:单个的action
| path:通过*.do(一般是,这要看web.xml url-pattern的配置)过滤后的路径名称,必须加"/"
| type:所对应的类,该类一定要继承 Action(或者其子类,后面会有例子)
| name:form-beans中的某个form-bean
| scope:该formbean的有效范围,两个值:request、session
| attribute:formbean在该有效范围中的名字,如果没有设置该属性默认就是name的值,一般不用设置该属性
forward:action 处理完成之后跳转到哪个页面
| name:给action中的 mapping.findForward(name) 用的
| path:页面路径,以前一定要加"/"
5、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>Insert title here</title>
</head>
<body>
用户注册<br/> <form method="post" action="addUser.do">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="userName"/></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="pwd"/></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="提 交"/>
</td>
</tr>
</table>
</form>
<div id="msg"></div>
<br/>
<br/>
<a href="main.jsp">返回主页面</a>
</body>
</html>
代码链接:http://pan.baidu.com/s/1qY4PEOW 提取码:gy0n
Struts1.x 基本原理及注册模块的实现的更多相关文章
- iOS开发一个用户登录注册模块需要解决的坑
最近和另外一位同事负责公司登录和用户中心模块的开发工作,开发周期计划两周,减去和产品和接口的协调时间,再减去由于原型图和接口的问题,导致强迫症纠结症状高发,情绪不稳定耗费的时间,能在两周基本完成也算是 ...
- PHP+jQuery 注册模块的改进之二:激活链接的URL设置与有效期
接<PHP+jQuery 注册模块的改进之一>继续修改: ①在注册成功后返回登录邮件页面( maillogin.php ),在页面中用户可以点击链接跳转到自己注册邮箱的登录页面,可以再次发 ...
- PHP+jQuery 注册模块开发
/* ******* 环境: Apache2.2.8 + PHP5.2.6 + MySQL5.0.51b + jQuery-1.8.3.min.js ************** 其他组件:Zend_ ...
- WinForm应用程序之注册模块的设计与实现
Posted on 2012-11-13 10:21 星星之火116 阅读(3260) 评论(4) 编辑 收藏 我们在安装一些桌面应用程序的时候,往往在会有提示当前用户使用的是试用版,要进行注册.刚好 ...
- TestCase--网站注册模块
对于web测试,注册模块是必测的一个点,所以今天就来总结一下注册模块的测试用例 参考京东的注册页面 测试用例设计如下: 一.功能测试 1. 单击“免费注册”,页面是否正常跳转 2. 直接访问注册页 ...
- winform 发布应用程序 提示 “未能注册模块(程序路径)\ieframe.dll”
程序安装的时候出现未能注册模块(程序路径)\ieframe.dll提示 这种情况的出现,是因为引用的shdocvw.dll,目前发现了一个折中的解决方法,在安装程序里面,可以看到ieframe.dll ...
- Vue-admin工作整理(十一):Vuex-动态注册模块
概述: 动态注册模块分为两种,一种是在根state下注册一个模块,一种是在模块下再自动注册一个模块 第一种:根state下动态注册模块: 思路:通过store来实现,this.$store来获取当前的 ...
- visual studio 2017 installer 安装包制作过程出现的问题---无法注册模块 HRESULT -2147024769 请与您的技术支持人员联系
使用visual studio 2017 installer制作打包程序时如果用到了外部控件需要按以下方式操作: 1.将应用程序及应用程序所用到的所有DLL拷贝到打包目录,加入打包程序之中. 2.将应 ...
- Java入门:用户登录与注册模块1(实践项目)——分析
任务描述:用户登录与注册是大多数软件都拥有的一个模块.请编写一个控制台程序,实现用户的登录与注册功能,并且用户能够修改自己信息. [需求分析]由于本程序是一个演示程序,用户的信息我们做简化处理,仅包括 ...
随机推荐
- Arch下systemd无法开机执行rc.local之解决方法
早就发现了,Arch的systemd提供的那个 rc-local.service 貌似有问题,rc.local不会执行.因为没用rc.local,一直没管. 解决方法源自这里,需要稍加改动: http ...
- Redis学习笔记(5)—— Redis的持久化方案&Redis的集群搭建
一.Redis的持久化方案 Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化. Redis支持两种 ...
- node.js 服务器
http-server 是一个简单的零配置命令行HTTP服务器, 基于 nodeJs. 如果你不想重复的写 nodeJs 的 web-server.js, 则可以使用这个. 安装 (全局安装加 -g) ...
- java 中 静态泛型方法书写
public class SpringBean { /** * */ public static <T> T getBean(Class<T> clazz,String nam ...
- js 联动下拉菜单
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Gym - 101572E Emptying the Baltic bfs加剪枝
题目传送门 题目大意:给出一幅海洋的描述,0为海平面,负数即有水,在给出的xy坐标的底部安放抽水机,问最多能有多少水.水往低处流,且八个方向都可以. 思路:bfs,记录到每一个节点有效的最低海平面,然 ...
- 主席树的各类模板(区间第k大数【动,静】,区间不同数的个数,区间<=k的个数)
取板粗 好东西来的 1.(HDOJ2665)http://acm.hdu.edu.cn/showproblem.php?pid=2665 (POJ2104)http://poj.org/probl ...
- 对bootstrap模态框的小尝试
bootstrap中有一个“模态框”插件,我理解的意思就是一个具有全局遮罩的弹窗提示,官方解释是:模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗 ...
- 5月 28日css前端知识
a:link {color : #FF0000} #未访问连接时设置颜色 a:visited {color: #FF0000} #访问过得连接设置颜色 a:hover {color: #F ...
- FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
官网:http://ffmpeg.org 一.FFmpeg安装 安装依赖包: yum install libtheora-devel libvorbis-devel 1 FFmpeg编译安装: 由于系 ...