利用servlet来实现JSP页面登录注册功能

学习目标:

  • 实验名称:JSP内置对象
  • 目的:掌握JSP页面的全部语法。能够编写基本的JSP网页。

学习内容:

1、实验
■地点:周三2单元,10617综合一实验室,自带电脑
■目的:掌握各种内置对象的主要使用方法,能使用内置对象完成具体的功能。
■内容:
◆(1 )改进注册功能,注册成功将用户注册信息保存在application中。(2)改进登录功能,将用户登录信息跟application中存储的进行比对校验,若登录成功进入主页并将账号存入session ,若登录失败回到登录页面。
■要求:
实验课前着手实验
>实验课最后半小时组长组织小组演示验收,互评打分,组长将最终成绩发给老师
◆本次写实验报告,上传学习通
实验课上小组互评打分标准:
90-100分:完成实验,运行效果好。
80-89分:基本完成实验或有瑕疵,运行效果- -般。70-79分:实验进行了一半以上。
60-69 :实验进行了不到- -半。
60分以下:还在学习消化,没有开始实验。


学习时间:

  • 周一至周五晚上 7 点—晚上9点
  • 周六上午 9 点-上午 11 点
  • 周日下午 3 点-下午 6 点

学习产出:

 

 

RegisterServlet.java

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;

@WebServlet("/registerServlet")
public class RegisterServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");

        ServletContext application=this.getServletContext();



        PrintWriter out = response.getWriter();

        String path = request.getContextPath();
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        request.getSession().setAttribute("username",username);
        HashMap<String,String> userMap = (HashMap<String,String>)application.getAttribute("userMap");

        if(userMap==null){
            userMap = new HashMap<String,String>();
            userMap.put(username,password);
            application.setAttribute("userMap",userMap);
            out.print("注册成功! 即将返回主页面");
            response.setHeader("refresh","2;url="+path+"/index.jsp");
        }else{
            if(userMap.containsKey(username)){
                out.print("账号已存在! 即将返回注册页面");
                response.setHeader("refresh","2;url="+path+"/register.jsp");
            }else{
                userMap.put(username, password);
                out.print("注册成功! 即将返回主页面");
                response.setHeader("refresh","2;url="+path+"/index.jsp");
            }
        }
    }
}

 LoginServlet.java

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.HashMap;
import java.io.PrintWriter;
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doGet(request, response);
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        //导入session
        HttpSession session = request.getSession();
        //导入application
        ServletContext application=this.getServletContext();
        //导入out
        PrintWriter out = response.getWriter();

        //获取路径
        String path = request.getContextPath();
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        request.getSession().setAttribute("username",username);
        HashMap<String,String> userMap = (HashMap<String,String>)application.getAttribute("userMap");

        if(userMap==null){
            out.print("登录失败! 即将返回登录界面");
            response.setHeader("refresh","2;url="+path+"/login.jsp");
        }else{
            String pwd = userMap.get(username);
            if(pwd!=null && pwd.equals(password)){
                session.setAttribute("username", username);
                out.print("登录成功! 即将返回主页面");
                response.setHeader("refresh","2;url="+path+"/index.jsp");
            }else{
                out.print("登录失败! 即将返回登录界面");
                response.setHeader("refresh","2;url="+path+"/login.jsp");
            }
        }
    }
}

index.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>

<html>
<body>
<h2>欢迎来到主页面!</h2>
<%
    request.setCharacterEncoding("utf-8");
    String username = request.getSession().getAttribute("username").toString();
%>
<h3 style="color: red">您好,<%=username %></h3>

</body>
</html>

register.jsp

<%--
  Created by IntelliJ IDEA.
  User: baizhimin
  Date: 2023/3/23
  Time: 22:08
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Registration Page</title>
</head>
<body>
<h1>注册页面</h1>
<form action="<%=request.getContextPath()%>/registerServlet" method="POST">
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username" required>
    <br><br>
    <label for="password">密码:</label>
    <input type="password" id="password" name="password" required>
    <br><br>
    <input type="submit" value="注册" onclick="alert('注册成功')">
</form>
<br>
<p>已有账户? <a href="login.jsp">点击登录</a></p>
</body>
</html>

Login.jsp

<%--
  Created by IntelliJ IDEA.
  User: baizhimin
  Date: 2023/3/23
  Time: 22:08
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login Page</title>
</head>
<body>
<h1>登录页面</h1>
<form action="<%=request.getContextPath()%>/loginServlet" method="POST">
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username" required>
    <br><br>
    <label for="password">密码:</label>
    <input type="password" id="password" name="password" required>
    <br><br>
    <input type="submit" value="登录">
</form>
<br>
<p>没有账户? <a href="register.jsp">点击注册</a></p>
</body>
</html>

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值