Java Web笔记 – 客户端Javascript与服务器端Servlet的验证

Java Web图书馆系统:Servlet+JDBC+MySQL 8.0可运行课设源码 Java Web是高校计算机专业核心实践环节,涉及Servlet生命周期、JDBC数据库连接、HTTP请求响应等基础概念。其原理在于通过web.xml配置路由实现MVC分层,结合事务控制保障数据一致性。技术价值体现在脱离框架依赖、代码路径透明、便于调试与教学验证。典型应用场景包括课程设计交付、Java后端入门实训及传统Web架构理解。本文提供经Tomcat 9与MySQL 8.0实测部署的完整图书馆系统,涵盖建库脚本、三层架构源码、手写连接池与存储过程事务实现,聚焦Servlet+JDBC这一经典技术栈的工 阅读详情
1、验证:
客户端验证:
减少服务器负载
缩短用户等待时间
兼容性难
服务器端验证:
统一确认
兼容性强
服务器负载重
2、使用Javascript进行表单检验的常用方法:
var username = document.getElementById("username");
var username = document.getElementsByName("username")[0];
var nodes = document.getElementsByTagName("input");

 
2.1、基本的表单验证例子:

HTML代码:

 
<form onsubmit="return validate()" action="loginServlet">
username:<input type="text" id="username" name="username"/><br />
password:<input type="password" id="username" name="password"><br />
<input type="submit" value="submit" />
</form>

JS验证代码:

function validate(){
    //使用getElementById方法获取元素
    var username = document.getElementById("username");
    var password = document.getElementById("password");

    //使用getElementsByName获取一组元素
    //var username = document.getElementsByName("username")[0];
    //var username = document.getElementsByName("password")[0];

    //获取元素的值 并判断长度
    if(username.value.length == 0){
        alert("用户名不能为空");
        return false;
    }
    if(password.value.length <6){
        alert("密码不能少于6位");
        return false;
    }
    return true;
}

//根据标签获取元素组
var nodes = document.getElementsByTagName("input");
for(var i=0; i<nodes.length; i++){
    //获取标签类型
    alert(nodes[i].type);
}

2.2、单选按钮的验证例子:

HTML代码:

男<input type="radio" name="gender" value="男">
女<input type="radio" name="gender" value="女">

JS验证代码:

//单选按钮的验证
var gender = document.getElementsByName("gender");
if(!gender[0].checked && !gender[1].checked){
    alert("请选择性别!");
}

2.3、复选框全选的例子:

HTML代码:

<input type="checkbox" name="selectAll" onclick="selectAll()">Select all<br />
<input type="checkbox" name="number" value="1">1<br />
<input type="checkbox" name="number" value="2">2<br />
<input type="checkbox" name="number" value="3">3<br />
<input type="checkbox" name="number" value="4">4<br />
<input type="checkbox" name="number" value="5">5<br />
<input type="checkbox" name="number" value="6">6<br />
<input type="checkbox" name="number" value="7">7<br />
<input type="checkbox" name="number" value="8">8<br />
<input type="checkbox" name="number" value="9">9<br />
<input type="checkbox" name="number" value="10">10<br /><input type="checkbox" name="number">10<br />

JS代码:

/* 复选框全选的函数 */
function selectAll(){
    var selectAll = document.getElementsByName("selectAll")[0];
    if(selectAll.checked){
        var numbers = document.getElementsByName("number");
        for(var i=0; i<numbers.length; i++){
            numbers[i].checked = true;
        }
    } else {
        for(var i=0; i<nmubers.length; i++){
            numbers[i].checked = false;
        }
    }
}

判断复选框是否有选择:

/* 验证用户选择的个数 */
function validateCheckbox(){
    var n = 0;
    for(var i=0; i<numbers.length; i++){
        if(numbers[i].checked){
            n++;
        }
    }
    if(n < 1){
        alert("至少要选择一项");
    }
}

3、在服务器端使用Servlet进行验证的例子:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    String username = req.getParameter("username");
    String password = req.getParameter("password");
    //获取单选按钮的值
    String gender = req.getParameter("gender");
    //获取复选框的值
    String[] numbers = req.getParameterValues("number");

    List<String> list = new ArrayList<String>();
    //验证判断
    if("".equals(username)){
        list.add("用户名不能为空");
    }
    if(password == null){
        list.add("用户密码不能为空");
    }
    if(password != null && password.length()<6){
        list.add("用户密码不能少于6位");
    }
    //页面跳转
    if(list.isEmpty()){
        req.getRequestDispatcher("index.jsp").forward(req, resp);
    } else {
        req.setAttribute("error", list);
        req.getRequestDispatcher("error.jsp").forward(req, resp);
    }    
}

