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 基本原理及注册模块的实现的更多相关文章

  1. iOS开发一个用户登录注册模块需要解决的坑

    最近和另外一位同事负责公司登录和用户中心模块的开发工作,开发周期计划两周,减去和产品和接口的协调时间,再减去由于原型图和接口的问题,导致强迫症纠结症状高发,情绪不稳定耗费的时间,能在两周基本完成也算是 ...

  2. PHP+jQuery 注册模块的改进之二:激活链接的URL设置与有效期

    接<PHP+jQuery 注册模块的改进之一>继续修改: ①在注册成功后返回登录邮件页面( maillogin.php ),在页面中用户可以点击链接跳转到自己注册邮箱的登录页面,可以再次发 ...

  3. PHP+jQuery 注册模块开发

    /* ******* 环境: Apache2.2.8 + PHP5.2.6 + MySQL5.0.51b + jQuery-1.8.3.min.js ************** 其他组件:Zend_ ...

  4. WinForm应用程序之注册模块的设计与实现

    Posted on 2012-11-13 10:21 星星之火116 阅读(3260) 评论(4) 编辑 收藏 我们在安装一些桌面应用程序的时候,往往在会有提示当前用户使用的是试用版,要进行注册.刚好 ...

  5. TestCase--网站注册模块

    对于web测试,注册模块是必测的一个点,所以今天就来总结一下注册模块的测试用例 参考京东的注册页面 测试用例设计如下: 一.功能测试 1.  单击“免费注册”,页面是否正常跳转 2.  直接访问注册页 ...

  6. winform 发布应用程序 提示 “未能注册模块(程序路径)\ieframe.dll”

    程序安装的时候出现未能注册模块(程序路径)\ieframe.dll提示 这种情况的出现,是因为引用的shdocvw.dll,目前发现了一个折中的解决方法,在安装程序里面,可以看到ieframe.dll ...

  7. Vue-admin工作整理(十一):Vuex-动态注册模块

    概述: 动态注册模块分为两种,一种是在根state下注册一个模块,一种是在模块下再自动注册一个模块 第一种:根state下动态注册模块: 思路:通过store来实现,this.$store来获取当前的 ...

  8. visual studio 2017 installer 安装包制作过程出现的问题---无法注册模块 HRESULT -2147024769 请与您的技术支持人员联系

    使用visual studio 2017 installer制作打包程序时如果用到了外部控件需要按以下方式操作: 1.将应用程序及应用程序所用到的所有DLL拷贝到打包目录,加入打包程序之中. 2.将应 ...

  9. Java入门:用户登录与注册模块1(实践项目)——分析

    任务描述:用户登录与注册是大多数软件都拥有的一个模块.请编写一个控制台程序,实现用户的登录与注册功能,并且用户能够修改自己信息. [需求分析]由于本程序是一个演示程序,用户的信息我们做简化处理,仅包括 ...

随机推荐

  1. WebForm与MVC混用 (转)

    http://blog.csdn.net/leftfist/article/details/11591231

  2. DP小题集

    P2736 "破锣摇滚"乐队 Raucous Rockers 你刚刚继承了流行的"破锣摇滚"乐队录制的尚未发表的N(1 <= N <= 20)首歌的 ...

  3. Kibana6.x.x——导航权限控制入门

    按如下图所示设置: 用该用户登录后,界面如图所示: 但遗憾的是,根据官方论坛的说法,其它的导航隐藏控制,暂时还不支持. 参考:https://discuss.elastic.co/t/hide-ina ...

  4. day22 正则表达式 re

    1. 正则表达式 正则表达式是对字符串操作的一种逻辑公式. 我们一般使用正则表达式对字符串进行匹配和过滤. 工具: 各大文本编辑器⼀般都有正则匹配功能. 我们也可以去http://tool.china ...

  5. BeautifulSoup4模块的使用

    1. 安装 pip3 install beautifulsoup42. 使用 from bs4 import BeautifulSoup obj = BeautifulSoup("HTML内 ...

  6. 省市联动 js

    工作中见到这个省市联动代码,虽然很简单也能写出来,还是随便把它记录下来. //省市联动 function area(obj_id, area_pId, data_call_back) { ) retu ...

  7. HikariPool连接池的使用

    HikariDataSource datasource= new HikariDataSource( xxxx ); Connection cn = datasource.getConnection( ...

  8. 转 PYTHON2 编码处理-str与Unicode的区别

    https://www.cnblogs.com/long2015/p/4090824.html

  9. hashcode详解--转发

    序言 写这篇文章是因为在看hashMap源码时遇到有什么hashcode值,然后就去查,脑袋里面是有映像的,不就是在Object中有equals和hashcode方法嘛,这在学java基础的时候就遇到 ...

  10. `aclocal-1.10' is missing on your system

    root@ubuntu31:~/linux-ftools-master# makecd . && /bin/bash /root/linux-ftools-master/missing ...