简单登录页面(jsp、session、转发、重定向、数据库、验证码更新版)

Jsp+Servlet 实现用户登录简单案例 项目案例 用户名:admin 密码:admin 登录成功使用服务器内部转发到login_success.jsp页面,并且提示登录成功的用户名。 如果失败则请求重定向到login_failure.jsp页面。 Users.java package com.po; //用户类 public class Users { private String username; private Stri... 阅读详情

案例需求:

  1. 访问带有验证码的登录页面login.jsp
  2. 用户输入用户名,密码以及验证码。
  • 如果用户名和密码输入有误,跳转登录页面,提示:用户名或密码错误
  • 如果验证码输入有误,跳转登录页面,提示:验证码错误
  • 如果全部输入正确,则跳转到主页success.jsp,显示:用户名,欢迎您

分析:
在这里插入图片描述
数据库使用上篇博客的:https://blog.youkuaiyun.com/QLBFA/article/details/109985680

注意这里验证码改了一下,要存储生成的字符串:

package cn.itcast.servlet;

import javax.imageio.ImageIO;
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.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;

/**
 * @author QLBF
 * @version 1.0
 * @date 2020/11/26 10:43
 */
@WebServlet("/CheckCodeServlet")
public class CheckCodeServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int width = 100;
        int height = 50;

        //1.创建一对象,在内存中图片(验证码图片对象)
        BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);


        //2.美化图片
        //2.1 填充背景色
        Graphics g = image.getGraphics();//画笔对象
        g.setColor(Color.PINK);//设置画笔颜色
        g.fillRect(0,0,width,height);

        //2.2画边框
        g.setColor(Color.BLUE);
        g.drawRect(0,0,width - 1,height - 1);

        String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789";
        //生成随机角标
        Random ran = new Random();

        //存储生成的字符串:
        StringBuilder sb=new StringBuilder();
        for (int i = 1; i <= 4; i++) {
            int index = ran.nextInt(str.length());
            //获取字符
            char ch = str.charAt(index);//随机字符

            sb.append(ch);
            //2.3写验证码
            g.drawString(ch+"",width/5*i,height/2);
        }

        String checkCode_session = sb.toString();
        //将验证码存入session
        request.getSession().setAttribute("checkCode_session",checkCode_session);


        //2.4画干扰线
        g.setColor(Color.GREEN);

        //随机生成坐标点

        for (int i = 0; i < 10; i++) {
            int x1 = ran.nextInt(width);
            int x2 = ran.nextInt(width);

            int y1 = ran.nextInt(height);
            int y2 = ran.nextInt(height);
            g.drawLine(x1,y1,x2,y2);
        }


        //3.将图片输出到页面展示
        ImageIO.write(image,"jpg",response.getOutputStream());
    }

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

先判断验证码是否正确再判断密码:
这里正确账号密码是:zhangsan,123
结果:

  1. 账号密码正确,验证码错误
    使用转发到登录页面
    在这里插入图片描述

  2. 验证码正确,账号密码错误:
    使用转发到登录页面在这里插入图片描述

  3. 都正确:
    使用重定向(因为要在另一个页面展示,所以这里要两次请求,所以不用转发)
    在这里插入图片描述

附上代码链接:https://github.com/QLBF11/Java_small_important/tree/master/Login2

编写程序通过JSP与后台servlet文件实现用户的登录功能必须具备用户名,密码变量(账户为自己名字拼音,密码为学号)。 在Servlet中,可以获取用户提交的用户名和密码,并进行验证。如果用户名和密码正确,则可以将用户重定向到另一个页面,否则可以显示错误消息。在这个表单中,我们定义了两个输入框,分别是用户名和密码,以及一个提交按钮。首先你需要先创建一个JSP页面,用于用户输入用户名和密码。在这个Servlet中,我们首先定义了一个用户名和密码常量,用于验证用户输入的数据。方法中,我们获取用户提交的用户名和密码,并进行验证。如果用户名和密码正确,则将用户重定向到。否则,我们将错误消息存储在请求属性中,并将请求转发到。 阅读详情

相关推荐

javaweb登录页面验证码验证、session验证码详细步骤及疑问解决

1.  案例2——验证码登录与注销1.1.  验证码校验效果 1.2.  没有登录访问welcomeServlet的效果1.3.  登录成功后访问WelcomServlet的效果2.  实现步骤1、login.htm文件&lt;form class="form-horizontal" method="post" action="/DemoLogin/LoginServlet"&gt;   ...

qq_36371449的博客 3万+

Java中servlet和重定位、转发,以及简单的登陆注册界面的实现

1.Servlet注解和配置文件的写法 1.1配置文件的写法【如果Servlet版本低的话】 1.需要在web.xml文件中写配置 去找到这个资源web.xml 首先创建一个测试类继承HttpServlet并重写doGet和doPost方法 package com.javacoffee.test; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servle

来一杯Java咖啡 2966

35、(案例)用session实现完整的登录校验