4、Servlet中的编码设置:
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
...
//编码设置
gender = new String(gender.getBytes("iso-8859-1"),"utf-8");

JavaWeb实战源码:从Servlet生命周期到Spring事务避坑指南 JavaWeb是Java企业级开发的基石技术栈,涵盖Servlet容器、JSP/Thymeleaf模板、MyBatis数据访问与Spring事务管理等核心模块。其本质是理解请求如何被Tomcat解析、Servlet如何响应、Filter链如何拦截、事务边界如何划定。掌握web.xml配置规范、#{}与${}防SQL注入差异、@Transactional失效场景等底层原理,才能真正实现可调试、可拆解、可复用的工程化开发。本文聚焦JavaWeb开发中高频卡点——404路由映射失败、EL表达式失效、事务不回滚、中 阅读详情

相关推荐

JSP旅游网站源码实战:Java Web原生开发硬功夫

JSP(Java Server Pages)是Java Web开发中用于动态网页生成的基础技术,其核心原理在于将Java逻辑嵌入HTML模板,通过Servlet容器(如Tomcat)编译执行,实现MVC分层中的视图层。该技术虽常被新框架替代,但在教学验证、老系统维护和轻量级后台开发中仍具不可替代的技术价值——它直面HTTP请求生命周期、会话管理、JDBC连接与EL/JSTL表达式渲染等底层机制。掌握JSP不仅意味着理解<%= %>脚本片段、c:forEach标签和web.xml配置,更关键的是构建对requ

weixin_34101784的博客 367

JavaWeb 实验 Servlet用户登录验证

实验2.2 Servlet用户登录验证 实验内容: 编写JSP程序,实现用户提交登录表单给Servlet,由Servlet 查询数据库(模拟查询,不用真的连接数据库查询),对用户是否存在进行验证。 实验步骤: (1)编写一个验证用户的Servlet(LoginServlet. java),再编写登录页面程序login.html、登录成功页面welcome.jsp和登录失败页面loginfail.jsp。 (2)运行程序查看效果。 代码结构: 登陆页面参考实验1 chec...

GAVT的博客 3882

Java Web智能垃圾分类系统:图像特征识别+规则匹配实战

智能垃圾分类是计算机视觉与Web工程交叉的典型应用场景,其核心在于图像特征提取(如主色调、纹理)与业务规则映射的结合。不同于调用第三方AI云API,本方案基于Java原生图像处理(BufferedImage)和轻量级规则引擎,实现离线、可调试、可解释的分类逻辑,具备低算力依赖、高答辩可控性等技术优势。广泛适用于高校课程设计、本科毕业设计及Java Web工程能力进阶训练,在环保信息化、物联网边缘识别、教学演示系统等场景中具有明确落地价值。

weixin_34293246的博客 429

利用Servlet和jsp实现客户端与服务器端的用户登录信息验证

首先编写登录页面mylogin.jsp 编写表单: <form onsubmit="return valdate()"> username: <input type="text" name = "username" id="username"><br/> password: <input type="password...

awp51086的博客 325

JavaWeb电商实战:JSP+Servlet+MySQL+Bootstrap完整闭环

JavaWeb是Java工程师掌握服务端基础能力的关键技术栈,其核心在于理解HTTP请求生命周期、Servlet容器调度机制与JSP动态渲染原理。通过构建一个真实可运行的电商网站,开发者能深入掌握表单数据接收(GET/POST差异)、中文乱码全链路治理(Tomcat URIEncoding + JDBC charset + request.setCharacterEncoding)、Session购物车管理及JSTL/EL表达式应用等关键技术价值。典型应用场景包括高校课程设计、转行者项目练手及传统企业内部管

weixin_34221654的博客 349

JavaWeb校园订餐系统:Servlet+JSP+MySQL全流程实战

JavaWeb 是基于 Servlet 规范构建动态 Web 应用的基础技术体系,其核心在于理解 HTTP 请求如何经 Tomcat 容器调度至 Servlet 生命周期,并通过 JDBC 与 MySQL 数据库完成数据持久化。该技术栈虽不依赖 Spring Boot 等高级框架,却能清晰展现请求处理、事务控制、状态机管理与字符集适配等关键原理,具备强教学价值和轻量级生产适用性。典型应用场景包括高校内部管理系统、中小机构业务平台及计算机专业课程设计项目。本文以可真实运行的校园订餐系统为例,深入解析原生 Se

weixin_33924220的博客 416

