寒假web开发2

表一 User
sql

点击查看代码
CREATE TABLE tb_user(
    UserID  VARCHAR(12) primary key,
    Password VARCHAR(16)
    );

pojo: User

点击查看代码
package com.QixunQiu.pojo;

public class User {
    String UserID  ;
    String Password ;

    @Override
    public String toString() {
        return "User{" +
                "UserID='" + UserID + '\'' +
                ", Password='" + Password + '\'' +
                '}';
    }

    public String getPassword() {
        return Password;
    }

    public void setPassword(String password) {
        Password = password;
    }

    public String getUserID() {
        return UserID;
    }

    public void setUserID(String userID) {
        UserID = userID;
    }
}

UserMapper

点击查看代码
package com.QixunQiu.mapper;

import com.QixunQiu.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface UserMapper {

    @Select("select * from tb_user where UserID = #{UserID} and Password = #{Password}")
    User select(@Param("UserID") String UserID, @Param("Password")  String Password);

    void addUser(User user);
}

UserService

点击查看代码
package com.QixunQiu.service;

import com.QixunQiu.mapper.UserMapper;
import com.QixunQiu.pojo.User;
import com.QixunQiu.util.SqlSessionFactoryUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

public class UserService {
    SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();
    public User selectUser(String UserID, String Password) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        User user = userMapper.select(UserID, Password);
        sqlSession.close();
        return user;
    }

    public void addUser(User user) {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        userMapper.addUser(user);
        sqlSession.commit();
        sqlSession.close();
    }
}

UserMapper.xml

点击查看代码
<?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.QixunQiu.mapper.UserMapper">
    <insert id="addUser">
        insert into tb_user (UserID, Password)
        values (#{UserID}, #{Password});
    </insert>


    <update id="updatePassword" >
        update tb_user
        <set>
            <if test="Password != null and Password != ''">
                Password = #{Password},
            </if>
        </set>
        where UserID = #{UserID};
    </update>

    <delete id="deleteByUserID">
        delete from tb_user where UserID = #{UserID}
    </delete>

    <select id="selectALL" resultType="com.QixunQiu.pojo.User">
        select *
        from tb_user ;
    </select>
</mapper>

login.html

点击查看代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f4f4f4;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }

        .form-div {
            background-color: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 400px;
            text-align: center;
        }

        .form-div h1 {
            color: #333;
            margin: 0 0 20px;
        }

        .form-div a {
            color: #007BFF;
            text-decoration: none;
            font-size: 14px;
        }

        .form-div a:hover {
            text-decoration: underline;
        }

        form {
            display: flex;
            flex-direction: column;
            align-items: center;
        }

        table {
            width: 100%;
            margin-bottom: 20px;
            border-collapse: collapse;
        }

        table td {
            padding: 10px 0;
            text-align: left;
        }

        table td:first-child {
            width: 30%;
            font-weight: bold;
        }

        table td.input {
            width: 70%;
        }

        input[type="text"],
        input[type="password"] {
            width: 100%;
            padding: 8px;
            border: 1px solid #ccc;
            border-radius: 4px;
            box-sizing: border-box;
        }

        input[type="text"]:focus,
        input[type="password"]:focus {
            outline: none;
            border-color: #007BFF;
        }

        .buttons {
            display: flex;
            justify-content: space-between;
            width: 100%;
        }

        input[type="submit"] {
            padding: 10px 20px;
            font-size: 16px;
            color: #fff;
            background-color: #007BFF;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            transition: background-color 0.3s;
            width: 100%;
        }

        input[type="submit"]:hover {
            background-color: #0056b3;
        }
    </style>
</head>
<body>
<div class="form-div">
    <form action="/Older/LoginServlet" method="post" id="form">
        <h2>欢迎使用老年人能力评估系统</h2>
        <table>
            <tr>
                <td>用户名:</td>
                <td class="input">
                    <input id="UserID" name="UserID" type="text">
                </td>
            </tr>
            <tr>
                <td>密码:</td>
                <td class="input">
                    <input id="Password" name="Password" type="password">
                </td>
            </tr>
        </table>
        <div class="buttons">
            <input type="submit" value="登录">
            <a href="register.html">没有账号?点击注册</a>
        </div>
    </form>
</div>
</body>
</html>

register.html

