Java基础入门day63

day63

JSON

Jackson方式

package com.saas.test;
​
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.saas.entity.Student;
import com.saas.entity.Birth;
​
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
​
public class TestJacksonJson {
​
 public static void main(String[] args) {
     Student student = new Student();
​
     student.setSid(1);
     student.setName("张三");
     student.setScore(90.5);
​
     Birth birth = new Birth();
​
     birth.setYear(1990);
     birth.setMonth(1);
     birth.setDay(1);
​
     student.setBirth(birth);
​
     System.out.println(student);
​
     System.out.println("===========================================");
​
     ObjectMapper mapper = new ObjectMapper();
​
     try {
         String jsonStu = mapper.writeValueAsString(student);
​
         System.out.println(jsonStu);
​
         System.out.println("===========================================");
​
         Student student2 = mapper.readValue(jsonStu, Student.class);
​
         System.out.println(student2);
​
         System.out.println("===========================================");
​
         List<Student> list = new ArrayList<>();
​
         list.add(student);
         list.add(student2);
​
         String jsonList = mapper.writeValueAsString(list);
​
         System.out.println(jsonList);
         System.out.println("===========================================");
​
         List<Student> list2 = mapper.readValue(jsonList, mapper.getTypeFactory().constructCollectionType(List.class, Student.class));
​
         System.out.println(list2);
     } catch (JsonProcessingException e) {
         throw new RuntimeException(e);
     } catch (IOException e) {
         throw new RuntimeException(e);
     }
 }
}

运行结果如下:

Student{sid=1, name='张三', score=90.5, birth=Birth{year=1990, month=1, day=1}}
===========================================
{"sid":1,"name":"张三","score":90.5,"birth":{"year":1990,"month":1,"day":1}}
===========================================
Student{sid=1, name='张三', score=90.5, birth=Birth{year=1990, month=1, day=1}}
===========================================
[{"sid":1,"name":"张三","score":90.5,"birth":{"year":1990,"month":1,"day":1}},{"sid":1,"name":"张三","score":90.5,"birth":{"year":1990,"month":1,"day":1}}]
===========================================
[Student{sid=1, name='张三', score=90.5, birth=Birth{year=1990, month=1, day=1}}, Student{sid=1, name='张三', score=90.5, birth=Birth{year=1990, month=1, day=1}}]
​

AJAX和JSON综合案例

简介

完成一个访百度的搜索效果,用户键盘输入内容后,下面有联想词语列表,在列表上悬浮有与其他条目不一样的效果样式,离开又恢复到之前的状态,用户点击条目后,让该条目显示在搜索框中,并且将下面的下拉框清空。

静态页面

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>index html</title>
​
 <style>
     #imgDiv {
         width: 100%;
         height: 100%;
         margin-top: 160px;
         margin-left: 600px;
     }
​
     #par {
         width: 800px;
         height: 480px;
         position: absolute;
         left: 30%;
         margin-top: 60px;
     }
​
     #keyword {
         width: 560px;
         height: 40px;
         margin-top: 20px;
         border: 2px solid green;
         font-size: 20px;
     }
​
     #search {
         width: 200px;
         height: 44px;
         margin-top: 20px;
         font-size: 20px;
     }
​
     .tdHover{
         background-color: pink;
         font-size: 22px;
     }
 </style>
</head>
<body>
<div id="imgDiv">
 <img id="img" src="https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" alt=""/>
</div>
​
<div id="par">
 <input type="text" id="keyword" οnkeyup="getContent()">
 <button id="search">百度一下,你就知道</button>
 <table id="table">
     <tbody id="tbody">
     <!--<tr>
         <td>java</td>
     </tr>
     <tr>
         <td>javascript</td>
     </tr>
     <tr>
         <td>jsp</td>
     </tr>
     <tr>
         <td>jstl</td>
     </tr>-->
     </tbody>
 </table>
</div>
​
<script>
​
 var xhr;
​
 function createXHR(){
     if(window.XMLHttpRequest){
         xhr = new XMLHttpRequest();
     }else{
         xhr = new ActiveXObject("Microsoft.XMLHTTP");
     }
 }
 function getContent() {
     //alert(123)
     createXHR();
​
     var keyword = document.getElementById("keyword").value;
​
     xhr.open("GET","search?keyword="+keyword,true);
​
     xhr.send();
​
     xhr.onreadystatechange = callBack;
 }
​
​
 function callBack(){
     if(xhr.readyState == 4){
         if(xhr.status == 200){
​
             var content = xhr.responseText;
​
             //  eval函数可以将字符串转换为JSON对象
             content = eval(content);
​
             createTD(content);
​
             setListener(content);
         }
     }
 }
​
 function setListener(c){
     var size = c.length;
​
     for (var i = 0; i < size; i++){
         var selectTD = document.getElementById("id" + i);
​
         selectTD.addEventListener("mouseover", function (){
             this.setAttribute("class", "tdHover");
         });
​
         selectTD.addEventListener("mouseout", function (){
             this.removeAttribute("class");
         });
​
         selectTD.addEventListener("click", function (){
             var keyword = this.innerText;
             document.getElementById("keyword").value = keyword;
​
             clearTD();
         });
     }
 }