基于Servlet实现登录验证功能

一:思路:登录验证小项目流程: 1.使用原生的方式生成页面; 2.客户端先发送请求,得到要登录的页面; 3.用户填写相应的用户数据,发送请求给服务器; 4.服务端接受到请求后进行逻辑处理; 5.服务端将处理之后的结果返回给客户端; 二:实现: 1.第一步:生成生成登录页面: package com.cy.controller; import javax.s...

weixin_51338804的博客 2201

JavaWeb商品管理系统:Tomcat+MySQL可运行实战指南

JavaWeb 是基于 Servlet/JSP 规范的动态网页开发技术,其核心在于容器(如 Tomcat)对请求生命周期的管理、JDBC 数据库连接机制,以及 Web 应用目录结构(如 WEB-INF)的严格约定。掌握这些原理,才能规避常见工程问题,例如 JSP 404、No suitable driver 异常、request.getParameter() 返回 null 等。本实践项目聚焦真实可部署场景,深度融合 Tomcat 配置、MySQL 8.0+ 连接适配与 Servlet 路由调试,覆盖从环境

weixin_34163553的博客 417

JavaWeb学习——Servlet&JSP用户注册及验证码实现案例(23)

日常学习笔记

Hoorus的窝 2471

JSP图书馆借阅系统实战:从部署到业务跑通

JSP作为经典的Java Web技术,虽常被误认为过时,实则在轻量级、内网部署、快速交付场景中具备独特优势。其核心原理是将HTML模板、Java逻辑与Servlet容器深度集成,通过JSP页面嵌入表达式和脚本片段实现服务端动态渲染,无需复杂构建流程与前端工程化。技术价值体现在极简部署(Tomcat一键启动)、确定性运维(无跨域/Nginx配置负担)和低学习门槛(适合教学与毕设)。典型应用场景包括高校二级学院图书系统、县级图书馆内部平台及行政类内部管理系统。本文聚焦JSP图书馆借阅系统的环境搭建、数据库对接、

weixin_34185512的博客 406

verificator:客户端和服务器端验证JavaScript库

验证器 客户端和服务器端验证JavaScript库 安装 要将Verificator与Yarn一起安装,请运行: yarn add verificator 要使用npm安装Verificator,请运行: npm install --save verificator 入门 使用CDN < script crossorigin src =" https://unpkg.com/verificator@latest/dist/verificator.min.js " > </ script > < script crossorigin src =" https://unpkg.com/verificator@latest/dist/locale/en.js " > </ script > < script > var locale = VerificatorLocale . en

投票管理系统案例-Java Web开发实例

1、表单的确认 • 客户端确认 – 减少服务器负载 – 缩短用户等待时间 – 兼容性难 • 服务器端确认 – 统一确认 – 兼容性强 – 服务器负载重 2、JSP与客户机的交互 • 从表单中获得参数 • 返回参数 • 表单的服务器端确认 3、从表单中获得参数 • JSP通过request内置对象获取表单信息 • 用不同的方法获取不同种类的信息 • 获取参数的主要方法:

lei的博客 1万+

FLUKA软件在Ubuntu的安装指南(亲测有效)

FLUKA其强大的蒙特卡洛模拟能力使得用户能够模拟复杂的辐射相互作用过程

chencheng1127的博客 2887

Servlet – HttpSession 登录和注销及使用JavaScript定时刷新会话防止会话服务器过期及无活动超时自动注销示例

一般来说,计算语言中的术语“会话”是指用户活动在网站上发生的一段时间。每当您登录应用程序或网站时,服务器都应验证/识别用户并跟踪整个应用程序中的用户交互。为了实现这一点,Java Web Server 支持称为 HttpSession 的 servlet 标准会话接口来执行所有与会话相关的活动。 HttpSession 接口 Java servlet在 javax.servlet.http 包中有HttpSession (I)。此界面提供了一种方法来识别超过一页请求或访问网站的用户。Servlet 容器

allway2的博客 4596

用YOLO11-seg玩转裂缝分割:CBAM注意力魔改+轻量化GhostConv实战

本文详细解析了如何利用YOLO11-seg进行裂缝分割任务,结合CBAM注意力机制和GhostConv轻量化改造,显著提升模型性能。通过实战案例展示从数据准备、模型训练到部署优化的全流程,特别针对小目标检测和复杂背景干扰等挑战提供解决方案,最终实现高效准确的裂缝检测系统。

j0k1l2m3n的博客 287

STM32异常与中断过程详解

