注册、登出功能

Dao层

 //注册功能
    public void registerUser(User user){
        try {
             String sql="insert into user values(?,?,?,?,?,?)";
            qr.update(sql,
                    user.getUid(),user.getUsername(),
                    user.getPassword(),user.getTelephone(),
                    user.getBirthday(),user.getSex());
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

// 根据用户名查找
public User findUserByName(String userName){
    try {
        String sql = "select * from user where username = ?";
        User user = qr.query(sql, new BeanHandler<>(User.class), userName);
        return user;
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;
}

service层 

  //注册用户
    public String registUser(User user) {
        if (user != null && user.getUsername() != null) {
            User userByName = userDao.findUserByName(user.getUsername());
            if (userByName == null) {// 说明用户名不存在  可以注册
                //完善用户信息
                user.setUid(UUIDUtils.getUUID());
                // 调用Dao 插入数据
                userDao.registerUser(user);
                return "success";
            } else {
                return "用户名已存在";
            }
        }
        return "参数不合法,不能为空";
    }

servlet层

package com.qiku.servlet;

import com.qiku.entity.User;
import com.qiku.service.UserService;

import javax.servlet.RequestDispatcher;
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 javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet(name="registerUserServlet",urlPatterns = "/registerUser")
public class RegisterUserServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String telephone = req.getParameter("telephone");
        String birthday = req.getParameter("birthday");
        String sex = req.getParameter("sex");
        //将获取到的数据  封装成User对象
        User user = new User(username, password, telephone, birthday, sex);
        // 将username和password封装成换一个user对象,交给userService实现登录逻辑
        //将user作为参数  传递给 service
        UserService userService = new UserService();
        String msg = userService.registUser(user);
        if (msg.equals("success")){// 注册成功
            //转到登录界面
            resp.setContentType("text/html;charset=utf-8");
            resp.sendRedirect("login.jsp");
        }else{
            // 说名注册失败  则 将错误信息  转发到注册页面展示
            req.setAttribute("msg",msg);//将错误信息绑定到  request对象
            // 获取转发器  并指定 转发地址
            RequestDispatcher requestDispatcher = req.getRequestDispatcher("register.jsp");
            // 开始转发
            requestDispatcher.forward(req,resp);
        }
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }
}

登出功能

package com.qiku.servlet;

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 javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet(name="logoutServlet",urlPatterns = "/logout")
public class LogOutServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    // 因为我们将登陆成功的用户保存再来session中
        //退出功能 只需要删除session中的user即可
        HttpSession session = req.getSession();
        session.removeAttribute("user");
        resp.sendRedirect("index.jsp");
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("get....");
    }
}

register.jsp

<%--
  Created by IntelliJ IDEA.
  User: lishaojiang
  Date: 2022/5/17
  Time: 10:44
  To 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="registerUser" method="post" >
    <span style="color:red">
        <%= request.getAttribute("msg")==null?"":request.getAttribute("msg")+"<br>"%>
    </span>



    用户名:<input type="text" name="username"/>        <br>
    密码:  <input type="password" name="password"/>    <br>
    电话:  <input type="text" name="telephone"/>       <br>
    生日:  <input type="date" name="birthday"/>        <br>
    性别:  <input type="radio"  value="男" name="sex"/>男
           <input type="radio"  value="女" name="sex"/>女
                                                        <br>
         <input type="submit" value="注册">


</form>
</body>
</html>

login.jsp

<%@ page import="com.qiku.entity.User" %><%--
  Created by IntelliJ IDEA.
  User: lishaojiang
  Date: 2022/5/16
  Time: 14:52
  To 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="login" method="post">
    用户名:<input type="text" name="username"> <br>
    密码:<input type="password" name="password"> <br>
    <%--  登录失败时的提示信息  登录失败,将错误信息转发带当前页面     --%>

    <input type="submit" value="登录">
    <span style="color: red">
            <%-- 若没有获取到  错误提示 则显示空串  若有 则显示错误信息           --%>
            <%= request.getAttribute("error") == null ? "" : request.getAttribute("error") %>
        </span>
</form>
</body>
</html>

index.jsp

<%@ page import="com.qiku.entity.User" %><%--
  Created by IntelliJ IDEA.
  User: lishaojiang
  Date: 2022/5/16
  Time: 14:04
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
   <%
    User user = (User) session.getAttribute("user");
    if(user!= null) {
   %>

    <h1>登录成功,欢迎 <%=user.getUsername()%> </h1>

    <form action="logout" method="post">
    <input type="submit" value="退出">
    </form>

   <%
      } else {
   %>

    <h1>  <a href="login.jsp">请登录</a></h1>
    <h1>  <a href="register.jsp">请注册</a></h1>

   <%
    }
   %>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值