【JavaWeb】火车票管理系统 (三)用户注册-最终版
创始人
2024-04-06 05:56:24
0

来写下一步了,最近要发疯了,好多事情要做,我自己的计划都被打乱了,这次的六级又没指望了,除了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" %>

注册页面


姓名:
密码:
${messageModel.msg}

然后我们在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语言白学了“哭哭)



insert into users(username,userpwd) values(#{username},#{userpwd})

之后在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在数据库中要设置成自增,可以看见我的数据库有一个乱码,那是我注册的时候输入的是中文

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...