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万+

VScode - 从入门到精通:高效开发环境搭建指南

本文是一份全面的VSCode高效开发环境搭建指南。从选择理由、安装配置、核心插件推荐到个性化设置与高效技巧,详细讲解了如何将这款轻量级编辑器武装成强大的开发工具。重点介绍了GitLens、Prettier、Live Server等必备插件,以及通过用户设置、代码片段和快捷键打造专属高效工作流的方法,帮助开发者从入门到精通。

weixin_27734811的博客 426

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

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

allway2的博客 4596

差分运放实战:如何快速计算带直流偏置的电路(附详细推导步骤)

本文详细解析了差分运放电路在带直流偏置设计中的核心计算方法和实战技巧。通过可视化参数关系和分步拆解,帮助工程师快速掌握电路设计精髓,包括虚短虚断原理、偏置电压计算及非理想因素处理,提升信号调理和传感器接口设计的效率与精度。

o4p5q6r7s的博客 412

操作系统课程项目 OS project —— Pintos from Project 1 to Project 3

Pintos Project 陪伴我们操作系统课程大半个学期了…… 虽然做了这么长时间,个人能力有限,pintos代码,看过的可能也就看懂了一半吧,更不用说没看过的了…… 但是也找到了一些有价值的资料,整理一下,供后辈们参考…… 关于环境的问题,最好是用ubuntu 16.04 windows用户不要折腾装双系统了,特别是win10,动不动更新一下,说不定双系统就出问题了,linux...

Deserted Land 8557

java web 表单验证

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

iteye_5399的博客 324

【算法】图解A* 搜索算法

A* 算法是启发式搜索算法,是根据Dijkstra算法改进而来。 问题引入 如下图所示,S为起始(start)节点,G为目标(goal)节点。 节点之间连线是两点的路径长度,如A到E的路径长度c(A,E) = 9。 节点旁的h值时当前节点到达目标节点(G)的预估值,如h(A)=15, 表示从当前点A到达目标点G的估计路径长度为15,此处h(x)即为启发函数,启发函数的设计有很多方法,具体可......

zhuhua造轮子的博客 4万+

tomcat

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

abrspo的博客 258

Python自动化车载测试:5分钟搞定CANoe COM接口调用(附完整代码)

本文详细介绍了如何使用Python快速实现CANoe COM接口调用,完成车载测试自动化。通过实战案例展示ECU信号测试框架搭建,包括环境配置、核心架构解析、信号读写封装及多线程安全方案,帮助开发者5分钟内掌握高效测试技巧。

vv45678的博客 1135

ARM CoreSight架构

CoreSight架构是现代复杂SoC的“飞行数据记录仪”(黑匣子)和“精密诊断仪”的结合体。它彻底改变了嵌入式系统的调试方式,从传统的“盲人摸象”变成了拥有“上帝视角”,是ARM生态系统能够支撑起从微控制器到高性能服务器芯片如此广泛产品线的重要基石技术之一。

guigenyi的专栏 1423

JavaWeb - 联系人信息管理

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

锅巴 1121

Apollo control模块横向控制原理及核心代码逐行解析

看完这篇文章,你会对apollo横向控制有一个整体的概念

weixin_39199083的博客 2万+
上一篇: 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、付费专栏及课程。

余额充值