当前位置: 首页 > news >正文

基于JSP、java、Tomcat三者的项目实战--校园交易网(3)主页--添加商品功能

 技术支持:JAVA、JSP

服务器:TOMCAT 7.0.86

编程软件:IntelliJ IDEA 2021.1.3 x64


前文三篇登录和注册功能的实现

基于JSP、java、Tomcat、mysql三层交互的项目实战--校园交易网(1)-项目搭建(前期准备工作)-CSDN博客基于JSP、java、Tomcat、mysql三层交互的项目实战--校园交易网(2)登录,注册功能实现_jsp与java交互-CSDN博客基于JSP、java、Tomcat三者的项目实战--校园交易网(2)登录,注册功能实现-CSDN博客

基于JSP、java、Tomcat三者的项目实战--校园交易网(3)主页-CSDN博客


主页中我们其实看到了许多功能,我们先来说说

由于这么多功能,集中在这一个网页中,所以我也不水字数,主页的JSP文件在这篇博客中
基于JSP、java、Tomcat三者的项目实战--校园交易网(3)主页-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_64056556/article/details/140730309?spm=1001.2014.3001.5501


首先,我们是将所有的商品放在我的sdjyy的数据库中,接下来新建一个名为goods的数据表,里面的属性分别为name和price,同样的这个操作我在上面一篇博客也已经讲了基于JSP、java、Tomcat三者的项目实战--校园交易网(3)主页-CSDN博客

接下来我们先讲一下添加商品功能---->④

①-服务层所写的文件,代码

②-要呈现所有的商品,我们最主要的逻辑就是应用了dao层的findallgoods方法

③-是上一个博客的疏忽,我忘记将Product实体类放到博客上来了,其实就是根据数据库中的定义类型,对product对象中的name和price属性进行set、get方法以及tostring。

话不多说,直接上代码


服务层

AddShoppingServlet

