本实例实现用userreg.jsp页面中的表单提交注册请求,把注册信息提交给regservlet写入数据库并且查询新用户显示出来。

一、准备工作。

1.jdbc数据驱动开发包mysql-connector-java-5.1.26-bin.jar,拷贝并放置在WEB-INF下的lib中。

2.创建数据库user.

3.创建Web Project工程。

二、新建页面userreg.jsp.

1

2

3

4

5

6

7

我的userreg.jsp页面

8

9

10

11

12

13

14

用户名:

15

密码:

16

验证密码:

17

邮箱:

18

19

20

21

22

23

24

25 varpassword=document.getElementById("password");26 varconfirm=document.getElementById("confirm");27 /*验证两次输入的密码是否一致*/

28 functioncheck(){29 if(password.value!=confirm.value){30 alert("两次输入密码不一致,请检查后重新输入");31 password.value="";32 confirm.value="";33 password.focus();34 }else{35 document.forms[0].submit();36 }37 }38

39

40

View Code

javascript中的代码函数用于在点击"注册"后验证两次的密码输入是否一致。至于"清空"按钮事件响应可以参考以上代码添加。

三、创建注册用户数据封装类regedUser.

1 packagecom.kaly.data;2

3 public classregedUser {4 private int ID;//用户ID

5 private String name;//用户名

6 private String nickName;//用户昵称

7 private String email;//电子邮箱

8

9 publicregedUser() {10

11 }12

13 public regedUser(intiD, String name, String nickName, String email) {14 super();15 ID =iD;16 this.name =name;17 this.nickName =nickName;18 this.email =email;19 }20

21 public void setUserData(intiD, String name, String nickName, String email) {22 ID =iD;23 this.name =name;24 this.nickName =nickName;25 this.email =email;26 }27

28 public intgetID() {29 returnID;30 }31

32 public void setID(intiD) {33 ID =iD;34 }35

36 publicString getName() {37 returnname;38 }39

40 public voidsetName(String name) {41 this.name =name;42 }43

44 publicString getNickName() {45 returnnickName;46 }47

48 public voidsetNickName(String nickName) {49 this.nickName =nickName;50 }51

52 publicString getEmail() {53 returnemail;54 }55

56 public voidsetEmail(String email) {57 this.email =email;58 }59

60 @Override61 publicString toString() {62 return "regedUser [ID=" + ID + ", name=" + name + ", nickName="

63 + nickName + ", email=" + email + "]";64 }65

66 }

View Code

四、创建数据库连接工具类GetData.

1 packagecom.kaly.data;2

3 importjava.sql.Connection;4 importjava.sql.DriverManager;5 importjava.sql.SQLException;6

7 public classGetData {8 //jdbc驱动类名

9 String driverStr="com.mysql.jdbc.Driver";10 //数据库url

11 String dataStr="jdbc:mysql://192.168.2.100:3306/userinfo";12 //访问数据库的用户名

13 String username="root";14 //访问数据库的密码

15 String password="admin";16 //数据库连接对象

17 privateConnection conn;18 //构造方法

19 publicGetData(){20 try{21 //加载驱动类

22 Class.forName(driverStr);23 } catch(ClassNotFoundException e) {24 e.printStackTrace();25 }26 }27 //获得数据库连接对象的方法

28 publicConnection getConnection(){29

30 try{31 conn =(Connection) DriverManager.getConnection(dataStr,username,password);32 } catch(SQLException e) {33 e.printStackTrace();34 }35 returnconn;36 }37 //关闭数据库连接

38 public voidclose(){39 if (conn!=null) {40 try{41 conn.close();42 } catch(SQLException e) {43 e.printStackTrace();44 }45 }46 }47 }

View Code

五、创建Servlet处理类regservlet.使用模版创建。

1 packagecom.kaly.servlet;2

3 importjava.io.IOException;4 importjava.io.PrintWriter;5 importjava.sql.Connection;6 importjava.sql.PreparedStatement;7 importjava.sql.ResultSet;8 importjava.sql.SQLException;9

10 importjavax.servlet.ServletException;11 importjavax.servlet.http.HttpServlet;12 importjavax.servlet.http.HttpServletRequest;13 importjavax.servlet.http.HttpServletResponse;14

15 importcom.kaly.data.GetData;16 importcom.kaly.data.regedUser;17