案例需求: 1.访问带有验证码的登录页面login.jsp 2.用户输入用户名,密码以及验证码。 * 如果用户名和密码输入有误,跳转登录页面,提示:用户名或密码错误 * 如果验证码输入有误,跳转登录页面,提示:验证码错误 * 如果全部输入正确,则跳转到主页success.jsp,显示:用户名...

l0510402015的博客 837

Java Web实现用户登录功能

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

justin02191004的博客 5583

基于JSP的登录功能实现完整项目实战

JavaServer Pages(JSP)是一种基于Java的服务器端动态网页技术,允许开发者将Java代码嵌入HTML页面中,实现数据动态渲染。作为早期Java Web开发的核心技术之一,JSP在MVC架构中通常承担视图层职责,配合Servlet和JavaBean完成前后端交互。在用户登录功能中,JSP不仅负责展示登录表单,还能直接接收请求、调用业务逻辑并响应结果,具备快速构建交互页面的能力。其与Servlet容器深度集成,支持requestsession。

weixin_36235398的博客 667

别光看Demo了!用UE5 Lyra框架快速搭建你的多人对战游戏原型(含完整配置流程)

本文详细介绍了如何利用UE5 Lyra框架快速搭建多人对战游戏原型,包含完整的配置流程和实战案例。Lyra作为可直接二次开发的游戏模板,内置了GAS技能系统、Enhanced Input输入控制等核心功能,大幅缩短开发周期。通过替换角色模型、调整武器数值和配置新地图规则,开发者可在48小时内完成科幻团队竞技游戏原型的搭建。

weixin_28717411的博客 455

jsp来实现 验证码 登录案例 有图 有码

适用学习 对象 : java的 初学者 仅供参考----------- 需求 : 使用jsp来实现的 验证码 的 实现 : 分析 : login.jsp ------ LoginServlet ----- login.jsp ----------- form table 表单 : tr —td ======& jsp的预览 要在 服务器 里 运行...

qq_41934719的博客 2157

从OAuth到DID:Web4.0身份验证协议的技术演进图谱

在数字身份体系从Web2.0向Web4.0跨越的进程中,身份验证协议正经历着从中心化授权到自主主权的范式转移。本文通过对比OAuth 2.0、OpenID Connect等传统方案与W3C DID、ION等去中心化协议的技术架构,揭示身份验证技术在性能、安全、隐私三大维度的代际差异。基于对GitHub、欧盟数字身份钱包等典型系统的实测数据分析,量化评估中心化授权服务器的单点故障风险与DID链上验证的吞吐量瓶颈。结合零知识证明、分布式密钥管理等前沿技术,为开发者提供面向Web4.0的渐进式身份架构迁移策略。

水务人 833

验证码案例之Session补充

验证码案例之Session补充 案例需求 访问带有验证码的登录页面login.jsp 用户输入用户名,密码以及验证码。 若用户名和密码输入错误,则跳转到登陆页面,提示:用户名或密码错误 若验证码错误,则跳转到登录页面,提示:验证码错误 若全部输入正确,则跳转到主页home.jsp,显示:用户名,欢迎您 案例分析 代码实现 编写登陆页面login.jsp <%-- ...

暮光乐鱼的博客 448

CODESYS做Modbus TCP主站踩坑记:从IP配置到数据映射的完整避坑指南

本文详细记录了在CODESYS中配置Modbus TCP主站的全过程,从IP配置到数据映射的常见问题及解决方案。重点解析了网络适配器选择、Slave ID误解、地址偏移陷阱等关键问题,并提供了实用的调试技巧和性能优化建议,帮助工业通信开发者高效避坑。

weixin_30642561的博客 624

anaconda安装-超详细版

文章目录一、anaconda安装1.1 anaconda安装地址1.2 安装详细步骤检验安装是否成功更改conda源(后续安装第三方库可以加快速度) 一、anaconda安装 Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。装anaconda,就不需要单独装python了。 anaconda优点: 1、anaconda里面集成了很多关于python科学计算的第三方库,主要是安装方便,而p

in546的博客 25万+

写一个带有验证码的登录界面

要设计的结果如下图 首先验证码的形成,我们写一个servlet类 package servlet; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServl...

weixin_43186523的博客 1万+

基于强化学习的多无人机路径规划

我们使用了Dueling Double Deep Q-Network(DDDQN)算法来训练智能体,这个算法在深度Q学习算法的基础上进行了升级,具有更快的收敛速度和更好的性能。本文提出了一种基于强化学习的算法,实现了多无人机路径规划,并提供相应的MATLAB代码。通过基于强化学习的多无人机路径规划算法,我们能够高效地解决复杂环境下的任务需求,并在实际应用中取得了良好的效果。首先,我们定义了状态空间和动作空间。实验结果表明,我们的方法能够有效地解决多无人机路径规划问题,提高了任务完成的效率和准确率。

DjjPython的博客 820

jsp 登录验证_使用session做一个验证码的案例

使用session做一个验证码登录的案例转发:实现服务器的跳转重定向是浏览器的跳转问:什么时候使用转发,什么时候使用重定向?如果要保留请求域中的数据,使用转发,否则使用重定向。以后访问数据库,增删改使用重定向,查询使用转发。问:转发或重定向后续的代码是否还会运行?无论转发或重定向后续的代码都会执行https://ww.lanzous.com/b015g184b 密码:b53vhttps://www...