​
 function createTD(c){
     clearTD();
​
     var tbody = document.getElementById("tbody");
​
     for(var i = 0; i < c.length; i++){
         var tr = document.createElement("tr");
         var td = document.createElement("td");
         var node = document.createTextNode(c[i]);
​
         td.appendChild(node);
         td.setAttribute("id","id" + i);
​
         tr.appendChild(td);
         tbody.appendChild(tr);
     }
 }
​
 function clearTD(){
     var tbody = document.getElementById("tbody");
​
     tbody.innerText = "";
 }
</script>
</body>
</html>

后台Servlet

package com.saas.servlet;
​
import com.fasterxml.jackson.databind.ObjectMapper;
​
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.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
​
@WebServlet(urlPatterns = "/search")
public class SearchServlet extends HttpServlet {
​
 private static List<String> datas = new ArrayList<>();
​
 static {
     datas.add("java");
     datas.add("python");
     datas.add("c++");
     datas.add("c#");
     datas.add("php");
     datas.add("javascript");
     datas.add("html");
     datas.add("css");
     datas.add("mysql");
     datas.add("sqlserver");
     datas.add("mongodb");
     datas.add("redis");
     datas.add("hadoop");
     datas.add("jstl");
     datas.add("js");
     datas.add("jsp");
     datas.add("sql");
 }
​
 @Override
 protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     String keyword = req.getParameter("keyword");
​
     if (keyword != null && !keyword.trim().equals("")) {
         List<String> result = new ArrayList<>();
         for (String data : datas) {
             if (data.contains(keyword)) {
                 result.add(data);
             }
         }
​
         Collections.sort(result);
​
         ObjectMapper om = new ObjectMapper();
​
         String s = om.writeValueAsString(result);
         resp.getWriter().write(s);
     }
 }
}

展示效果

image-20240603153254986

image-20240603153337478

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

移动端真机调试

移动端真机调试 在开发移动端项目项目中经常会用到真机调试&#xff0c;有些时候想要打印出数据&#xff0c;但是真机看不了&#xff0c;又必须需要真机才能重现&#xff0c;这时候就需要真机跟电脑一起联调 下载谷歌浏览器 重点来了&#xff1a;谷歌调试器网址&#xff1a;c…

JAVA云HIS医院管理系统源码:可医保对接的云HIS运维平台源码 SaaS模式

JAVA云HIS医院管理系统源码&#xff1a;可医保对接的云HIS运维平台源码 SaaS模式 云HIS系统运用云计算、大数据、物联网等新兴信息技术&#xff0c;为医疗机构提供全面的医疗信息管理服务。该系统支持医保功能&#xff0c;通过与医保系统的对接&#xff0c;实现了医疗费用的自…

白酒:酒文化传承中的挑战与机遇

随着时代的变迁&#xff0c;酒文化传承面临着许多挑战与机遇。我们来看看酒文化传承面临的挑战。随着现代生活方式的改变&#xff0c;人们对于传统酒文化的认知逐渐淡化。与此同时&#xff0c;年轻一代对于酒文化的兴趣不如老一辈浓厚&#xff0c;这使得酒文化的传承面临断层的…

罗克韦尔Rockwell EDI 项目案例

项目挑战 企业A有两个工厂需要接受来自Rockwell的订单&#xff0c;出于成本考虑&#xff0c;两个工厂需要使用同一套EDI系统实现对接&#xff0c;因此在EDI系统中要区分发给不同工厂的订单数据。除此之外&#xff0c;此项目中涉及到了EDI系统与SAP系统的集成&#xff0c;SAP系统…

18V-100V降5V1A恒压WT5117

18V-100V降5V1A恒压WT5117 WT5117 控制器是一个专为开关电源设计的高性能器件&#xff0c;它集成了一个能够承受高达 150V 电压的 MOSFET。这个控制器不仅支持快速启动&#xff0c;还具备低能耗待机模式&#xff0c;这得益于它的内置高压启动和自供电特性。为了在低负载条件下…

【APP移动端性能测试】第一节.APP应用架构、环境和敏捷开发模型介绍

文章目录 前言一、APP应用架构二、APP项目环境 2.1 后端项目环境 2.2 前端项目环境三、Scrum敏捷开发模型 3.1 Scrum敏捷模型基础介绍 3.2 Scrum敏捷开发开发流程总结 前言 一、APP应用架构 &#xff08;1&#xff09;APP应用架构 &#xff08;2&#xff0…

【4003】基于springboot实现的线上阅读系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

DNS域名解析----分离解析、多域名解析、父域与子域

1 理论部分 1.1 分离解析 DNS的分离解析&#xff0c;是指根据不同的客户端提供不同的域名解析记录。来自不同地址的客户机请求解析同一域名时&#xff0c;为其提供不同的解析结果。也就是内外网客户请求访问相同的域名时&#xff0c;能解析出不同的IP地址&#xff0c;实现负载…