1. 异常与中断概念引入 异常主要是指来自CPU内部的意外事件,比如执行了未定义指令、算术溢出、除零运算等发生在CPU内部的意外事件,这些异常的发生,会引起CPU运行相应的异常处理程序;中断一般来自硬件(如片上外设、外部I/O输入等)发生的事件,当这些硬件产生中断信号时,CPU会暂停当前运行的程序,转而去处理相关硬件的中断服务程序。但无论是异常还是中断,都会引起程序执行偏离正常的流程,转而去执行异常/中断的处理函数。 下面对异常和中断的介绍,如果中断信号的产生原因来自CPU内部,则称之为异常;如果中断信号来

luobeihai的博客 1万+

java web 表单验证

表单确认 • 客户端确认 – 减少服务器负载– 缩短用户等待时– 兼容性难 客户端 确认经常用到 javascript 基本的javascript 程序结构  javascript 中的变量类型 只有 var document 是javascript 内部对象 代表了当前的文档本身 &lt;script type="text/javascript"&gt; ...

iteye_5399的博客 324

基于ADS\HFSS\Matlab的平面带通发夹滤波器设计

写在最前面,前段时间完成了一个小项目,实现13.5~14GHz的带通滤波器,算是第一个微波项目,在老师、学长、各种大神的指点下,最终完成了指标,想来这段时间收获良多,想到老师教导的,有能力的话要尽可能帮助别人,以及网络上很少面向于小白的教程,于是决定把自己做这个小项目的经过,一些关键步骤,还有软件操作和公式讲解都发出来,供大家指正借鉴。由于我目前大三,刚学习电磁场、微波工程等等,技术实在有限,同时这样是我第一次发帖子,只能尽可能的将自己确认过正确的内容,步骤以及一些经验写出来,供大家借鉴。

likaifeng12138的博客 5222

tomcat

Tomcat 是一个免费开源的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问不高的场景下广泛使用。它既是 Servlet 容器,也是 JSP 容器,可以处理动态页面(JSP/Servlet),同时也可以作为静态资源服务器(但性能不如 Nginx)。server.xml:主配置文件,可修改端口、虚拟主机、连接器等。:应用上下文配置,可用于全局或单个应用的配置。web.xml:默认的 Web 应用部署描述符,定义 Servlet 映射等。

abrspo的博客 258

GEE AI: 利用 Satellite Embedding 语义搜索快速识别研究区目标斑块

摘要 本文介绍了一种基于Google Earth Engine的遥感语义搜索技术,利用Satellite Embedding数据集快速识别目标地物。该方法通过将光谱信息转化为高维向量,在武汉市的案例中展示了如何:1)定义研究区和样本点;2)加载预处理的Embedding数据;3)计算向量相似度;4)结合面积过滤优化结果。相比传统监督分类,该技术具有响应快速(无需模型训练)、抗季节干扰和精准界定等优势,特别适用于森林碳储量监测和土地利用检测等应用场景。文中提供了完整的GEE代码实现流程,包括样本定义、相似度计

此星光明博客 625

北斗导航 | 2023 PTTI会议论文 2023 ITM会议论文 2022 ION GNSS+ 会议论文下载:ION 美国导航学会

2023 国际技术会议(ITM) 2023 精密时间和时间间隔系统和应用会议(PTTI) 2022 美国导航学会国际会议(ION GNSS +)

尘世冰封的专栏 4615

JavaWeb - 联系人信息管理

文章目录github项目地址:1-界面展示2-登录3-添加联系人4-删除联系人5-修改联系人6-删除选中的联系人7-分页查询功能服务器端客户端在domain包内新建PageBean对象前端后台调用8-复杂条件查询 github项目地址: https://github.com/pityk3369/JavaWeb-ContactManager 1-界面展示 之前由于未加入CSS文件夹下的内容,...

锅巴 1121

【Simulink教程案例18】基于simulink的基础OFDM+64QAM发射接收链路仿真

OFDM(Orthogonal Frequency Division Multiplexing)即正交频分复用技术,实际上OFDM是MCM(Multi Carrier Modulation),多载波调制的一种。通过频分复用实现高速串行数据的并行传输, 它具有较好的抗多径衰落的能力,能够支持多用户接入。OFDM技术由MCM(Multi-Carrier Modulation,多载波调制)发展而来。OFDM技术是多载波传输方案的实现方式之一,它的。

FPGA/MATLAB学习教程/源码/项目合作开发 1990
上一篇: Java中的instanceof关键字
下一篇: Java Web笔记 – 转发与重定向的区别与在FireBug客户端的表现
zi_jun
博客等级 码龄18年 109粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值