18 public class regservlet extendsHttpServlet {19

20 public voiddoGet(HttpServletRequest request, HttpServletResponse response)21 throwsServletException, IOException {22 doPost(request, response);23 }24

25 public voiddoPost(HttpServletRequest request, HttpServletResponse response)26 throwsServletException, IOException {27 request.setCharacterEncoding("utf-8");28 response.setCharacterEncoding("utf-8");29 response.setContentType("text/html);charset=utf-8");30 //上面这一句解决在使用PrintWriter输出信息时的中文乱码问题31 //获取表单请求的注册信息

32 String regName=request.getParameter("name");33 String regPwd=request.getParameter("password");34 String regEmail=request.getParameter("email");35

36 GetData data=new GetData();//实例化GetData对象

37 Connection connection=data.getConnection();//从data获得数据库连接对象

38 regedUser user=new regedUser();//创建用户数据封装对象

39 ResultSet rs;40 //下面用来把注册信息添加到数据表

41 try{42 PreparedStatement pStatement=connection.prepareStatement("insert into user(username,password,nickname,info) values(?,?,?,?)");43 pStatement.setString(1, regName);44 pStatement.setString(2, regPwd);45 pStatement.setString(3, "新用户"+regName);//随机生成一个昵称,可以用专用的程序进行修改

46 pStatement.setString(4, regEmail);//没有更改数据库,所以把email写入到info字段

47 pStatement.executeUpdate();//这里和查询时不一样

48 pStatement.close();49 } catch(SQLException e) {50 e.printStackTrace();51 }52 //下面用来将刚注册的用户数据封装起来用于显示

53 try{54 PreparedStatement pStatement=connection.prepareStatement("select * from user where username=?");55 pStatement.setString(1, regName);56 rs=pStatement.executeQuery();57 while(rs.next()){58 user.setUserData(rs.getInt(1), rs.getString(2), rs.getString(4), rs.getString(5));59 }60 } catch(SQLException e) {61 e.printStackTrace();62 }63 data.close();64 //用PrintWriter显示注册信息

65 PrintWriter pw=response.getWriter();66 pw.print("注册用户ID为:"+user.getID()+"
");67 pw.print("注册用户名为:"+user.getName()+"
");68 pw.print("用户昵称是:"+user.getNickName()+"
");69 pw.print("用户邮箱地址:"+user.getEmail()+"
");70 pw.flush();71 pw.close();72 }73

74 }

View Code

六、修改web.xml.

多次证明,模版自动生成的web.xml配置文件中,关于servlet的节点不正确,应该按照代码中修改一下。

1 <?xml version="1.0" encoding="UTF-8"?>

2

3 xmlns="http://java.sun.com/xml/ns/javaee"

4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

6

7 This is the description of my J2EE component

8 This is the display name of my J2EE component

9 loginserv

10 com.kaly.servlet.loginserv

11

12

13 This is the description of my J2EE component

14 This is the display name of my J2EE component

15 regservlet

16 com.kaly.servlet.regservlet

17

18

19

20

21 loginserv

22 /loginserv

23

24

25 regservlet

26 /regservlet

27

28

29

View Code

七、一切就绪,重启服务,加载页面。

在这里为了测试方便,没有使用密码框,可以改过来。

现在输入新的信息,把两次的密码填写不一致。

点击"注册"后会弹出提示。

点击确定后两个密码输入框会被清空,光标置于密码框内,要求重新输入。我们重新输入两个一样的密码之后,再点击"注册"。会跳转到信息显示页面。

实际上这个页面现实的内容是添加完注册信息之后又从数据库中查询得到的。便于我们实现在用户注册之后立即自动登录。

八、查看此时的数据库user。

最后一条就是我们刚刚注册添加的用户数据。

九、整个项目的结构是这样的。

servlet mysql 小程序_Servlet页面注册用户的小程序(一)相关推荐

  1. 【java毕业设计】基于javaEE+原生Servlet+MySql的企业财务管理系统设计与实现(毕业论文+程序源码)——企业财务管理系统

    基于javaEE+原生Servlet+MySql的企业财务管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的企业财务管理系统设计与实现, ...

  2. 【java毕业设计】基于javaEE+原生Servlet+MySql的网络考试系统设计与实现(毕业论文+程序源码)——网络考试系统

    基于javaEE+原生Servlet+MySql的网络考试系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+MySql的网络考试系统设计与实现,文章末尾 ...

  3. 微信小程序更新版本,提醒用户重新进入程序

    微信小程序更新版本,提醒用户重新进入程序 uni-app写在App.vue onLaunch: function () {console.log("App Launch");// ...

  4. 微信小程序之程序、页面注册及生命周期

    程序注册 App() App() 函数用来注册一个小程序.接受一个 object 参数,其指定小程序的生命周期函数等. object参数说明: 前台.后台定义: 当用户点击左上角关闭,或者按了设备 H ...

  5. Servlet+MySQL使用DBCP数据库连接池实现用户登录

    首先准备数据库数据和登录页面 创建user数据表并且插入几条数据 DROP TABLE IF EXISTS `user`; CREATE TABLE `user` (`id` int(11) NOT ...

  6. 微信小程序webview页面不刷新,webview缓存页面不刷新,小程序webview页面不刷新,小程序webview地址追加参数页面还是缓存,解决办法

    项目需求,在微信小程序首页的 banner 图,打开公司官网,这个功能很好实现,就是专门整个 webview 组件所在页面,以后凡是有这种需求的都跳转到这个页面,只需要切换不同的路由地址就行了,可是最 ...

  7. 【微信小程序宝典】从零开始做微信小程序开发NO.2

    2019独角兽企业重金招聘Python工程师标准>>> 为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习: 首先感谢几位给予建议的同学, ...

  8. 微信小程序页面栈_微信小程序之页面传值(路由、页面栈、globalData、缓存)

    1. 通过url带参数传递 1.1 固定参数传递 例如,从 list 页面到 detail 页面, 传递一个或多个固定值 list页面传值: 点此进入 detail detail页面取值: onLoa ...

  9. 小程序指定页面二维码生成

    小程序生成指定页面二维码 小程序生成海报分享传播,需要生成分享页面的二维码,用户扫描这个二维码即可进入分享的这个小程序页面,对于分享者更具有指向性:也可生成"太阳码"参阅太阳码生成 ...

  10. 小程序返回上一页_智能小程序档案馆手把手教你成为小程序流量头号玩家(上)...

    百度智能小程序为开发者提供了全面开放的自然搜索接入能力 为了让开发者们接入得又快又好,我们准备了详细说明给大家了解~ 首先我们了解一个问题:什么是小程序接入自然搜索? 通过接入百度搜索生态,在百度 A ...

最新文章

  1. linux中vi大括号enter缩进,格式 – 如何在vi中对齐代码(大括号,括号等)?
  2. 计算机网络同步技术,计算机网络同步技术
  3. 硅谷企业的大数据平台架构什么样?看看Twitter、Airbnb、Uber的实践
  4. Filecoin网络目前总质押量约为2930万枚FIL
  5. 解决Vscode编辑器不能打开多标签页问题
  6. 远程计算机关机了怎么办,远程关机的详细步骤有哪些?向日葵怎么远程关机?...
  7. html表格序号自动增加
  8. 技术分析是我的唯一信仰
  9. 清华大学计算机竞赛自主招生,清华大学自主招生竞赛有哪些要求
  10. suse linux 添加网卡驱动,图文并茂介绍suse linux 11系统安装全过程以及suse系统下安装网卡驱动和刷新固件.doc...
  11. 每日牛客网-2022/1/4 错题解析
  12. 回顾码农历程总结2013 期待2014
  13. 五维图matlab,五维立体图,怎么画五维图(即以五边形反映各项水平)
  14. jdk8新特性-Lambda表达式,方法引用
  15. Grain: Improving Data Efficiency of Graph Neural Networks via Diversified Influence Maximization分析
  16. [机缘参悟-35]:鬼谷子-飞箝篇-远程连接、远程控制与远程测试之术
  17. 2022年登高架设免费试题及登高架设复审考试
  18. 谈RAM与ROM的区别与理解
  19. 剑指OFFER——正则表达式匹配
  20. GOOSE报文分析_详解GOOSE服务

热门文章

  1. python 导出为csv_批量导出SolidWorks模型点坐标值
  2. JavaScript —— Symbol数据类型的拓展
  3. csdn如何写出文章,拥有较高的推荐量以及点击率
  4. JDK8之后,新增的时间类对象
  5. 从键盘录入10个整数,统计有多少个奇数,Java基础轻松实现
  6. erp系统原理和实施第五版pdf_ERP系统实施费用!
  7. CentOS 7设置开机启动服务,添加自定义系统服务
  8. Thinkphp5笔记七:设置错误页面②
  9. CentOS 7安装Mysql并设置开机自启动
  10. 编译安装nginx并修改版本头信息—参考实例