JavaWeb--08BeanUtils:自定义转换器

news2024/12/23 16:05:20

在07创建了表单,但是获取网页信息的java代码太繁杂了,每次获取数据都要书写依次如下的:

重新创建一个web工程项目test1010---需要配置tomacat,具体传送门:CSDN

配置好了如下:

在里面web目录下创建一个register.html文件,创建一个表单--简单的:如果代码不清楚的可以看07完整表单的详解,有所用到的标签的解释:

在src下创建一个controller包,把所有的servlet.class文件放进去。

老办法就是创建一个类继承HttpServlet,再使用响应获得再网页输入的内容:这里创建的RegisterServlet就是使用的老办法:

就是这种方法太麻烦了每次获取都要单独写一次。

所以就在想是否使用一个user类,将要填写的数据作为用户的属性。所有在src下创建一个domain包用来放实体类或对象,这里就放user,对齐进行定义属性,进行封装,重写toString方法

以下是具体代码:

注意:这里对年龄使用的是int,出生日期用到的是时间:Date。因为填写出生日期的时候有多种可能:0000-00-00,0000/00/00,0000年00月00日。

虽然这里定义封装了user类,但是要获取前台的响应,这里就不要使用req.getParameter("username"),而是可以使用Java程序员写的一个BeanUtils包。

BeanUtils:可以快速将前台的接收的数据封装进对象,且BeanUtils有自带的数据转换器可以使基础数据类型自动转换,日期型需自己在重新书写转换器。-----BeanUtils的包:commons-beanutils-1.8.0.jar_免费高速下载|百度网盘-分享无限制 (baidu.com)

所以接下来第一步:在web包下的WEB-INF包下创建一个lib‘包,把BeanUtils的包和logging包放进去---lib文件夹放的就是jar包,logging包是为了连接前台。

注意,将下载好的包复制到lib包下,还要右击选择add as Library进行激活

第二步:contorller包下创建一个UserServlet的class文件,进行收集前台的数据并封装成对象,以至于后面将对象传给数据库------所以要进行继承HttpServlet

因为在Beanutils里的基础数据类型是自动转换的,时间要转换出来就要我们自己使用Beanutils的ConvertUtils的register方法定义一个转换器将时间转换成我们需要的格式如下:

然后将web下的register.html文件将这个UserServlet文件进行连接

启动程序:选择右上角的运行框的tomcat运行

在页面进行输入,如下信息:user,123456,18,2024-09-26,打日本,打篮球:

打印内容如下:

以上就是使用Beanutils简化代码的方法;

感谢各位大佬的观看,求免费的赞和点赞收藏!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2167842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM 基础知识(基础组成 )

使用场景 线上系统突然宕机,系统无法访问,甚至直接 O0M;线上系统响应速度太慢,优化系统性能过程中发现 CPU 占用过高,原因也许是因为 JVM的 GC 次数过于频繁;新项目上线,需要设置 JVM的各种参数;等 JDK / JRE / JVM JDK JDK 全称 ( Java Development Kit ) ,是 Ja…

Git 使用方法

简介 Git常用命令 Git 全局设置 获取Git 仓库 方法二用的比较多 将仓库链接复制 在 git base here ----> git clone 仓库链接 工作区、暂存区、版本库 Git 工作区中文件中的状态 本地仓库的操作 远程仓库操作 git pull 将代码推送到远程仓库 1. git add 文件名 ---放…

C++:继承和多态,自定义封装栈,队列

1.栈: stack.cpp #include "stack.h"Stack::Stack():top(nullptr),len(0){} //析构函数 Stack::~Stack() {while(!empty()){pop();} }bool Stack::empty() //判断栈是否为空 {return topnullptr; }int Stack::size()//获取栈的大小 {return len; } //压…

万字长文详解Java线程知识

什么是进程、线程、协程? 进程 进程是计算机科学中的一个核心概念,它指的是在操作系统中正在执行的一个程序的实例。进程是操作系统中的一个独立执行单元,具有独立的内存空间和系统资源。每个进程都有自己独立的地址空间和文件描述符&#x…

循环神经网络笔记

循环神经网络学习 RNN训练方法–BPTT BPTT (Backpropagation Through Time),这是一种用于训练循环神经网络(RNNs)的算法。由于 RNNs 能够处理序列数据,并且在每个时间步上都有内部状态,因此需…

南京自闭症寄宿学校:打造温馨的第二家

南京自闭症寄宿学校的愿景与广州星贝育园的温馨实践 在探讨自闭症儿童教育的广阔领域中,寄宿制学校以其独特的优势,为这些特殊的孩子提供了全方位的支持与关怀,致力于打造一个温馨如家的第二生活环境。虽然本文的主题是围绕南京自闭症寄宿学…

Chirp通过Sui让IoT世界变得更简单