苍穹外卖---新增员工(P16-P20)

一、需求分析和设计 &#xff08;1&#xff09;产品原型 一般在做需求分析时&#xff0c;往往都是对照着产品原型进行分析&#xff0c;因为产品原型比较直观&#xff0c;便于我们理解业务。后台系统中可以管理员工信息&#xff0c;通过新增员工来添加后台系统用户。 新增员工…

System.Data.OracleClient.OracleException:“ORA-12571: TNS: 包写入程序失败

System.Data.OracleClient.OracleException:“ORA-12571: TNS: 包写入程序失败 解决方法&#xff1a; 首先%oracle_home%/network/admin下的sqlnet.ora文件&#xff0c;把SQLNET.AUTHENTICATION_SERVICES (NTS)加个 # 注释掉就好了

防爆监测系统:工业安全百科

防爆监测系统&#xff0c;作为现代工业安全领域的重要组成部分&#xff0c;对于预防和控制爆炸事故具有不可替代的作用。该系统集成了先进的传感技术、信号处理技术以及自动控制技术&#xff0c;实现对工业生产环境中潜在爆炸因素的实时监测和预警。 防爆监测系统能够精确识别…

RIP与OSPF发布默认路由(华为)

#交换设备 RIP与OSPF发布默认路由 合理使用默认路由可以很大程度上减少本地路由表的大小&#xff0c;并可以较好的隐藏一个网络中的路由信息&#xff0c;保护自身网络的隐秘性 另外如果在同一个路由器两端使用了不同的路由协议&#xff0c;那么如果不做路由引入或者发布默认…

vscode插件开发之 - Treeview视图

一些测试类插件&#xff0c;往往需要加载测试文件&#xff0c;并执行这些测试文件。以playwright vscode为例&#xff0c;该插件可以显示目录下所有的测试文件。如下图所示&#xff0c;显示了tests目录下的所有xxx.spec.js文件&#xff0c;那么如何在vscode插件开发中显示TreeV…

解锁TikTok内容趋势——高效获取TikTok标签信息接口

一、引言 在TikTok这个全球热门的短视频平台上&#xff0c;标签&#xff08;Hashtags&#xff09;是用户和内容创作者连接、发现新内容的重要工具。为了帮助品牌、市场分析师、内容创作者等更好地理解和利用TikTok上的内容趋势&#xff0c;我们推出了一款全新的接口服务&#…

正则表达式之三剑客grep

正则表达式匹配的是文本内容&#xff0c;linux的文本三剑客 都是针对文本内容 grep 过滤文本内容 sed 针对文本内容进行增删改查 awk 按行取列 文本三剑客都是按行进行匹配。 grep grep 的作用就是使用正则表达式来匹配文本内容 选项&#xff1a; -m …

赋能AI未来,景联文科技推出高质量亿级教育题库、多轮对话以及心理大模型数据

当前&#xff0c;大模型正如雨后春笋般不断涌现&#xff0c;不断推动着大模型产业的应用实践进入加速发展的新阶段。 景联文科技是AI数据服务公司&#xff0c;提供海量优质大模型数据集&#xff0c;涵盖文本、图像、视频、音频等多类型数据&#xff0c;致力于为不同训练阶段的算…

注意力机制简介

为了减少计算复杂度&#xff0c;通过借鉴生物神经网络的一些机制&#xff0c;我们引入了局部连接、权重共享以及汇聚操作来简化神经网络结构。神经网络中可以存储的信息量称为网络容量。一般来讲&#xff0c;利用一组神经元来存储信息的容量和神经元的数量以及网络的复杂度成正…

【机器学习300问】126、词嵌入(Word Embedding)是什么意思?

人类的文字&#xff0c;作为一种高度抽象化的符号系统&#xff0c;承载着丰富而复杂的信息。为了让电脑也能像人类一样理解并处理这些文字&#xff0c;科学家们不断探索各种方法&#xff0c;以期将人类的语言转化为计算机能够理解的格式。 一、One-Hot编码的不足 在自然语言处…

原生js制作svg 图标生成动态 tab栏切换效果(结尾附代码)

svg 图标生成动态 tab 栏 先看效果&#xff1a; 我想做一个 tab 栏比较美观的效果&#xff0c;当然切换的数据可以自己做一下&#xff0c;这里不演示&#xff0c;说一下特效如何制作。 当我点击时要将空心变为实心的这么一个效果&#xff0c;所以准备两个五角星样式一个是空…

【AI大模型】在健康睡眠监测中的深度融合与实践案例

文章目录 1. 应用方案2. 技术实现2.1 数据采集与预处理2.2 构建与训练模型2.3 个性化建议生成 3. 优化策略4. 应用示例&#xff1a;多模态数据融合与实时监测4.1 数据采集4.2 实时监测与反馈 5. 深入分析模型选择和优化5.1 LSTM模型的优势和优化策略5.2 CNN模型的优势和优化策略…