使用JavaBean+Servlet+JSP实现一个简单的后台登陆和注册功能

这篇具有很好参考价值的文章主要介绍了使用JavaBean+Servlet+JSP实现一个简单的后台登陆和注册功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.相关概念

1.JavaBean

JavaBean泛指java的一些基本组件,类似domain,service,utils等

2.Servlet

Servlet是运行在服务器端可以接收客户端请求并向客户端发送响应的一个Java类,servlet的主要职责有三个,分别是(1)获取请求,接收请求参数;(2)调用业务逻辑;(3)页面导航,返回数据。

3.JSP

JSP是一种使用Java语言在服务器端编写动态页面的技术,其核心思路是在JSP=HTML+Java,即在HTML页面中嵌入Java代码,其文件后缀是.jsp

二.具体实现

       实现一个登陆功能,需要验证用户输入的用户名和密码是否与数据库的数据一致,一致则登陆成功,不一致则提示错误。实现用户注册功能需要验证用户输入的名字是否与数据库中原有的数据一致,一致则提示错误,不一致则注册成功。

       根据servlet的职责可知,servlet先要接收客户端的请求,这个请求来自JSP页面,然后调用service的业务逻辑,验证之后将结果返回给JSP,登录情况分为登陆成功和登陆失败,登陆成功则跳转页面。

     我们需要先将数据库和Java连接起来,在Java里依次编写数据库表的实体类,实体类的mapper类和mapper.xml文件和service。然后编写登录和注册的JSP页面,最后编写控制器。

1.Users实体类,mapper,service

1.1 users实体类

package com.xja.domain;/*
 *@描述:
 *@author:Wugq
 *@date:2023/4/7 5:28
 */

public class Users {

    private Integer userId;

    private String userName;

    private String userPass;
}

1.2 UserMapper接口和UserMapper.xml文件

userMapper

package com.xja.mapper;/*
 *@描述:
 *@author:Wugq
 *@date:2023/4/7 5:30
 */

import com.xja.domain.Users;
import org.springframework.stereotype.Repository;

@Repository("UserMapper")
public interface UserMapper {
    public Users selectByName(String userName);
    public void insert(Users users);

}

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.xja.mapper.UserMapper">
    <resultMap id="userMap" type="com.xja.domain.Users">
        <id property="userId" column="user_id" javaType="java.lang.Integer" />
        <result property="userName" column="user_name" javaType="java.lang.String" />
        <result property="userPass" column="user_pass" javaType="java.lang.String" />
    </resultMap>
    <select id="selectByName" resultMap="userMap">
        SELECT *  FROM  users  WHERE  user_name = #{userName}
    </select>

    <insert id="insert">
        insert into users (user_name,user_pass) values(#{userName},#{userPass})
    </insert>
</mapper>

1.3 UserService

package com.xja.service;/*
 *@描述:
 *@author:Wugq
 *@date:2023/4/7 0:44
 */

import com.xja.domain.Users;
import com.xja.exception.NameException;
import com.xja.exception.PassWordException;
import com.xja.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Service("UserService")
public class UserService {
    @Autowired @Qualifier("UserMapper")
    private UserMapper userMapper;

    @Transactional(propagation = Propagation.REQUIRED, readOnly = true)
    public Users isLogin(String userName, String userPass) throws NameException, PassWordException {
        Users users = userMapper.selectByName(userName);
        if (users != null) {
            if (userPass.equals(users.getUserPass())) {
                return users;
            } else {
                throw new PassWordException("密码错误!");
            }
        } else {
            throw new NameException("用户不存在!");
        }
    }

    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = {Exception.class})
    public void addUsers(Users users) throws NameException{
        Users users1=userMapper.selectByName(users.getUserName());
        if(users1!=null){
            throw new NameException("用户名重复!");
        }else {
            userMapper.insert(users);
        }
    }
}

2.登录和注册的JSP页面

登录和注册的页面只有一个简单的表单

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录页面</title>
    <style>
        input[type="text"],input[type="password"]{
            background-color: antiquewhite;
            border: antiquewhite;
            border-radius: 5px;
            width: 180px;
            height: 30px;
        }
        input[type="button"],input[type="submit"]{
            background-color: burlywood;
            border: burlywood;
            border-radius: 5px;
            width: 52px;
            height: 27px;
            text-align: center;
        }
        tr{
            height: 35px;
        }
        input[type="button"]:hover{
            width: 58px;
            height: 32px;
        }
    </style>
