【JavaWeb】火车票管理系统 (三)用户注册-最终版
来写下一步了,最近要发疯了,好多事情要做,我自己的计划都被打乱了,这次的六级又没指望了,除了html和javaweb,我都没有时间去做别的事情了,11月11html还要中期答辩,还要做ppt,我觉得我的立项没搞好,很冗余又复杂,翻车了。。。。唉,怎么办啊,每天都好绝望。。。但是没办法,我确实还有一些生活上的事情一直困扰着我,怎么说呢,学习就是痛苦的,就是无助的,就是失望的,不是说你一直期待着有那么一个人出现,然后你枯燥的、平淡的生活和学习就变得轻松了、有趣了,有意义了。而且,很多事情就是没有意义,你一样也要去做它。不能期待别人,我的神从来没有走向过我。。。
用户注册流程:
1、用户填写用户名、密码等信息,点击注册按钮,提交到RegisterServlet
2、在RegisterServlet中使用MyBatis保存数据
3、保存前,需要判断用户名是否已经存在;根据用户名查询数据库
RegisterServlet:controller层
1、接收用户数据
2、调用mapper根据用户名查询,返回对象
3、判断对象是否为空
为null,用户名可用
不为null,用户名重复
usermapper:
user queryUserByName(username)//用户名查询
adduser(username,userpwd)//添加用户
前面是5号写的,后来感冒了很多事情没做,慢慢的调整自己的心态,虽然还是剩下很多的事情没做,但是心情要好了很多,(明天就不一定了。。)把这个用户注册基本做好了,可以存入数据库中
还是基于前面的用户类和users表,我们来实现用户注册,首先我们先写好前端页面register.jsp
基本和登录前端是一样的,copy后修改就好,一样在js中要进行非空判断,要将from表单中的action和id修改。
<%--Created by IntelliJ IDEA.User: 向阳Date: 2022/11/5Time: 16:53To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>注册页面</title>
</head>
<body>
<form action="/Register" method="post" id="registerform">姓名:<input type="text" name="uname" id="uname" value="${messageModel.object.username}" ><br>密码:<input type="password" name="upwd" id="upwd" value="${messageModel.object.userpwd}"><br><input type="submit" id="butt" value="注册"><input type="reset" value="重新输入"><span id="msg" style="font-size: 12px">${messageModel.msg}</span><br></form>
</body>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript"><%-- 登录表单验证:1、登录按钮的点击事件2、获取用户名字和密码3、判断姓名是否为空如果为空,用span标签提示用户,return4、判断密码是否为空5、都不为空就提交表单首页 index.jsp--%>$("#butt").click(function (){var uname=$("#uname").val();var upwd=$("#upwd").val();if(isempty(uname)){$("#msg").html("用户姓名不可为空!");return;}if(isempty(upwd)){$("#msg").html("用户密码不可为空!");return;}$("#registerform").submit();});//判断字符串是否为空function isempty(str){if(str==null||str.trim()=="")return true;elsereturn false;}
</script>
</html>
然后我们在usermapper.java中写好插入接口,注意两个参数时用@Param,
package com.example.loginpj.mapper;import com.example.loginpj.entity.user;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;//用户接口类
@Mapper
public interface usermapper {public user queryUserByName(String username);// @Insert("insert into users values (#{username},#{userpwd})")Integer addUser(@Param("username") String username, @Param("userpwd") String userpwd);
// 添加用户
}
然后在它的映射文件mapper.xml中写它的方法(?不知道这样描述是否正确)注意id要和函数名相同,(对了java里面函数名单词第一个字母要大写,被老师说了两遍“一看你java就没学好”了,上数据结构的时候老师就说我“c语言白学了“哭哭)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.example.loginpj.mapper.usermapper">
<!-- 根据用户名查询用户对象--><select id="queryUserByName" parameterType="String"resultType="com.example.loginpj.entity.user">select * from users where username= #{username};</select><insert id="addUser" parameterType="String">insert into users(username,userpwd) values(#{username},#{userpwd})</insert>
</mapper>
之后在controller层写RegisterServlet.java
package com.example.loginpj.controller;import com.example.loginpj.entity.user;
import com.example.loginpj.entity.vo.MessageModel;
import com.example.loginpj.mapper.usermapper;
import com.example.loginpj.service.RegisterService;
import com.example.loginpj.service.userservice;
import com.example.loginpj.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet(name = "RegisterServlet",urlPatterns = "/Register")
public class RegisterServlet extends HttpServlet {// 实例化service对象private RegisterService userreg =new RegisterService();@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//接收用户请求String uname=req.getParameter("uname");String upwd=req.getParameter("upwd");//调用service层的方法,返回消息模型对象MessageModel messageModel = RegisterService.userreg(uname,upwd);// 判断消息的状态码if(messageModel.getCode()==1){req.getSession().setAttribute("user",messageModel.getObject());resp.sendRedirect("index.jsp");}else{//将消息模型中用户信息设置到request中,并重新定向req.setAttribute("messageModel",messageModel);req.getRequestDispatcher("register.jsp").forward(req,resp);}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}
}
service层写RegisterService.java,注意在消息模型=1时,表示用户可以注册,要用 session.commit();将数据提交,不然数据库里面是没有的。
package com.example.loginpj.service;import com.example.loginpj.entity.user;
import com.example.loginpj.entity.vo.MessageModel;
import com.example.loginpj.mapper.usermapper;
import com.example.loginpj.util.GetSqlSession;
import com.example.loginpj.util.StringUtil;
import org.apache.ibatis.session.SqlSession;public class RegisterService {public static MessageModel userreg(String uname, String upwd){MessageModel messageModel=new MessageModel();user u=new user();u.setUsername(uname);u.setUserpwd(upwd);messageModel.setObject(u);//参数非空判断if(StringUtil.isEmpty(uname)||StringUtil.isEmpty(upwd)){messageModel.setCode(0);messageModel.setMsg("用户姓名和密码不能为空。。");}//调用dao层的查询方法,通过用户名查询对象SqlSession session= GetSqlSession.createSqlSession();usermapper usermapper = session.getMapper(usermapper.class);user user=usermapper.queryUserByName(uname);if(user==null){//调用对象,返回用户对象usermapper.addUser(uname,upwd);session.commit();messageModel.setCode(1);messageModel.setMsg("注册成功。。");return messageModel;}
// if (uname==null&&upwd!=null){// messageModel.setCode(0);
// messageModel.setMsg("密码不为空");
// return messageModel;
// }if(uname.equals(user.getUsername())){messageModel.setCode(0);messageModel.setMsg("用户已经存在");return messageModel;}if(!uname.equals(user.getUsername())){usermapper.addUser(uname,upwd);session.commit();usermapper.addUser(uname,upwd);session.commit();messageModel.setMsg("注册成功");return messageModel;}return messageModel;}}
test测试里面:
package com.example.loginpj.test;import com.example.loginpj.util.GetSqlSession;
import org.apache.ibatis.session.SqlSession;
import com.example.loginpj.entity.user;
import com.example.loginpj.mapper.usermapper;
public class test {public static void main(String[] args) {//获取sqlsession对象SqlSession session= GetSqlSession.createSqlSession();//得到对应的mapperusermapper usermapper =session.getMapper(com.example.loginpj.mapper.usermapper.class);//调用对象,返回用户对象Integer addUser1 =usermapper.addUser("qtds","123");System.out.println(addUser1);session.commit();}
}
结果和数据库显示:(左边的文件结构也给出了)页面的测试下次在做
要注意用户id在数据库中要设置成自增,可以看见我的数据库有一个乱码,那是我注册的时候输入的是中文
【JavaWeb】火车票管理系统 (三)用户注册-最终版相关推荐
- 上海交通大学出版社python教材答案学生信息管理系统_学生信息管理系统(最终版)...
<学生信息管理系统.doc>由会员分享,可免费在线阅读全文,更多与<学生信息管理系统(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索. 1. ...
- 考勤管理系统c语言,C语言课程设计学生考勤系统最终版(范文1)
<C语言课程设计学生考勤系统.doc>由会员分享,可免费在线阅读全文,更多与<C语言课程设计学生考勤系统(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文 ...
- 班级奖学金管理系统java_(奖学金评定管理系统设计)(最终版)
<奖学金评定管理系统设计.doc>由会员分享,可免费在线阅读全文,更多与<(奖学金评定管理系统设计)(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库 ...
- Swing+Mysql实现的火车票管理系统3(功能分为普通用户和管理员,包含登录、车票查询、改签、购票、我的订单、用户注册、用户首页、车站管理、价格管理、用户管理等)
博客目录 Swing+Mysql实现的火车票管理系统3 实现功能截图 系统功能 使用技术 代码 完整源码 Swing+Mysql实现的火车票管理系统3 本系统是一个火车票购票管理系统,分为普通用户和管 ...
- JavaWeb图书管理系统day02
视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ 提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...
- 叶新伟 php,基于php+mysql技术bbs论坛设计的开发与实现最终版(样例3)
<基于php+mysql技术bbs论坛设计的开发与实现.doc>由会员分享,可免费在线阅读全文,更多与<基于php+mysql技术bbs论坛设计的开发与实现(最终版)>相关文档 ...
- 收银台模块php课程设计,【基于PHP+MySQL的美发店收银系统的设计与实现最终版材料】...
基于PHP+MySQL的美发店收银系统的设计与实现(最终版) <基于PHP+MySQL的美发店收银系统的设计与实现.doc>由会员分享,可免费在线阅读全文,更多与<基于PHP+MyS ...
- 火车时刻表C语言报告,终稿火车订票系统的设计与实现课程设计.doc最终版(范文1)...
<火车订票系统的设计与实现课程设计.doc>由会员分享,可免费在线阅读全文,更多与<(终稿)火车订票系统的设计与实现课程设计.doc(最终版)>相关文档资源请在帮帮文库(www ...
- C语言总结项目和入门大作业——信息管理系统(多文件版)
文章目录 八. C语言入门大作业--信息管理系统(多文件版) 一. 功能模块的划分: 二. 多文件的编写 三. 基本函数的实现(重点) 四.文件操作函数 五.函数的辅助函数 六.多文件编程和联系 七. ...
最新文章
- sae python连接mysql_SAE Tornado 应用连接并使用 Mysql
- 2021年春季学期-信号与系统-第八次作业参考答案-第九小题
- 栈的应用-四则运算表达式
- 转载:中年程序猿的迷茫,你还在深究技术吗?
- 使用Tomcat Maven插件进行项目部署
- java 鼠标拖动画矩形_java怎么实现鼠标在桌面拖动过程中 画 矩形的 功能?
- Matlab自带的曲线拟合程序
- 黑苹果xxx.efi格式文件介绍
- Java Web(九) 用户管理系统
- 浅谈融云即时通讯服务「日志优化」
- win10键盘锁住了怎么解决
- 小程序切出去重新进入
- Java中的getBytes()方法详解
- 名称数据联网简介的翻译(计算机网络论文翻译)
- 设置Chrome浏览器不加载图片的方法
- WordPress页面教程【2021】
- Windows7双系统卸载Ubuntu
- “黑客”必备书籍 你值得拥有!
- 记录:捕鱼达人开发笔记
- 身份证最后一位校验码
热门文章
- 企业数字化转型,财务应该做些什么?
- 整合的图片压缩工具类ImageTools
- assembly打包
- Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
- 习题:设计一个学生类,其中数据成员有学号、姓名、年龄、3门课程的成绩,以及若干成员函数。并利用这个类建立一个对象数组。
- 如何利用函数指针在c语言中实现面向对象编程
- IMX6ULL学习笔记(11)——获取和编译官方SDK
- 何以突围短视频红海?秒拍海量播放下的高性能视频调度实践
- 梦幻日常技巧(种摇钱树,刷宝宝窝地点,拓本,合成变身卡)
- WebMagic快速入门