点击查看代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>欢迎注册</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f4f4f4;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
        }
        .form-div {
            background-color: #fff;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            width: 100%;
            max-width: 400px;
            text-align: center;
        }
        .reg-content {
            margin-bottom: 20px;
        }
        .reg-content h1 {
            color: #333;
            margin: 0 0 10px;
        }
        .reg-content a {
            color: #007BFF;
            text-decoration: none;
            font-size: 14px;
        }
        .reg-content a:hover {
            text-decoration: underline;
        }
        table {
            width: 100%;
            margin-bottom: 20px;
            border-collapse: collapse;
        }
        table td {
            padding: 10px 0;
            text-align: left;
        }
        table td:first-child {
            width: 30%;
            font-weight: bold;
        }
        table td.input {
            width: 70%;
        }
        input[type="text"],
        input[type="password"] {
            width: 100%;
            padding: 8px;
            border: 1px solid #ccc;
            border-radius: 4px;
            box-sizing: border-box;
        }
        input[type="text"]:focus,
        input[type="password"]:focus {
            outline: none;
            border-color: #007BFF;
        }
        .err_msg {
            color: red;
            font-size: 12px;
            display: none;
        }
        .buttons {
            display: flex;
            justify-content: center;
        }
        #reg_btn {
            padding: 10px 20px;
            font-size: 16px;
            color: #fff;
            background-color: #007BFF;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            transition: background-color 0.3s;
        }
        #reg_btn:hover {
            background-color: #0056b3;
        }
    </style>
</head>
<body>
<div class="form-div">
    <div class="reg-content">
        <h1>欢迎注册</h1>
        <a href="login.html">已有帐号?登录</a>
    </div>
    <form id="reg-form" action="/Older/RegisterServlet" method="post">
        <table>
            <tr>
                <td>用户ID</td>
                <td class="input">
                    <input name="userID" type="text" id="userID">
                    <br>
                    <span id="username_err" class="err_msg">用户名不太受欢迎</span>
                </td>
            </tr>
            <tr>
                <td>密码</td>
                <td class="input">
                    <input name="password" type="password" id="password">
                    <br>
                    <span id="password_err" class="err_msg">密码格式有误</span>
                </td>
            </tr>
        </table>
        <div class="buttons">
            <input value="注 册" type="submit" id="reg_btn">
        </div>
    </form>
</div>
</body>
</html>

LoginServlet

点击查看代码
package com.QixunQiu.web;

import com.QixunQiu.pojo.User;
import com.QixunQiu.service.UserService;

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;
import java.io.PrintWriter;

@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    private UserService userService = new UserService();
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String UserID = request.getParameter("UserID");
        String Password = request.getParameter("Password");
        User user =userService.selectUser(UserID, Password);
        response.setContentType("text/html;charset=utf-8");
        PrintWriter writer = response.getWriter();
        //3. 判断user释放为null
        if(user != null){
            // 登陆成功
            writer.write("登陆成功");
            HttpSession session = request.getSession();
            session.setAttribute("user", user);
            request.getRequestDispatcher("/index.jsp").forward(request,response);
        }else {
            // 登陆失败
            writer.write("登陆失败");
        }
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

RegisterServlet

点击查看代码
package com.QixunQiu.web;

import com.QixunQiu.pojo.User;
import com.QixunQiu.service.UserService;

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.*;
import java.text.SimpleDateFormat;
import java.util.Date;

@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
    private UserService userService = new UserService();
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=utf-8");
        String userID = request.getParameter("userID");
        String password = request.getParameter("password");
        User user = new User();
        user.setPassword(password);
        user.setUserID(userID);
        userService.addUser(user);
        request.getRequestDispatcher("/login.html").forward(request, response);

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
    }

    private int sequenceNumber = 1;

    public synchronized String generateID() {
        // 获取当前日期
        Date now = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
        String dateStr = sdf.format(now);

        // 读取或初始化sequenceNumber
        if (sequenceNumber == 1) {
            File file = new File("sequenceNumberHouse.txt");
            if (file.exists()) {
                try {
                    BufferedReader reader = new BufferedReader(new FileReader(file));
                    String line = reader.readLine();
                    sequenceNumber = Integer.parseInt(line);
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        // 组合房产编号
        String sequenceStr = String.format("%04d", sequenceNumber++);
        String houseID = dateStr + sequenceStr;

        // 更新sequenceNumber到文件
        try {
            BufferedWriter writer = new BufferedWriter(new FileWriter("sequenceNumberHouse.txt"));
            writer.write(String.valueOf(sequenceNumber));
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return houseID;
    }
}

posted @   QixunQiu  阅读(1)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示