</head>
<body>
    ${requestScope.error}
    <form action="/jsp_proj01_war_exploded/isLogin.do" method="post">
        <table>
            <tr>
                <td><input type="button" value="姓名"></td>
                <td><input type="text" value="" name="userName"></td>
            </tr>
            <tr>
                <td><input type="button" value="密码"></td>
                <td><input type="password" value="" name="userPass"></td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="登录"></td>
            </tr>
        </table>
    </form>
</body>
</html>

注册页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册页面</title>
    <style>
        input[type="text"],input[type="password"]{
            background-color: antiquewhite;
            border: antiquewhite;
            border-radius: 5px;
            width: 180px;
            height: 30px;
        }
        input[type="button"],input[type="submit"]{
            background-color: burlywood;
            border: burlywood;
            border-radius: 5px;
            width: 52px;
            height: 27px;
            text-align: center;
        }
        tr{
            height: 35px;
        }
        input[type="button"]:hover{
            width: 58px;
            height: 32px;
        }
    </style>
</head>
<body>
${requestScope.error}
<form action="/jsp_proj01_war_exploded/regist.do" method="post">
    <table>
        <tr>
            <td><input type="button" value="姓名"></td>
            <td><input type="text" value="" name="registName"></td>
        </tr>
        <tr>
            <td><input type="button" value="密码"></td>
            <td><input type="password" value="" name="registPass"></td>
        </tr>
        <tr>
            <td colspan="2" align="center"><input type="submit" value="注册"></td>
        </tr>
    </table>
</form>
</body>
</html>

3.控制器servlet

写两个控制器也可以哎

3.1登录控制器---isLoginController

package com.xja.contorller;/*
 *@描述:
 *@author:Wugq
 *@date:2023/4/7 1:30
 */

import com.xja.domain.Users;
import com.xja.exception.NameException;
import com.xja.exception.PassWordException;
import com.xja.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet("/isLogin.do")
public class isLoginController extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String userName=request.getParameter("userName");
        String userPass=request.getParameter("userPass");
        ApplicationContext context =
                WebApplicationContextUtils.getWebApplicationContext(request.getServletContext());
        UserService userService= (UserService) context.getBean("UserService");
        try {
            Users users = userService.isLogin(userName, userPass);
            HttpSession session=request.getSession();
            session.setAttribute("users",users);
            request.getRequestDispatcher("/mainMenu.jsp").forward(request,response);
        } catch (NameException | PassWordException e) {
            //e.printStackTrace();
            request.setAttribute("error",e.getMessage());
            request.getRequestDispatcher("/login.jsp").forward(request,response);
        }







    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        //System.out.println("Demo.doPost()");
        doGet(request,response);
    }
}

3.2注册控制器---RegistController

package com.xja.contorller;/*
 *@描述:
 *@author:Wugq
 *@date:2023/4/7 19:02
 */

import com.xja.domain.Users;
import com.xja.exception.NameException;
import com.xja.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet("/regist.do")
public class RegistController extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //接受请求,获取请求参数
        String registName=request.getParameter("registName");
        String registPass=request.getParameter("registPass");
        //调用业务逻辑
        ApplicationContext context=
                WebApplicationContextUtils.getWebApplicationContext(request.getServletContext());
        UserService userService= (UserService) context.getBean("UserService");
        Users users=new Users();
        users.setUserName(registName);
        users.setUserPass(registPass);
        try {
            userService.addUsers(users);
            //页面导航
            HttpSession session=request.getSession();
            session.setAttribute("users",users);
            request.getRequestDispatcher("/registSuccess.jsp").forward(request,response);
        } catch (NameException e) {
            request.setAttribute("error",e.getMessage());
            request.getRequestDispatcher("/register.jsp").forward(request,response);
        }

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        //System.out.println("Demo.doPost()");
        doGet(request,response);
    }
}

4.数据库表

javabean jsp servlet,servlet,java,前端

 文章来源地址https://www.toymoban.com/news/detail-755868.html

5.效果实现

javabean jsp servlet,servlet,java,前端

javabean jsp servlet,servlet,java,前端

 

输入错误的密码:

javabean jsp servlet,servlet,java,前端

登陆成功之后,跳转到此页面,使用框架集将页面分成三个独立的页面,顶部页面是文字展示,左侧页面是一个菜单栏,后续功能会继续添加,中间是一个主页面,后续再添加。

javabean jsp servlet,servlet,java,前端

注册页面

javabean jsp servlet,servlet,java,前端

输入相同的用户名

javabean jsp servlet,servlet,java,前端

 

javabean jsp servlet,servlet,java,前端 