weixin_39886469的博客 302

virtuoso如何导出def?

在DEF Out界面,填写def name,library name以及cell name ,cell view既layout,把Output "Floating Shapes" into SPECIAL NETS Section勾上,OK即可。2)在要导出的layout界面选中PAD和prBoundary(shift+左键),快捷键C copy到空cell里,这时需要调整copy过来的object坐标,让两边prBoundary的坐标相同。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 2304

【StreamSet】ETL之StreamSet之Pipelines的状态监听之WebHook钉钉篇

介绍下StreamSets的状态监听以及钉钉的webhook的互联,这位博友问的恰是时候,不久前我刚刚对接过钉钉的机器人,这次看到这个问题,对我来说,应该轻车熟路了,那就有了这篇博文,状态监听之钉钉篇。...

m0_54252387的博客 487

通过session来判断用户输入的验证码是否相等

先来看一下界面效果 当点击登录时,服务器先判断用户输入的验证码是否相等,然后再判断用户名和密码是否相等。 login.jsp代码如下 <form action="/day16/loginServlet" method="post"> <table> <tr> <td...

u010632547的博客 1512

【DaVinci Developer专题】-8-创建一个枚举Enum ADT(Application Data Type)

目录 1 创建一个枚举Value ADT(Application Data Type) 1.1 命名application data type 1.2 创建一个computation method计算方法属性 1.3 创建一个Contraint约束条件属性 2 创建了一个新的Type Mapping Sets 3 创建了一个S/R Port Interface 4 SWC引用Type Mapping set 5 导入CFG生成代码的总结 6 结尾 <--返回「实战篇」博文-总目录-

「汽车电子助手」的博客 2291

JAVA Web验证码案例实现

看完视频学完cookie和session后来总结完成一个小案例,还是有点小难度的. 案例说明 1.访问带有验证码的登录页面login.jsp 2.用户输入用户名,密码以及验证码 2.1 如果用户名和密码输入有问题,跳转登录页面,提示用户名或密码错误 2.2 如果验证码输入有误,跳转登录页面,提示:验证码错误 2.3 如果全部输入正确,则跳转页面success.jsp,显示:用户名,欢迎 ...

weixin_47701814的博客 1580

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

jsp+servlet 登录界面含验证码可注销

login.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>登录</title> <script type="text/javascript"&g.

BADReamer的博客 709

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Session+JSP Demo

验证码案例: 需求: 1.访问带有验证码的登录页面login.js 2.用户输入用户名和密码 如果用户名和密码错误,跳转到登录页面,提示用户名密码错误 如果验证码有误,跳转到登录页面,提示验证码错误 如果全部输入正确,则跳转到success.jsp,显示用户名,欢迎您! 步骤: 1.设置request的编码 2.获取参数Map集合 3.获取验证码 4.将用户信息封装到Us...

asssaaafq124141的博客 167

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java web-简单的验证码登录验证

java web-简单的验证码登录验证 小结思路:编写login.jsp,登录页面展示,并且提交用户填的信息,调用资源Loginservlet进行判断,由于验证码每次刷新都是调用checkServlet进行随机创建,所以必须在一创建就传入session内部进行保存,共享资源,之后来到loginServlet里的逻辑判断,获取session下的验证码,先判断验证码,之后再判断数据库内的用户信息是否一...

weixin_38023259的博客 923

Day119.简单书城项目---第六阶段<登录注销验证码> -JavaWeb

第六阶段【登录注销验证码】 一、登陆—显示用户名 UserServlet 程序中保存用户登录的信息 将loginUser的信息保存到session域中 修改 login_succuess_menu.jsp 通过EL表达式,在session域中获取键值对user的loginUser信息中的username 优化修改首页 index.jsp 页面的菜单 : 通过JSTL标签if判断,session域中是否存在user, 若不存在,则显示【登录】和【注册】 若存在,则显示【用户名】、【我的订单】和【注销】

阿昌爱Java 523

验证码案例实现

文章目录一、需求分析 一、需求分析 (1)访问带有验证码的登录页面login.jsp (2)用户输入用户名,密码以及验证码。 * 如果用户名和密码输入有误,跳转登录页面,提示:用户名或密码错误 * 如果验证码输入有误,跳转登录页面,提示:验证码错误 * 如果全部输入正确,则跳转到主页success.jsp,显示:用户名,欢迎您 ...

南淮北安的博客 820

6、项目第六阶段——用户名登录显示和注册验证码

UserServlet 程序中保存用户登录的信息。

weixin_53330986的博客 614

登录时“自动填充”和“验证码”的实现

完成用户登录功能,如果用户选择记住用户,则下次登陆时回显用户名和密码; 完成注册功能,并实现验证码功能;

机械工程跑路哥 3452
上一篇: Session快速入门(共享数据)及原理、与cookie区别
下一篇: JSP:500友好页面errorPage
Mike-H
博客等级 码龄8年 27粉丝 141原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值