据估计,未来十年内,联网设备的数量将增长到近400亿台。无论是追踪共享出行车辆的移动、改善食品追溯性、监控制造设施,还是保障家庭安全,物联网 ( Internet of Things,IoT) 对企业和消费者来说都已经成为一项关键技术。…

刷题学习日记 (1) - SWPUCTF

写这篇文章主要是想看看自己一个下午能干啥,不想老是浪费时间了,所以刷多少题我就会写多少题解,使用nss随机刷题,但是今天下午不知道为啥一刷都是SWPUCTF的。 [SWPUCTF 2021 新生赛]gift_F12 控制台ctrlf搜索flag即可&#xff0…

什么是竞争条件?

竞争条件,简单来说就是多个进程同时访问同一个共享资源,导致出现预期结果以外的错误的情况。 出现竞争条件的本质原因是cpu对程序的调度是没有特定规律的,某一时刻cpu处理哪个进程是不确定的。 简单写一个测试程序,先需要子进程和…

ubuntu安装emqx

目录 1.预先下载好emqx压缩包 2.使用tar命令解压 3.进入bin目录 5.放开访问端口18083 6.从通过ip地址访问emqx后台 7.默认用户名密码为admin/public 8.登录后台 9.资源包绑定在此博文可自取 1.预先下载好emqx压缩包 2.使用tar命令解压 sudo tar -xzvf emqx-5.0.8-el8-…

手机轻松解压 RAR 文件指南

手机通常不直接支持 RAR 文件打开,主要有以下几个原因。首先,手机操作系统的设计初衷并非为了处理各种复杂的压缩文件格式。 大多数手机内置的文件管理器主要侧重于管理手机内部存储和常见的文件类型,如图片、音频、视频等。对于像 RAR 这样…

【UR #1】外星人(dp思维技巧)

考虑去除后效性,常用方法排序状态可以直接以答案为状态来判断合法性考虑转移方向,向后转移,选与不选来定向答案 f[i][j]表示前i个数答案为j的方案数 不选i 则加上f[i][j] 的方案数 * (n-i),ai可以在后面随便选。 选…

Python 课程20-Scikit-learn

前言 Scikit-learn 是 Python 中最流行的机器学习库之一,它提供了多种用于监督学习和无监督学习的算法。Scikit-learn 的特点是简单易用、模块化且具有高效的性能。无论是初学者还是专业开发者,都可以借助它进行快速原型设计和模型开发。 在本教程中&a…

为何专利对企业创新与竞争至关重要?

在当今这个技术飞速发展的时代,每一个创新的火花都可能成为推动行业进步的关键力量。然而,创新并非一蹴而就,它需要时间、资金与智慧的共同投入,更需要一套完善的保护机制来确保其成果不被轻易窃取或模仿。这一重任,便…

WebPage-Bootstrap框架(container类,container-fluid类,栅格系统)

1.Bootstrap Bootstrap为页面内容和栅格系统包裹了一个.container容器,框架预先定义类 1.1container类 响应式布局容器的宽度 手机-小于768px 宽度设置100%; 平板-大于等于768px 设置宽度为750px 桌面显示器-大于等于992px 设置宽度 970px 大屏幕显…

医院排班|医护人员排班系统|基于springboot医护人员排班系统设计与实现(源码+数据库+文档)

医护人员排班系统目录 目录 基于springboot医护人员排班系统设计与实现 一、前言 二、系统功能设计 三、系统实现 医护类型管理 排班类型管理 科室信息管理 医院信息管理 医护信息管理 四、数据库设计 1、实体ER图 2、具体的表设计如下所示: 五、核心代码…

“AI+Security”系列第3期(五):AI技术在网络安全领域的本地化应用与挑战

近日,由安全极客、Wisemodel 社区、InForSec 网络安全研究国际学术论坛和海升集团联合主办的“AI Security”系列第 3 期技术沙龙:“AI 安全智能体,重塑安全团队工作范式”活动顺利举行。此次活动吸引了线上线下超过千名观众参与。 在活动中…

shell中对xargs命令传参进行编辑

以文件解压为例,将当前路径下的所有gz文件解压到同名的log文件中,解压命令如下所示: ls *.gz| xargs -n 1 -P 4 -I {} bash -c zcat "{}" > $(echo "{}" | sed "s/gz$/log/g") 执行结果如下图所示&#x…

mamba-yolo模型的深度学习环境配置

本文将介绍如何配置目标检测模型mamba-yolo的深度学习环境 1. 环境要求 Python > 3.9 (本文使用python-3.11) CUDA > 11.6 (本文使用CUDA-11.8) Pytorch > 1.12.1 (本文使用torch-2.4.0) Linu…

【C++】STL标准模板库容器——set

🦄个人主页:修修修也 🎏所属专栏:C ⚙️操作环境:Visual Studio 2022 目录 📌关联式容器set(集合)简介 📌set(集合)的使用 🎏set(集合)的模板参数列表 🎏set(集合)的构造函数 🎏set(集合)的迭代…