用户名不重复

javabean jsp servlet,servlet,java,前端

注册成功提示

javabean jsp servlet,servlet,java,前端

查看数据库表,多了一条记录

javabean jsp servlet,servlet,java,前端

 

 

 

 

 

 

 

 

 

到了这里,关于使用JavaBean+Servlet+JSP实现一个简单的后台登陆和注册功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【图书管理系统】Servlet+JSP+MySql 实现的一个前后端 javaweb项目(内附源码)

    源码分享在文末! 学习完Javaweb的知识后做了个项目练练手,我选择了经典而且比较简单的图书管理系统。 最近有时间,整理了一下,分享给大家,希望能够帮到你! 基于B/S结构 前端: HTML+CSS+JS +JQuery 后端: Servlet+JSP+MySql 操作系统: win8/win10 JDK: 8.0 开发工具: Intellij IDEA2020.1 旗舰

    2024年02月06日
    浏览(51)
  • 使用JSP+Servlet+MySQL实现登录注册功能

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Java从入门到精通 ✨特色专栏: MySQL学习 🥭本文内容:使用JSP+Servlet+MySQL实现登录注册功能 📚个人知识库: Leo知识库,欢迎大家访问 大家好,

    2024年02月04日
    浏览(51)
  • 学会使用Java Web实现:用户登录功能(JSP+Servlet方式)

    登录页面 login.jsp ,输入用户名和密码后,跳转到登录处理程序 LoginServlet 进行业务逻辑处理,登录成功,跳转到登录成功页面 success.jsp ,否则跳转到登录失败页面 failure.jsp 。 创建 Java Enterprise 项目,添加 Web Application 功能 设置项目名与保存位置 单击【Finish】按钮 在项目结

    2024年02月11日
    浏览(65)
  • 学会使用Java Web实现:用户登录(JSP+Servlet+DB)方式

    总体上采用MVC架构。登录页面 login.jsp ,输入用户名和密码后,跳转到登录处理程序 LoginServlet 进行业务逻辑处理,调用服务层,服务层调用数据访问层(DAO),连接数据库,查询数据库,以此判断是否登录成功。登录成功,跳转到登录成功页面 success.jsp ,否则跳转到登录失

    2024年02月02日
    浏览(48)
  • 使用Html做一个简单的登陆页面

    目录 绪论 一、新建一个html项目 二、制作整体框架 三、使用CSS进行修饰 四、更新内容 html作为一个常用的前端语言,使用的人群范围是很大的; 如果你想要成为一个前端工程师,那必不可少的就要做一个登陆页面; 登录页面一般就是账号和密码,另外还需要验证码验证需求

    2024年02月06日
    浏览(53)
  • 【Servlet综合项目练习】实现一个简单的博客系统~

    目录 🌟一、数据库设计部分 1、建表分析:系统中一共要实现几张表?  2、开始建表 🌟二、大概框架与实现功能 🌟 三、代码实现部分 🌈前言1:工具类的实现(utils包下) 1、数据库连接的工具类 2 、 用户信息判空的工具类 3、判断当前用户是否已经登录的工具类 🌈前

    2024年02月15日
    浏览(41)
  • 使用Eclipse创建一个简单的servlet项目

      再找个位置配置你下载的Tomcat的版本   点击next    Tomcat存放的位置 本地JRE  点击finish结束   新建完成    三、实现一个表单提交验证 1.在Java Resources下的src下通过new创建一个包,并在该包下创建一个servlet类    点击next (输入描述后点击next)  (初学的话,不需要更改)

    2023年04月20日
    浏览(46)
  • JSP web入门:servlet的简单部署、创建与运行(2023版)

    目录 一、环境配置 1、java环境(安装JDK) 2、Tomcat环境 下载Tomcat Windows下启动Tomcat服务器 若出现中文乱码问题: 3、ide选择 二、使用各种ide创建web项目 1、eclipse (一)创建Dynamic Web Project (二)配置Tomcat服务器 (三)添加jar依赖包 (四)编写代码 (五)运行 2、IDEA (一)

    2024年02月07日
    浏览(43)
  • WordPress后台地址被改导致无法登陆后台的简单解决方法

    本文实例讲述了WordPress后台地址被改导致无法登陆后台的简单解决方法。分享给大家供大家参考,具体如下: 这几天博客刚刚建立好,于是就是注册了个顶级域名,然后就是去后台绑定了站点和Wordpress的URL,用了一天下来很正常,没想到在晚上时出现了问题。 在下午的时候

    2023年04月24日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包