jsp-登录案例

Posted Vodka~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp-登录案例相关的知识,希望对你有一定的参考价值。

/*
* 后台登录功能步骤:
* -接收客户端的请求(参数包含用户信息)
* 1.判断用户所有信息是否填写完整:
* -如果参数为空:
* 通过消息模型对象返回结果(设置状态,提示哪些参数为空,回显数据),将消息模型对象设置到request作用域,
* 请求转发跳转到登录页面,return
* 2.判断用户填写信息是否存在于数据库:
* -如果用户对象为空:
* 通过消息模型对象返回结果(设置状态,提示哪些参数为空,回显数据),将消息模型对象设置到request作用域,
* 请求转发跳转到登录页面,return
* 3.判断用户填写的信息是否完全符合:
* -如果用户对象有信息出错:
* 通过消息模型对象返回结果(设置状态,提示哪些参数出错,回显数据),将消息模型对象设置到request作用域,
* 请求转发跳转到登录页面,return
* 如果相等,表示登录成功,跳转到登录页面,并且将用户信息设置到Session作用域。
* 4.controller层(接收请求,响应结果):
* -接收客户端请求(接收参数:姓名,密码)
* -调用service层的方法,返回消息模型对象
* -将消息模型对象设置到不同的作用域中
* -请求转发跳转到登录页面
* service层(业务逻辑层):
* -判断参数是否为空:如果为空,则将状态码,提示信息,回显信息设置到消息模型对象,并返回该对象
* -调用Dao层(mapper层):该类实现了数据操作的接口的各种方法
* mapper层:
* 定义对应接口,并且由mapper文件实现接口里的所有方法
* */