package Servlet;import dao.StudentDAO;
import entiy.Product;
import entiy.Student;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;public class AddShoppingServlet extends HttpServlet {public void service(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");//读取参数String name = request.getParameter("name");String price = request.getParameter("price");response.setContentType("text/html;charset=utf-8");PrintWriter out=response.getWriter();try {StudentDAO dao = new StudentDAO();//创建商品对象Product e1 = new Product();e1.setName(name);e1.setPrice(Double.parseDouble(price));System.out.println(e1.getName());System.out.println(e1.getPrice());dao.savegoods(e1);//重定向到主页面response.sendRedirect("list");} catch (Exception e) {e.printStackTrace();out.println("系统繁忙,请稍后再试!");}out.close();}
}

这段服务层的作用是处理添加商品的请求并将商品信息保存到数据库中。

逻辑思路和步骤:

  1. 设置编码和获取参数

    • request.setCharacterEncoding("utf-8"):确保请求参数的编码正确设置为UTF-8,以防止乱码问题。
    • String name = request.getParameter("name") 和 String price = request.getParameter("price"):从请求中获取商品的名称和价格。
  2. 设置响应类型和获取输出流

    • response.setContentType("text/html;charset=utf-8"):设置响应的内容类型为HTML,并指定UTF-8编码。
    • PrintWriter out = response.getWriter():获取用于向客户端发送响应的输出流。
  3. 数据库操作

    • StudentDAO dao = new StudentDAO():创建一个StudentDAO对象,这可能是一个数据访问对象,用于处理数据库操作。
    • Product e1 = new Product():创建一个Product对象,用于封装从请求中获取的商品信息。
    • e1.setName(name) 和 e1.setPrice(Double.parseDouble(price)):设置商品对象的名称和价格。
  4. 保存商品到数据库

    • dao.savegoods(e1):调用StudentDAO中的savegoods方法,将商品对象保存到数据库中。
  5. 异常处理和响应输出

    • response.sendRedirect("list"):重定向到名为"list"的Servlet或页面,通常用于显示添加商品后的主页面或列表页面。
    • catch (Exception e):捕获可能发生的异常。
    • e.printStackTrace() 和 out.println("系统繁忙,请稍后再试!"):在控制台打印异常信息,并向客户端输出错误提示信息。

用到的技术和连接:

  • Servlet技术:基于Java的Web应用开发技术,通过继承HttpServlet来处理HTTP请求和响应。
  • HttpServletRequest和HttpServletResponse:用于获取客户端请求的数据和向客户端发送响应。
  • UTF-8编码:确保中文和特殊字符能够正确地被处理和显示。
  • 数据库访问:通过StudentDAO对象调用savegoods方法,将商品信息保存到数据库中。

这段代码的主要逻辑是接收从前端传来的商品名称和价格,将其封装成一个Product对象,然后通过StudentDAO将该对象保存到数据库中。最后,根据保存结果,可能重定向到商品列表页面或者显示错误信息给用户。


前端

AddShopping.jsp

<%@page contentType="text/html;charset=utf-8" pageEncoding="utf-8" %>
<%@page import="java.util.*,java.text.*,dao.*" %>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Add Product</title><link rel="stylesheet" href="css/style.css"><style>/* 这里可以添加页面特定的 CSS 样式 */body {font-family: Arial, sans-serif;background-color: #f0f0f0;margin: 0;padding: 0;}#wrap {width: 80%;margin: 0 auto;background-color: #fff;box-shadow: 0 0 10px rgba(0,0,0,0.1);}header {background-color: #333;color: #fff;padding: 10px;text-align: center;}#content {padding: 20px;}.form_table {width: 100%;}.form_table td {padding: 10px;}.inputgri {width: 100%;padding: 8px;border: 1px solid #ccc;border-radius: 4px;box-sizing: border-box;font-size: 14px;}.button {padding: 10px 20px;background-color: #4CAF50;color: white;border: none;border-radius: 4px;cursor: pointer;font-size: 14px;}.button:hover {background-color: #45a049;}#footer {background-color: #333;color: #fff;text-align: center;padding: 10px;}</style>
</head>
<body>
<div id="wrap"><div id="content"><h1>添加商品:</h1><form action="add" method="post"><table class="form_table"><tr><td align="right">Name:</td><td><input type="text" class="inputgri" name="name" /></td></tr><tr><td align="right">Price:</td><td><input type="text" class="inputgri" name="price" /></td></tr></table><p><input type="submit" class="button" value="确认添加"  /></p></form></div><footer id="footer">sdjyw@126.com</footer>
</div>
</body>
</html>

这是一个简单的HTML页面,用于向用户展示一个添加商品的表单界面。

页面结构和功能解析:

  1. 页面声明和设置

    • <%@page contentType="text/html;charset=utf-8" pageEncoding="utf-8" %>:指定页面的内容类型和编码为UTF-8,确保页面可以正确显示中文和特殊字符。
    • <%@page import="java.util.*,java.text.*,dao.*" %>:导入所需的Java类库,包括java.util下的所有类、java.text下的所有类,以及dao包中的所有类,用于后续的数据处理。
  2. HTML结构

    • <!DOCTYPE html>:声明文档类型为HTML5。
    • <html lang="en">:指定页面的语言为英语。
    • <head>:头部部分,包含页面的元数据和引用的样式表。
      • <meta charset="UTF-8">:设置字符集为UTF-8。
      • <meta name="viewport" content="width=device-width, initial-scale=1.0">:设置视口,使页面在各种设备上能正确显示并自动缩放到设备宽度。
      • <title>Add Product</title>:设置页面的标题为"Add Product"。
      • <link rel="stylesheet" href="css/style.css">:引入外部样式表,定义了页面的整体样式。
      • <style>:内部样式表,用于定义页面特定的样式。
  3. 页面内容

    • <body>:页面的主体部分。
      • <div id="wrap">:包裹整个页面内容,定义了页面的宽度、背景色和阴影效果。
      • <div id="content">:页面的主要内容区域。
        • <h1>添加商品:</h1>:显示页面的主标题。
        • <form action="add" method="post">:表单元素,用于向服务器提交数据,提交目标为"add",提交方式为POST。
          • <table class="form_table">:使用表格布局,定义了表单的样式。
            • <tr>:表格行。
              • <td align="right">Name:</td>:表格单元格,显示字段"Name",并右对齐。
              • <td><input type="text" class="inputgri" name="name" /></td>:表格单元格,包含一个文本输入框,用于用户输入商品名称,输入框具有自定义的样式类"inputgri"。
            • 同样的结构用于"Price"字段的输入。
          • <p><input type="submit" class="button" value="确认添加" /></p>:提交按钮,用户点击后将表单数据提交到服务器。
        • <footer id="footer">:页面的页脚部分。
          • "sdjyw@126.com":显示联系邮箱。

页面样式和功能点解释:

  • 样式设计:通过CSS设置了页面的整体布局、背景色、字体等样式,使页面看起来更加整洁和专业。
  • 表单设计:使用了HTML表格布局来组织表单元素,使页面结构清晰,并通过CSS样式美化表单元素的外观。
  • 提交功能:表单的提交目标为"add",使用POST方法提交数据,提交的数据将被发送到后端处理。
  • 响应性设计:通过设置视口和CSS,使页面在不同设备上具有良好的显示效果和响应性。

总体来说,这段HTML页面设计了一个简洁而功能完善的商品添加界面,用户可以通过输入商品名称和价格,点击确认添加按钮,将数据提交到后端处理。


dao层

savegoods方法

public void savegoods(Product e) throws Exception {Connection conn = null;PreparedStatement prep = null;try {conn = DBUtil.getConnection();prep = conn.prepareStatement("INSERT INTO goods (name,price) VALUES (?, ?)");prep.setString(1, e.getName());prep.setDouble(2, e.getPrice());prep.executeUpdate();} catch (SQLException e1) {// Handle specific SQL exceptions or log them for debugginge1.printStackTrace();throw new Exception("Failed to save goods: " + e1.getMessage(), e1);} finally {// Close PreparedStatement and Connection in finally blockif (prep != null) {try {prep.close();} catch (SQLException e2) {e2.printStackTrace();}}DBUtil.close(conn);}
}
  1. 连接和 PreparedStatement 设置:

    • 方法开始通过 DBUtil.getConnection() 建立数据库连接 (conn)。
    • 使用包含插入 name 和 price 到 goods 表的 SQL 查询创建 PreparedStatement (prep)。
  2. 设置参数和执行:

    • 使用 prep.setString(1, e.getName()) 和 prep.setDouble(2, e.getPrice()) 分别为 PreparedStatement 的参数 (name 和 price) 设置值。
    • 使用 prep.executeUpdate() 执行数据库更新操作。
  3. 异常处理:

    • 方法捕获 SQLException 来专门处理数据库操作期间发生的任何错误。
    • 在捕获异常时,打印堆栈跟踪以进行调试,并且抛出一个新的 Exception,包装原始的 SQLException,并提供自定义的错误消息 ("Failed to save goods: " + e1.getMessage()).
  4. 资源管理:

    • 在 finally 块中确保 PreparedStatement (prep) 被正确关闭以释放数据库资源,使用 prep.close()
    • 使用 DBUtil.close(conn) 关闭数据库连接 (conn)。

entity层(实体层)

Product

package entiy;public class Product {private int id;private String name;private double price;// 其他商品属性,如颜色、库存等// 构造方法、getter和setter方法public int getId() {return id;}public void setId(int id) {this.id = id;}public Product(/*, 其他属性 */) {this.name = name;this.price = price;// 初始化其他属性}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() { return price; }public void setPrice(double price) {this.price = price;}@Overridepublic String toString() {return "Product{" +"id=" + id +", name='" + name + '\'' +", price=" + price +'}';}
}


web.xml

<servlet><servlet-name>add</servlet-name><servlet-class>Servlet.AddShoppingServlet</servlet-class></servlet><servlet-mapping><servlet-name>add</servlet-name><url-pattern>/add</url-pattern></servlet-mapping>

相关文章:

基于JSP、java、Tomcat三者的项目实战--校园交易网(3)主页--添加商品功能

技术支持&#xff1a;JAVA、JSP 服务器&#xff1a;TOMCAT 7.0.86 编程软件&#xff1a;IntelliJ IDEA 2021.1.3 x64 前文三篇登录和注册功能的实现 基于JSP、java、Tomcat、mysql三层交互的项目实战--校园交易网&#xff08;1&#xff09;-项目搭建&#xff08;前期准备工作…...

自定义SQL Server数据访问层:打造专属数据交互之门

自定义SQL Server数据访问层&#xff1a;打造专属数据交互之门 在软件开发中&#xff0c;数据访问层&#xff08;Data Access Layer, DAL&#xff09;扮演着至关重要的角色&#xff0c;它作为应用程序与数据库之间的桥梁&#xff0c;负责所有的数据存取操作。SQL Server作为一…...

【课程总结】Day15(中):图像分割之实例分割

前言 在上一章&#xff0c;我们通过学习了解了语义分割以及U-Net网络结构【课程总结】Day15&#xff08;上&#xff09;&#xff1a;图像分割之语义分割。在本章&#xff0c;我们将学习了解图像分割中的实例分割以及相关的数据预处理注意事项。 图像分割 语义分割 语义分割…...

【Linux】常见指令

目录 一、指令的理解二、Linux的目录结构三、XShell 下的热键三、shell命令以及运行原理四、Linux常见的指令汇总1. ls 指令1.1 常见的一些有关 ls 的别名1.2 隐藏文件或目录1.3 * 的匹配 2. pwd 指令3. cd 指令3.1 cd . . 指令 4. touch指令5. mkdir指令6. rmdir指令 &&am…...

redis学习(一)

背景 redis是一个高性能的KV数据库&#xff0c;在工作中经常用到&#xff0c;可被用作缓存、分布式锁等&#xff0c;作为被高频使用的组件&#xff0c;了解其实现对工作有很大帮助&#xff08;包括面试&#xff09;。为此&#xff0c;在对redis有一定的使用、了解之后&#xff…...

LabVIEW在DCS中的优势

DCS&#xff08;Distributed Control System&#xff0c;分布式控制系统&#xff09;是一种用于工业过程控制的自动化系统。它将控制任务分散到多个控制单元中&#xff0c;通过网络连接和协调这些单元来实现对整个过程的监控和控制。DCS通常用于大型工业设施&#xff0c;如化工…...

JavaScript青少年简明教程:DOM和CSS简介

JavaScript青少年简明教程&#xff1a;DOM和CSS简介 DOM简介 DOM&#xff08;Document Object Model&#xff09;将文档表示为一个树形结构&#xff0c;其中每个节点都是一个对象&#xff0c;每个对象都有其自身的属性和方法。 通过对DOM的操作&#xff0c;开发者可以使用编…...

后端面试题日常练-day15 【Java基础】

题目 希望这些选择题能够帮助您进行后端面试的准备&#xff0c;答案在文末 Java中的自动装箱&#xff08;Autoboxing&#xff09;和拆箱&#xff08;Unboxing&#xff09;是指什么&#xff1f; a) 自动装箱是将基本数据类型转换为对应的包装类&#xff0c;拆箱是将包装类转换为…...

椭圆曲线加法运算

1. 定义 椭圆曲线 (Elliptic Curve) 不是函数&#xff0c;而是一条平面曲线&#xff0c;其方程是定义如下&#xff1a; y 2 x 3 a x b y^2x^3axb y2x3axb 其中&#xff0c;判别式 Δ − 16 ( 4 a 3 27 b 2 ) ≠ 0 \Delta -16(4a^327b^2)\neq 0 Δ−16(4a327b2)0。判别…...

采用计数排序的思想,解决只出现一次的数字

目录 问题 思路 代码 注意点&#xff1a; 问题 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算法只使用常…...

网络云相册实现--nodejs后端+vue3前端

目录 主页面 功能简介 系统简介 api 数据库表结构 代码目录 运行命令 主要代码 server apis.js encry.js mysql.js upload.js client3 index.js 完整代码 主页面 功能简介 多用户系统&#xff0c;用户可以在系统中注册、登录及管理自己的账号、相册及照片。 每…...

程序设计基础(c语言)_补充_1

1、编程应用双层循环输出九九乘法表 #include <stdio.h> #include <stdlib.h> int main() {int i,j;for(i1;i<9;i){for(j1;j<i;j)if(ji)printf("%d*%d%d",j,i,j*i);elseprintf("%d*%d%-2d ",j,i,j*i);printf("\n");}return 0…...

【Unity】 HTFramework框架(五十四)【进阶篇】Deployment 轻量级资源部署管线

更新日期&#xff1a;2024年7月31日。 Github源码&#xff1a;[点我获取源码] 索引 Deployment 轻量级资源部署管线使用 Deployment一、创建部署配置二、编辑部署配置三、正式开始资源部署步骤一&#xff1a;资源打包步骤二&#xff1a;资源版本构建步骤三&#xff1a;资源版本…...

达梦数据库的系统视图v$cachesql

达梦数据库&#xff08;DM Database&#xff09;的系统视图V$CACHESQL用于显示有关数据库中缓存的SQL语句的信息。该视图提供了有关每个SQL语句的执行统计信息&#xff0c;帮助用户优化SQL性能和调试问题。 V$CACHESQL视图的主要字段 以下是V$CACHESQL视图中的一些关键字段&a…...

java基础 之 equals和==的区别

文章目录 浅谈“”特点比较基本类型比较引用类型 浅谈“equals”背景和使用重写equals自定义类为什么需要重写equals方法 总结附录代码及文章推荐 前言&#xff1a; 1、8大基本数据类型&#xff0c;它们的值直接代表了某种数据&#xff0c;不是对象的实例&#xff0c;不能使用n…...

学习STM32(1)--Keil软件安装与基本操作和Keil 软件高级应用

目录 1 引 言 2 实验目的 3 实验内容 3.1 认识单片机和STM32 3.2 安装、认识软件Keil和硬件STM32F103开发板 3.3 学习调试工程 3.4 Keil工程软件的配置 4 深入解析 思考一 1.以项目“12-GPIO输出—使用固件库点亮LED”为例子&#xff0c;认识本地工程文件夹&#xf…...

独立开发者系列(37)——理解async和await

1.理解同步与异步 同步就是执行某个任务A-B-C-D&#xff0c;就是严格按照顺序执行&#xff0c;可以理解为正常的代码逻辑&#xff0c;如果运行的代码都不是很消耗时间的情况系啊&#xff0c;同步可以减少编程的复杂度。但是对于请求远程服务结果的这种服务&#xff0c;如果同步…...

在C#中为图片添加数字水印的几种办法

最近在写个人项目时&#xff0c;有遇到需要将图片加上水印防止被盗取的需求。这里找了几种实现方式&#xff0c;可供有需要的朋友参考。 本身我不是搞算法这块的&#xff0c;所以这里只是找了一些实现&#xff0c;也没有继续深究下去。 以前在学校的时候从书上了解过可以将一…...

Vue的学习(二)

目录 一、class及style的绑定 1.v-bind:class绑定类名 绑定class为对象 ​编辑2. v-bind:class绑定类名 绑定class为对象 3.v-bind:class绑定类名 绑定class为数组 1) v-bind:class绑定类名 绑定class为数组 方法一&#xff1a; 2) v-bind:class绑定类名 绑定class为数组…...

PointNet和PointNet++论文解读

目录 一、导言 二、PointNet介绍 三、PointNet网络结构 1、损失函数 2、正则化 四、PointNet 1、分层次的点集抽象层 一、导言 PointNet来自CVPR2017&#xff0c;是最早直接处理点云数据用于计算机视觉的模型&#xff0c;并运用于分割、检测、场景理解任务&#xff0c;P…...

Pytest测试报告生成专题

在 pytest 中,你可以使用多个选项生成不同格式的测试报告。以下是几种常用的生成测试报告的方法: 1. 生成简单的测试结果文件 你可以使用 pytest 的 --junitxml 选项生成一个 XML 格式的测试报告,这个报告可以与 CI/CD 工具集成。 pytest --junitxml=report.xml这将在当前…...

【在Python中读取Excel文件内容】

在Python中读取Excel文件内容&#xff0c;常用的库有xlrd&#xff08;主要用于读取.xls文件&#xff0c;但不支持.xlsx的较新版本&#xff09;&#xff0c;以及openpyxl&#xff08;专门用于读取和写入.xlsx文件&#xff09;和pandas&#xff08;提供了一个更高级别的接口来处理…...

尚品汇-首页三级分类实现-nginx静态代理生成的静态页面(二十六)

目录&#xff1a; &#xff08;1&#xff09;问题详解 &#xff08;2&#xff09;首页商品分类实现 &#xff08;3&#xff09;修改web-all模块 &#xff08;4&#xff09;页面渲染 &#xff08;1&#xff09;问题详解 &#xff08;2&#xff09;首页商品分类实现 前面做了…...

HTML 段落

HTML 段落 概述 HTML&#xff08;超文本标记语言&#xff09;是构建网页的标准语言&#xff0c;而段落是构成网页内容的基本单元。在HTML中&#xff0c;段落是通过<p>标签来定义的。本文将详细介绍HTML段落的相关知识&#xff0c;包括段落的基本结构、样式设置、以及在…...

Http自定义Header导致的跨域问题

最近写一个小项目&#xff0c;前后端分离&#xff0c;在调试过程中访问远程接口&#xff0c;出现了CORS问题&#xff0c;接口使用的laravel框架&#xff0c;于是添加了解决跨域的中间件&#xff0c;但是前端显示仍存在跨域问题&#xff0c;以为自己写的有问题&#xff0c;检查了…...

20240805 每日AI必读资讯

世界首例&#xff01;AI机器人做牙科手术&#xff0c;8倍速诊疗比人类医生更精准 - Perceptive&#xff1a;让人工智能控制的自主机器人&#xff0c;首次对人类患者进行了全过程的牙科手术&#xff0c;速度大约是人类牙医的8倍。 - 两项新技术 1、OCT 3D成像系统&#xff1a;…...

COMSOL金属氢化物-放氢过程

在此记录下放氢过程的软件设置思路 1、采用的是"达西定律""层流" 物理场&#xff0c;其中"层流"物理场选择了”弱可压缩流动“&#xff0c;这里主要是选择”可压缩流动“的话&#xff0c;算出来的瞬时流量值跟实测差距太大了。 2、设置"达西…...

Unity2D在处理精灵表过程中出现不清晰的解决方法

问题阐述 在我们拿到一张精灵表的时候&#xff0c;我们通常要进行切割。但这样往往导致切割的效果不是很好&#xff0c;这里举一个简单的例子。 这是举例子用到的精灵表 我们先对他进行切割处理。 将single改为Multiope 进入精灵编辑器后&#xff0c;我们选择切割方式 此时我…...

C语言第13篇

1.下面程序是计算n个数的平均值,请填空.______ #include<stdio.h> void main( ) { int i,n; float x,avg0.0; scanf("%d",&n); for(i0;i<n;i) { scanf("%f",&x); avgavg______; } avg________; printf("avg%f\n",avg); } A) …...

Meta Reality Labs:巨额亏损背后的挑战与展望

一、财务概况 自2020年以来,Meta的Reality Labs部门累计亏损已超过450亿美元,其中2023年的亏损达到160亿美元,2024年第一季度亏损38亿美元,分析师预计第二季度亏损可能接近50亿美元。尽管投入巨大,Reality Labs的收入却呈现下降趋势,与不断增加的支出形成鲜明对比。 二…...

linux安装docker(实操教程)

一、安装前准备工作 1.查看服务器操作系统版本 2.查看服务器的操作系统内核版本 3.安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2如果不是root用户登陆的系统&#xff0c;需要手动输入sudo -i切换到root帐户 4.设置阿里云docker-ce镜像源 yum-c…...

隐写工具steghide linux编译安装

1、git clone https://github.com/StefanoDeVuono/steghide.git 2、autoreconf -i 3、./configure 4、make 编译完成后再src目录下又steghide执行下程序 报错&#xff1a;configure: error: cannot find required auxiliary files: compile时需要执行autoreconf 如果往j…...

山寨手机 老手机 山寨平板 提高速度 cpu超频的方法360超级root和setup

第一&#xff0c;挂机 &#xff0c;按音量键 &#xff0c;看机器的配置&#xff0c;注意&#xff0c;山寨机器的 安卓版本不可信啊&#xff0c;安卓4.4.2会标注安卓10 第二 &#xff0c;下载360超级root, http://2012rs.mysxl.cn/ https://xdaforums.com/t/setcpu-for-root-us…...

【两整数之和】python刷题记录

R3-位运算专题。 仲夏之约&#xff0c;留尺一寸&#xff0c;小记一事&#xff0c;算是了结。 无进位和 与 异或运算 规律相同&#xff0c;进位 和 与运算 规律相同&#xff08;并需左移一位&#xff09; 牛啊牛啊 class Solution:def getSum(self, a: int, b: int) -> int…...

常见cms漏洞之dedecms

DedeCMS是织梦团队开发PHP 网站管理系统&#xff0c;它以简单、易用、高效为特色&#xff0c;组建出各种各样各具特色的网站&#xff0c;如地方门户、行业门户、政府及企事业站点等。 下载地址请网上自行寻找 搭建方式选择php study 首先搭建环境 #前台http://localhost/dedecm…...

基于微信小程序的微课堂笔记的设计与实现(源码+论文+部署讲解等)

博主介绍&#xff1a;✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍&#xff1a;我是程序员阿龙&#xff…...

如何构建AI产品:OpenAI与前Shopify产品负责人Miqdad Jaffer的经验分享

一、引言 构建AI产品是一项复杂且充满挑战的任务&#xff0c;尤其是当涉及到面向消费者的解决方案时。在最近的一期播客节目中&#xff0c;OpenAI 和前Shopify产品负责人 Miqdad Jaffer 分享了他在构建AI产品的经验和策略。下面我们将探讨构建AI产品的最佳实践&#xff0c;以及…...

C++的结构体、联合体、枚举类型(一)

1.C++的结构体 2.C++的联合体 3.C++的枚举类型 1.C++的结构体 (1)C++中定义结构体变量,可以省略struct关键字 struct XX{…}; XX x;//定义结构体变量直接省略struct(2)C++结构体中可以直接定义函数,谓之成员函数(又叫方法)(3)在成员函数中可以直接访问该结构体的成员变…...

白骑士的PyCharm教学高级篇 3.5 团队协作与集成开发

系列目录 上一篇&#xff1a;白骑士的PyCharm教学高级篇 3.4 服务器部署与配置 在现代软件开发中&#xff0c;团队协作和集成开发环境&#xff08;IDE&#xff09;的使用至关重要。PyCharm不仅提供了强大的个人开发支持&#xff0c;还为团队协作和集成开发提供了丰富的功能和工…...

c++ 21 指针

*像一把钥匙 通过钥匙去找内存空间 间接修改内存空间的值 不停的给指针赋值 等于不停的更改指针的指向 指针也是一种数据类型 指针做函数参数怎么看都不可以 指针也是一个数据类型 是指它指向空间的数据类习惯 作业 野指针 向null空间地址copy数据 不断改变指针指向 …...

书籍将整数字符串转成整数值(5)0804

题目 给定一个字符串str&#xff0c;如果str符合日常书写的整数形式&#xff0c;并且属于32位整数的范围&#xff0c;返回str所代表的整数值&#xff0c;否则返回0。 举例 str“123” 返回 123 str“023” 因为023 不符合日常的书写习惯&#xff0c;所以返回0 str“A13” …...

计网:从输入URL到网页显示期间发生了什么

1、URL包含的信息 我们输入的url中包含着一些信息&#xff1a; http&#xff1a;表示的此次我们使用的什么协议/www.baidu.com&#xff1a;表示的是我们想要访问的服务器名称&#xff0c;也就是域名dir3/home.html&#xff1a;表示我们所要访问的资源 2、通过DNS解析URL获得I…...

pg数据库存储过程

一、存储过程 CREATE OR REPLACE PROCEDURE public.p_dm_stock_fx_hangye_d(IN dt_date character varying) LANGUAGE plpgsql AS $procedure$ begin delete from dm_stock_fx_hangye_d where stock_date dt_date; commit; insert into dm_stock_fx_hangye_d select t…...

Arduino PID库 (2) –微分导致的过冲

Arduino PID库 &#xff08;2&#xff09; – Derivative Kick 参考&#xff1a;手把手教你看懂并理解Arduino PID控制库——微分冲击 pid内容索引-CSDN博客 Arduino PID库 &#xff08;1&#xff09;– 简介 问题 此修改将稍微调整derivative term。目标是消除一种称为“…...

基于Tensorflow.js的花卉识别编程实践

使用TensorFlow.js进行编程有许多优点&#xff0c;特别适合开发机器学习和深度学习的应用。TensorFlow.js可以直接在浏览器中运行&#xff0c;无需服务器或特殊环境配置。这使得开发者可以轻松地创建和部署基于Web的机器学习应用。TensorFlow.js提供了许多预训练模型&#xff0…...

繁简之争:为什么手机芯片都是 ARM

RISC 和 CISC 指令集 之前的文章《揭秘 CPU 是如何执行计算机指令的》中说到&#xff0c;如果从软件的角度来讲&#xff0c;CPU 就是一个执行各种计算机指令&#xff08;Instruction Code&#xff09;的逻辑机器。 计算机指令集是计算机指令的集合&#xff0c;包括各种类型的…...

《机器人SLAM导航核心技术与实战》第1季:第8章_激光SLAM系统

视频讲解 【第1季】8.第8章_激光SLAM系统-视频讲解【第1季】8.1.第8章_激光SLAM系统_Gmapping算法-视频讲解【第1季】8.2.第8章_激光SLAM系统_Cartographer算法-视频讲解【第1季】8.3.第8章_激光SLAM系统_LOAM算法-视频讲解 第1季&#xff1a;第8章_激光SLAM系统 先 导 课第…...

Qt之Gui

组件依赖关系 应用 #mermaid-svg-GADicZtZJRVVUeiF {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GADicZtZJRVVUeiF .error-icon{fill:#552222;}#mermaid-svg-GADicZtZJRVVUeiF .error-text{fill:#552222;stroke:#…...

Redis的回收策略(淘汰策略)

volatile-lru &#xff1a;从已设置过期时间的数据集&#xff08; server.db[i].expires &#xff09;中挑选最近最少使用的数据淘汰 volatile-ttl &#xff1a; 从已设置过期时间的数据集&#xff08; server.db[i].expires &#xff09; 中挑选将要过期的数据淘汰 volatile…...

基于Springboot的个人博客系统

文章目录 介绍访问地址一、功能展示1.前台首页归档相册留言关于我登陆注册 2.后台管理系统登陆页面首页文章管理相册管理写博客访客统计 介绍 基于Java&#xff08;Springboot&#xff09;可以用做毕业设计的个人博客系统&#xff0c;包括网站前台和后台管理系统两部分。网站前…...