//LoginServer.java
在这里插入代码片@WebServlet(urlPatterns = {"/MainServer"})
public class LoginServer extends HttpServlet {
    private SqlSession ss = mybatisConnect.StartSqlSession();
    @Override
    protected  void  service(HttpServletRequest req, HttpServletResponse res){
       /*
       *      后台登录功能步骤:
       *         -接收客户端的请求(参数包含用户信息)
       *      1.判断用户所有信息是否填写完整:
       *            -如果参数为空:
       *                通过消息模型对象返回结果(设置状态,提示哪些参数为空,回显数据),将消息模型对象设置到request作用域,
       *                请求转发跳转到登录页面,return
       *      2.判断用户填写信息是否存在于数据库:
       *              -如果用户对象为空:
       *                   通过消息模型对象返回结果(设置状态,提示哪些参数为空,回显数据),将消息模型对象设置到request作用域,
        *                请求转发跳转到登录页面,return
       *      3.判断用户填写的信息是否完全符合:
       *              -如果用户对象有信息出错:
       *                通过消息模型对象返回结果(设置状态,提示哪些参数出错,回显数据),将消息模型对象设置到request作用域,
        *                请求转发跳转到登录页面,return
        *             如果相等,表示登录成功,跳转到登录页面,并且将用户信息设置到Session作用域。
        *     4.controller层(接收请求,响应结果):
        *           -接收客户端请求(接收参数:姓名,密码)
        *           -调用service层的方法,返回消息模型对象
        *           -将消息模型对象设置到不同的作用域中
        *           -请求转发跳转到登录页面
        *       service层(业务逻辑层):
        *           -判断参数是否为空:如果为空,则将状态码,提示信息,回显信息设置到消息模型对象,并返回该对象
        *           -调用Dao层(mapper层):该类实现了数据操作的接口的各种方法
        *       mapper层:
        *           定义对应接口,并且由mapper文件实现接口里的所有方法
       * */
        try {
//           设置请求头解码编码方式
            req.setCharacterEncoding("UTF-8");
            res.setHeader("content-type","text/html;charset=utf-8");
            String UserAccount = req.getParameter("UserAccount");
            String UserName = req.getParameter("UserName");
            String UserPassword = req.getParameter("UserPassword");
            String UserAge = req.getParameter("UserAge");
            UserMapper UM = ss.getMapper(UserMapper.class);
            UserInfo User = UM.GetUserByID(UserAccount);
            System.out.println(User);
            HttpSession hs = req.getSession();
            hs.setAttribute("UserAccount",UserAccount);
            hs.setAttribute("UserName",UserName);
            hs.setAttribute("UserAge",UserAge);
            hs.setAttribute("UserPassword",UserPassword);
            if(User == null || !User.getUserPassword().equals(UserPassword)){
                hs.setAttribute("Msg","用户不存在或信息填写错误");
                res.sendRedirect("Validation.jsp");
            }
            if(User.getUserAccount().equals(UserAccount) && User.getUserPassword().equals(UserPassword)){
                 res.sendRedirect("Index.jsp");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}



//RegisterServer.java
@WebServlet(urlPatterns = {"/RegisterServer"})
public class RegisterServer extends  HttpServlet{
    private String UserAccount;
    private String UserName;
    private String UserAge;
    private String UserPassword;
    SqlSession sql = mybatisConnect.StartSqlSession();
    @Override
        protected  void  service(HttpServletRequest req, HttpServletResponse res){
//        设置请求头解码编码方式
        try {
            req.setCharacterEncoding("UTF-8");
            res.setHeader("content-type","text/html;charset=utf-8");
        } catch (Exception e) {
            e.printStackTrace();
        }

        //将注册用户的信息添加到一个对象,再将该对象添加到消息模型中
            UserInfo UI = new UserInfo();
            UserAccount = req.getParameter("UserAccount");
            UserName = req.getParameter("UserName");
            UserPassword = req.getParameter("UserPassword");
            UserAge = req.getParameter("UserAge");
            UI.setUserAccount(UserAccount);
            UI.setUserName(UserName);
            UI.setUserAge(UserAge);
            UI.setUserPassword(UserPassword);
            System.out.println(UI.getUserPassword());

//          存进数据库,并提交事务
            UserMapper UM = sql.getMapper(UserMapper.class);
            UM.AddUser(UI);
            sql.commit();
//          再将消息模型对象添加到request作用域,再定向转发到Login页面
            MsgModule MsgM = new MsgModule();
            MsgM.setOb(UI);
            System.out.println();
            HttpSession ss = req.getSession();
            ss.setAttribute("UserAccount",UserAccount);
            ss.setAttribute("UserName",UserName);
            ss.setAttribute("UserAge",UserAge);
            ss.setAttribute("UserPassword",UserPassword);
        try {
            res.sendRedirect("Validation.jsp");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}




//Register.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册页面</title>
</head>
<body>
    <form id="Register" method="post" action="RegisterServer">
        账号:<input id="UserAccount" name="UserAccount" type="text"/>    <br>
        姓名:<input id="UserName" name="UserName" type="text"/>   <br>
        年龄:<input id="UserAge" name="UserAge" type="text"/>   <br>
        密码<input id="UserPassword" name="UserPassword" type="password"/>   <br>
        <button type="button" id="Regist">注册</button> <br>
        <span id="WarningBar" style="font-size: 15px; color:red"></span>
    </form>
</body>

<%--引入jQuery文件--%>
<script src="/jquery/dist/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" >
    //自定义一个判断当前字符是否为空的函数
    function  IsEmpty(str) {
        if(str == null || str.trim() === ""){
            return true;
        }else{
            return false;
        }
    }
    //封装juquery获取ID元素信息值的方法
    function GetIDNodeVal( NodeName){
        return $( "#"+ NodeName ).val();
    }
    //注册信息是否填写完整
    $("#Regist").click(()=>{
        var UserAccount = GetIDNodeVal("UserAccount");
        var UserName = GetIDNodeVal("UserName");
        var UserAge = GetIDNodeVal("UserAge");
        var UserPassword = GetIDNodeVal("UserPassword");

        if(IsEmpty(UserAccount)){
             $("#WarningBar").html("账号不能为空!");
        }
        if(IsEmpty(UserName)){
            $("#WarningBar").html("用户名不能为空!");
        }
        if(IsEmpty(UserAge)){
            $("#WarningBar").html("年龄不能为空!");
        }
        if(IsEmpty(UserPassword)){
            $("#WarningBar").html("密码不能为空!");
        }

        $("#Register").submit();
    })
</script>
</html>



//Validation.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--引入所需要的标签库--%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="v"%>
<html>
<head>
    <title>登录页面</title>
    <style>
        .FormValidation{
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            justify-content: center;
            /*background-color: #00ffff;*/
            margin-left: 500px;
            margin-top: 200px;
            width: 300px;
            height: 300px;
        }
    </style>
</head>
<body>
     <div class="FormValidation" >
         <form action="MainServer" method="post" id="FormValidation">
             Account:<input type="text" name="UserAccount" id="UserAccount"   value="${UserAccount}">  <br>
             NickName:<input type="text" name="UserName" id="UserName"  value="${UserName}"> <br>
             Age:<input type="text" name="UserAge" id="UserAge"  value="${UserAge}"> <br>
             Password:<input type="password" name="UserPassword" id="UserPassword"  value="${UserPassword}"> <br>
             <button id="SubmitButton" type="button">Submit</button>  <br>
             <button id="RegisterButton" type="button">Register</button> <br>
             <span id="WarningBar" style="color:#ff0000">${Msg}</span>
         </form>
     </div>
</body>


<%--引入jQuery文件--%>
<script src="/jquery/dist/jquery.min.js"/>" type="text/javascript"></script>
<script type="text/javascript">
    //提交按钮绑定监听事件
     $("#SubmitButton").click(()=>{
         let UserName = $("#UserName").val();
         let UserAccount = $("#UserAccount").val();
         let UserPassword = $("#UserPassword").val();
         let UserAge = $("#UserAge").val();
         if(IsEmpty(UserAccount)){
             $("#WarningBar").html("账号不能为空!");
         }
         if(IsEmpty(UserName)){
             $("#WarningBar").html("用户名不能为空!");
         }
         if(IsEmpty(UserAge)){
             $("#WarningBar").html("年龄不能为空!");
         }
         if(IsEmpty(UserPassword)){
             $("#WarningBar").html("密码不能为空!");
         }
         if(!IsEmpty(UserAccount) && !IsEmpty(UserAccount) && !IsEmpty(UserAccount) && !IsEmpty(UserAccount)){
             $("#FormValidation").submit();
         }


     });
    //注册按钮绑定监听事件
    $("#RegisterButton").click(()=>{
        window.location.href ="/Register.jsp";
    });
     //自定义一个判断当前字符是否为空的函数
    function  IsEmpty(str) {
       if(str == null || str.trim() === ""){
           return true;
       }else{
           return false;
       }
    }
</script>

</html>



//Index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>主页面</title>
</head>
<body>
     <h1>欢迎${UserName}登录到本网站!</h1>
</body>
</html>


//mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jd

以上是关于jsp-登录案例的主要内容,如果未能解决你的问题,请参考以下文章

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

Java 之 Session 包含验证码登录案例

jsp基础语言-jsp代码段

JSP +MySQL实现网站的登录与注册小案例

jsp-登录案例

JDBC+MySQL+jsp+sevlet登录案例