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

Java web应用的目录结构

详情可以参考:
https://tomcat.apache.org/tomcat-10.1-doc/appdev/deployment.html
https://jakarta.ee/specifications/servlet/6.0/jakarta-servlet-spec-6.0.html#directory-structure

Java web应用根目录下包含如下内容:

  • *.html, *.jsp等:html、jsp文件及其它必须对客户端浏览器可见的文件(如JavaScript、样式文件、图片文件)。对于大型的应用,可以将这些文件划分成子目录的结构存放;对于小型应用,可以不再区分子目录。
  • /WEB-INF/web.xml :应用部署描述符文件。这个文件描述了组成应用的servlet及其它的成分、需要容器执行的初始化参数、安全约束等。
  • /WEB-INF/classes/:这个目录下存放了应用需要的任何Java类文件(及关联的资源),包含没有放在 JAR文件中的servlet类、非servlet类。如果Java类是以Java包组织的,那么包的层次结构必须/WEB-INF/classes/下面体现出来,例如,一个类的名字是com.thb.DemoServlet,必须存放为/WEB-INF/classes/com/thb/DemoServlet.class。
  • /WEB-INF/lib/ :这个目录存放着JAR文件,例如第三方类库或者JDBC驱动(driver)。这些JAR文件中包含应用需要的servlet、bean、静态资源、JSP文件、及其它工具类(utility classes)。

对WEB-INF目录的进一步说明:

  • web应用类加载器首先从WEB-INF/classes目录加载类,然后再从 WEB-INF/lib目录下的JAR文件中加载。
  • WEB-INF目录包含了跟应用相关的、但不在应用根目录下的所有东西。
  • WEB-INF下的绝大部分不属于应用的公共文档树的一部分,除了打包到JAR文件中META-INF/resources目录下的静态资源和JSP文件以外,WEB-INF目录下的其它文件不允许容器给客户端提供访问。
  • WEB-INF目录对servlet代码可见,方式是通过ServletContext的getResource 和getResourceAsStream方法调用。

举例:tomcat安装包中自带的examples这个web应用的目录结构如下:

D:\APACHE-TOMCAT-10.1.13\WEBAPPS\EXAMPLES
│  index.html
│  
├─jsp
│  │  index.html
│  │  
│  ├─async
│  │      async1.jsp
│  │      async1.jsp.html
│  │      async3.jsp
│  │      async3.jsp.html
│  │      index.jsp
│  │      index.jsp.html
│  │      
│  ├─cal
│  │      cal1.jsp
│  │      cal1.jsp.html
│  │      cal2.jsp
│  │      cal2.jsp.html
│  │      calendar.html
│  │      Entries.java.html
│  │      Entry.java.html
│  │      JspCalendar.java.html
│  │      login.html
│  │      TableBean.java.html
│  │      
│  ├─checkbox
│  │      check.html
│  │      checkresult.jsp
│  │      checkresult.jsp.html
│  │      CheckTest.html
│  │      cresult.html
│  │      
│  ├─colors
│  │      clr.html
│  │      ColorGameBean.html
│  │      colors.html
│  │      colrs.jsp
│  │      colrs.jsp.html
│  │      
│  ├─dates
│  │      date.html
│  │      date.jsp
│  │      date.jsp.html
│  │      
│  ├─error
│  │      er.html
│  │      err.jsp
│  │      err.jsp.html
│  │      error.html
│  │      errorpge.jsp
│  │      errorpge.jsp.html
│  │      
│  ├─forward
│  │      forward.jsp
│  │      forward.jsp.html
│  │      fwd.html
│  │      one.jsp
│  │      one.jsp.html
│  │      two.html
│  │      
│  ├─images
│  │      code.gif
│  │      execute.gif
│  │      return.gif
│  │      
│  ├─include
│  │      foo.html
│  │      foo.jsp
│  │      foo.jsp.html
│  │      inc.html
│  │      include.jsp
│  │      include.jsp.html
│  │      
│  ├─jsp2
│  │  ├─el
│  │  │      basic-arithmetic.html
│  │  │      basic-arithmetic.jsp
│  │  │      basic-arithmetic.jsp.html
│  │  │      basic-comparisons.html
│  │  │      basic-comparisons.jsp
│  │  │      basic-comparisons.jsp.html
│  │  │      composite.html
│  │  │      composite.jsp
│  │  │      composite.jsp.html
│  │  │      functions.html
│  │  │      Functions.java.html
│  │  │      functions.jsp
│  │  │      functions.jsp.html
│  │  │      implicit-objects.html
│  │  │      implicit-objects.jsp
│  │  │      implicit-objects.jsp.html
│  │  │      ValuesBean.java.html
│  │  │      ValuesTag.java.html
│  │  │      
│  │  ├─jspattribute
│  │  │      FooBean.java.html
│  │  │      HelloWorldSimpleTag.java.html
│  │  │      jspattribute.html
│  │  │      jspattribute.jsp
│  │  │      jspattribute.jsp.html
│  │  │      shuffle.html
│  │  │      shuffle.jsp
│  │  │      shuffle.jsp.html
│  │  │      ShuffleSimpleTag.java.html
│  │  │      TileSimpleTag.java.html
│  │  │      
│  │  ├─jspx
│  │  │      basic.html
│  │  │      basic.jspx
│  │  │      basic.jspx.html
│  │  │      svgexample.html
│  │  │      textRotate.html
│  │  │      textRotate.jpg
│  │  │      textRotate.jspx
│  │  │      textRotate.jspx.html
│  │  │      
│  │  ├─misc
│  │  │      coda.jspf
│  │  │      coda.jspf.html
│  │  │      config.html
│  │  │      config.jsp
│  │  │      config.jsp.html
│  │  │      dynamicattrs.html
│  │  │      dynamicattrs.jsp
│  │  │      dynamicattrs.jsp.html
│  │  │      EchoAttributesTag.java.html
│  │  │      prelude.jspf
│  │  │      prelude.jspf.html
│  │  │      
│  │  ├─simpletag
│  │  │      book.html
│  │  │      book.jsp
│  │  │      book.jsp.html
│  │  │      BookBean.java.html
│  │  │      FindBookSimpleTag.java.html
│  │  │      Functions.java.html
│  │  │      hello.html
│  │  │      hello.jsp
│  │  │      hello.jsp.html
│  │  │      HelloWorldSimpleTag.java.html
│  │  │      repeat.html
│  │  │      repeat.jsp
│  │  │      repeat.jsp.html
│  │  │      RepeatSimpleTag.java.html
│  │  │      
│  │  └─tagfiles
│  │          displayProducts.tag.html
│  │          hello.html
│  │          hello.jsp
│  │          hello.jsp.html
│  │          helloWorld.tag.html
│  │          panel.html
│  │          panel.jsp
│  │          panel.jsp.html
│  │          panel.tag.html
│  │          products.html
│  │          products.jsp
│  │          products.jsp.html
│  │          
│  ├─jsptoserv
│  │      hello.jsp
│  │      hello.jsp.html
│  │      jsptoservlet.jsp
│  │      jsptoservlet.jsp.html
│  │      jts.html
│  │      ServletToJsp.java.html
│  │      
│  ├─num
│  │      numguess.html
│  │      numguess.jsp
│  │      numguess.jsp.html
│  │      
│  ├─security
│  │  └─protected
│  │          error.jsp
│  │          error.jsp.html
│  │          index.jsp
│  │          index.jsp.html
│  │          login.jsp
│  │          login.jsp.html
│  │          
│  ├─sessions
│  │      carts.html
│  │      carts.jsp
│  │      carts.jsp.html
│  │      crt.html
│  │      DummyCart.html
│  │      
│  ├─simpletag
│  │      foo.html
│  │      foo.jsp
│  │      foo.jsp.html
│  │      
│  ├─snp
│  │      snoop.html
│  │      snoop.jsp
│  │      snoop.jsp.html
│  │      
│  ├─tagplugin
│  │      choose.html
│  │      choose.jsp
│  │      choose.jsp.html
│  │      foreach.html
│  │      foreach.jsp
│  │      foreach.jsp.html
│  │      howto.html
│  │      if.html
│  │      if.jsp
│  │      if.jsp.html
│  │      notes.html
│  │      
│  └─xml
│          xml.html
│          xml.jsp
│          xml.jsp.html
│          
├─META-INF
│      context.xml
│      
├─servlets
│  │  cookies.html
│  │  helloworld.html
│  │  index.html
│  │  reqheaders.html
│  │  reqinfo.html
│  │  reqparams.html
│  │  sessions.html
│  │  
│  ├─images
│  │      code.gif
│  │      execute.gif
│  │      return.gif
│  │      
│  └─nonblocking
│          bytecounter.html
│          
├─WEB-INF
│  │  web.xml
│  │  
│  ├─classes
│  │  │  CookieExample.class
│  │  │  CookieExample.java
│  │  │  HelloWorldExample.class
│  │  │  HelloWorldExample.java
│  │  │  LocalStrings.properties
│  │  │  LocalStrings_cs.properties
│  │  │  LocalStrings_de.properties
│  │  │  LocalStrings_es.properties
│  │  │  LocalStrings_fr.properties
│  │  │  LocalStrings_ja.properties
│  │  │  LocalStrings_ko.properties
│  │  │  LocalStrings_pt.properties
│  │  │  LocalStrings_pt_BR.properties
│  │  │  LocalStrings_ru.properties
│  │  │  LocalStrings_zh_CN.properties
│  │  │  RequestHeaderExample.class
│  │  │  RequestHeaderExample.java
│  │  │  RequestInfoExample.class
│  │  │  RequestInfoExample.java
│  │  │  RequestParamExample.class
│  │  │  RequestParamExample.java
│  │  │  ServletToJsp.class
│  │  │  ServletToJsp.java
│  │  │  SessionExample.class
│  │  │  SessionExample.java
│  │  │  
│  │  ├─async
│  │  │      Async0$1.class
│  │  │      Async0.class
│  │  │      Async0.java
│  │  │      Async1$1.class
│  │  │      Async1.class
│  │  │      Async1.java
│  │  │      Async2$1.class
│  │  │      Async2.class
│  │  │      Async2.java
│  │  │      Async3.class
│  │  │      Async3.java
│  │  │      AsyncStockContextListener.class
│  │  │      AsyncStockContextListener.java
│  │  │      AsyncStockServlet.class
│  │  │      AsyncStockServlet.java
│  │  │      Stockticker$Stock.class
│  │  │      Stockticker$TickListener.class
│  │  │      Stockticker.class
│  │  │      Stockticker.java
│  │  │      
│  │  ├─cal
│  │  │      Entries.class
│  │  │      Entries.java
│  │  │      Entry.class
│  │  │      Entry.java
│  │  │      JspCalendar.class
│  │  │      JspCalendar.java
│  │  │      TableBean.class
│  │  │      TableBean.java
│  │  │      
│  │  ├─checkbox
│  │  │      CheckTest.class
│  │  │      CheckTest.java
│  │  │      
│  │  ├─colors
│  │  │      ColorGameBean.class
│  │  │      ColorGameBean.java
│  │  │      
│  │  ├─compressionFilters
│  │  │      CompressionFilter.class
│  │  │      CompressionFilter.java
│  │  │      CompressionFilterTestServlet.class
│  │  │      CompressionFilterTestServlet.java
│  │  │      CompressionResponseStream.class
│  │  │      CompressionResponseStream.java
│  │  │      CompressionServletResponseWrapper.class
│  │  │      CompressionServletResponseWrapper.java
│  │  │      
│  │  ├─dates
│  │  │      JspCalendar.class
│  │  │      JspCalendar.java
│  │  │      
│  │  ├─error
│  │  │      Smart.class
│  │  │      Smart.java
│  │  │      
│  │  ├─examples
│  │  │      ExampleTagBase.class
│  │  │      ExampleTagBase.java
│  │  │      FooTag.class
│  │  │      FooTag.java
│  │  │      FooTagExtraInfo.class
│  │  │      FooTagExtraInfo.java
│  │  │      LogTag.class
│  │  │      LogTag.java
│  │  │      ValuesTag.class
│  │  │      ValuesTag.java
│  │  │      
│  │  ├─filters
│  │  │      ExampleFilter.class
│  │  │      ExampleFilter.java
│  │  │      
│  │  ├─http2
│  │  │      SimpleImagePush.class
│  │  │      SimpleImagePush.java
│  │  │      
│  │  ├─jsp2
│  │  │  └─examples
│  │  │      │  BookBean.class
│  │  │      │  BookBean.java
│  │  │      │  FooBean.class
│  │  │      │  FooBean.java
│  │  │      │  ValuesBean.class
│  │  │      │  ValuesBean.java
│  │  │      │  
│  │  │      ├─el
│  │  │      │      Functions.class
│  │  │      │      Functions.java
│  │  │      │      
│  │  │      └─simpletag
│  │  │              EchoAttributesTag.class
│  │  │              EchoAttributesTag.java
│  │  │              FindBookSimpleTag.class
│  │  │              FindBookSimpleTag.java
│  │  │              HelloWorldSimpleTag.class
│  │  │              HelloWorldSimpleTag.java
│  │  │              RepeatSimpleTag.class
│  │  │              RepeatSimpleTag.java
│  │  │              ShuffleSimpleTag.class
│  │  │              ShuffleSimpleTag.java
│  │  │              TileSimpleTag.class
│  │  │              TileSimpleTag.java
│  │  │              
│  │  ├─listeners
│  │  │      ContextListener.class
│  │  │      ContextListener.java
│  │  │      SessionListener.class
│  │  │      SessionListener.java
│  │  │      
│  │  ├─nonblocking
│  │  │      ByteCounter$CounterListener.class
│  │  │      ByteCounter.class
│  │  │      ByteCounter.java
│  │  │      NumberWriter$NumberWriterListener.class
│  │  │      NumberWriter.class
│  │  │      NumberWriter.java
│  │  │      
│  │  ├─num
│  │  │      NumberGuessBean.class
│  │  │      NumberGuessBean.java
│  │  │      
│  │  ├─sessions
│  │  │      DummyCart.class
│  │  │      DummyCart.java
│  │  │      
│  │  ├─trailers
│  │  │      ResponseTrailers$TrailerFieldSupplier.class
│  │  │      ResponseTrailers.class
│  │  │      ResponseTrailers.java
│  │  │      
│  │  ├─util
│  │  │      CookieFilter.class
│  │  │      CookieFilter.java
│  │  │      HTMLFilter.class
│  │  │      HTMLFilter.java
│  │  │      
│  │  ├─validators
│  │  │      DebugValidator.class
│  │  │      DebugValidator.java
│  │  │      
│  │  └─websocket
│  │      │  ExamplesConfig.class
│  │      │  ExamplesConfig.java
│  │      │  
│  │      ├─chat
│  │      │      ChatAnnotation.class
│  │      │      ChatAnnotation.java
│  │      │      
│  │      ├─drawboard
│  │      │  │  Client$1.class
│  │      │  │  Client.class
│  │      │  │  Client.java
│  │      │  │  DrawboardContextListener.class
│  │      │  │  DrawboardContextListener.java
│  │      │  │  DrawboardEndpoint$1.class
│  │      │  │  DrawboardEndpoint$2.class
│  │      │  │  DrawboardEndpoint$3$1.class
│  │      │  │  DrawboardEndpoint$3.class
│  │      │  │  DrawboardEndpoint.class
│  │      │  │  DrawboardEndpoint.java
│  │      │  │  DrawMessage$ParseException.class
│  │      │  │  DrawMessage.class
│  │      │  │  DrawMessage.java
│  │      │  │  Room$1$1.class
│  │      │  │  Room$1.class
│  │      │  │  Room$2.class
│  │      │  │  Room$MessageType.class
│  │      │  │  Room$Player.class
│  │      │  │  Room.class
│  │      │  │  Room.java
│  │      │  │  
│  │      │  └─wsmessages
│  │      │          AbstractWebsocketMessage.class
│  │      │          AbstractWebsocketMessage.java
│  │      │          BinaryWebsocketMessage.class
│  │      │          BinaryWebsocketMessage.java
│  │      │          CloseWebsocketMessage.class
│  │      │          CloseWebsocketMessage.java
│  │      │          StringWebsocketMessage.class
│  │      │          StringWebsocketMessage.java
│  │      │          
│  │      ├─echo
│  │      │      EchoAnnotation.class
│  │      │      EchoAnnotation.java
│  │      │      EchoAsyncAnnotation$CompletedFuture.class
│  │      │      EchoAsyncAnnotation.class
│  │      │      EchoAsyncAnnotation.java
│  │      │      EchoEndpoint$EchoMessageHandlerBinary.class
│  │      │      EchoEndpoint$EchoMessageHandlerText.class
│  │      │      EchoEndpoint.class
│  │      │      EchoEndpoint.java
│  │      │      EchoStreamAnnotation.class
│  │      │      EchoStreamAnnotation.java
│  │      │      servers.json
│  │      │      
│  │      └─snake
│  │              Direction.class
│  │              Direction.java
│  │              Location$1.class
│  │              Location.class
│  │              Location.java
│  │              Snake.class
│  │              Snake.java
│  │              SnakeAnnotation.class
│  │              SnakeAnnotation.java
│  │              SnakeTimer$1.class
│  │              SnakeTimer.class
│  │              SnakeTimer.java
│  │              
│  ├─jsp
│  │      403.jsp
│  │      403.jsp.html
│  │      debug-taglib.tld
│  │      example-taglib.tld
│  │      jsp2-example-taglib.tld
│  │      
│  ├─lib
│  │      taglibs-standard-impl-1.2.5-migrated-0.0.1.jar
│  │      taglibs-standard-spec-1.2.5-migrated-0.0.1.jar
│  │      
│  └─tags
│          displayProducts.tag
│          helloWorld.tag
│          panel.tag
│          
└─websocketchat.xhtmldrawboard.xhtmlecho.xhtmlindex.xhtmlsnake.xhtml

相关文章:

Java web应用的目录结构

详情可以参考: https://tomcat.apache.org/tomcat-10.1-doc/appdev/deployment.html https://jakarta.ee/specifications/servlet/6.0/jakarta-servlet-spec-6.0.html#directory-structure Java web应用根目录下包含如下内容: *.html, *.jsp等&#xf…...

【Mac环境搭建】JDK安装、多JDK安装与切换

文章目录 JDK下载与安装下载安装 配置环境变量安装多个JDK共存 JDK下载与安装 下载 Oracle官网提供了非常多个版本的JDK供下载,可以点击如下链接重定向到JDK下载页面 ORACLE官网JDK下载 安装 下面的官方文档可以点开收藏到浏览器的收藏夹,这样后续在开…...

C++: 类和对象(中)

文章目录 1. 类的6个默认成员函数2. 构造函数构造函数概念构造函数特性特性1,2,3,4特性5特性6特性7 3. 析构函数析构函数概念析构函数特性特性1,2,3,4特性5特性6 4. 拷贝构造函数拷贝构造函数概念拷贝构造函数特性特性1,2特性3特性4特性5 5. 运算符重载一般运算符重载赋值运算符…...

图片批量归类:告别混乱,实现高效文件管理

在日常生活中,我们经常需要处理大量的图片文件。这些图片可能来自于不同的设备、不同的目录,甚至不同的存储介质。随着时间的推移,这些图片文件会越来越多,管理起来也会越来越困难。如何高效地整理这些图片文件,告别混…...

187. 重复的DNA序列 --力扣 --JAVA

题目 DNA序列 由一系列核苷酸组成,缩写为 A, C, G 和 T.。 例如,"ACGAATTCCG" 是一个 DNA序列 。 在研究 DNA 时,识别 DNA 中的重复序列非常有用。 给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中出现不止一次…...

Mysql高级——Mysql8一主一从,多主多从搭建

修改 /etc/hosts文件 ip地址 master1 ip地址 master2 ip地址 slave1 ip地址 slave2一主一从 create database master1db;create table master1db.master1tab(name char(50));insert into master1db.master1tab VALUES(1111);insert into master1db.master1tab VALUES(2222);m…...

【Qt5】QNetworkAccessManager

2023年11月5,周日晚上 QNetworkAccessManager是Qt Network模块中的一个类,用于发送网络请求和接收网络响应。它提供了一种方便的方式来进行网络通信,支持常见的网络协议,如HTTP、HTTPS、FTP等。 QNetworkAccessManager和QNetwork…...

zookeeper节点类型

节点类型 持久节点(Persistent Nodes) 这些是Zookeeper中最常见的一种节点类型,当创建一个持久类型节点时,该值会一直存在zookeeper中,直到被显式删除或被新值覆盖。 临时节点(Ephemeral Nodes&#xff…...

【C++】一篇文章搞懂auto关键字及其相关用法!

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...

微信小程序overflow-x超出部分样式不渲染

把display:flex改成display:inline-flex, 将对象作为内联块级弹性伸缩盒显示, 类似与是子元素将父元素撑开,样式就显示出来了...

Oracle常用运维SQL-SQL执行性能及锁表等查询分析

oracle相关系列文章: docker–在Anaconda jupyter 容器中使用oracle数据源时,Oracle客户端安装配置及使用示例 Oracle常用运维SQL–用户管理、数据导入、导出的实用脚本 Oracle TEMPORARY TABLE 临时表的使用及删除报ORA-14452错误的解决办法 Oracle常用运维SQL-SQL执行性能及…...

安装MySQL时出现 由于找不到 MSVCR120.dll,无法继续执行代码。重新安装程序可能会解决此问题。

--------------------------- mysqld.exe - 系统错误 --------------------------- 由于找不到 MSVCR120.dll,无法继续执行代码。重新安装程序可能会解决此问题。 --------------------------- 确定 --------------------------- 安装MySQL时出现 “This appl…...

【基础IO⑧】:文件描述符fd(进程与文件的联系)

【基础IO⑧】:进程与文件之间的联系(文件描述符fd) 一.前言探讨[进程与文件关系]二.C语言文件操作三.系统文件调用1.open/write 四.文件描述符fd 一.前言探讨[进程与文件关系] 我们首先了解一些基本的认识: 1.文件包括文件内容和文件属性 2.…...

搭建WAMP网站教程(windows+apache+mysql+php)

之前为了学习网络安全,从搭建网站学起,对网站运行有个初步的了解。 今天翻到了之前的笔记,顺手发到csdn上了。 搭建网站步骤 一、Apache 安装Apache,下载Apache之后把Apache解压,此处解压到C:\目录下 2.然后要记得安…...

瓦斯抽采VR应急救援模拟仿真系统筑牢企业安全生产防线

矿工素质对安全生产的影响很大。传统的煤矿安全事故培训出于条件差、经验少加上侥幸心理,导致其在教学内容时过于简单且不切合实际,无法真正发挥培训作用。瓦斯检查作业VR模拟实操培训通过真实还原煤矿作业环境,让受训者身临其境地进入三维仿…...

nodelist 与 HTMLCollection 的区别

原地址 https://cloud.tencent.com/developer/article/2013289 节点与元素 根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点: 整个文档是一个文档节点每个 HTML 元素是元素节点HTML 元素内的文本是文本节点每个 HTML 属性是属性节点注释是注…...

系列十二、过滤器 vs 拦截器

一、过滤器 vs 拦截器 1.1、区别 (1)触发时机不一样,过滤器是在请求进入容器后Servlet之前进行预处理的,请求结束返回也是,是在Servlet处理完后,返回给前端之前; (2)过滤…...

dockerfile运行apk命令卡住的问题解决——更换镜像

在练习docker官方文档关于docker compose初体验(https://docs.docker.com/compose/gettingstarted/)过程中,执行dockerfile命令RUN apk add --no-cache gcc musl-dev linux-headers时,出现卡住的情况,等了几千秒都不行…...

Android - 编译 openssl 踩坑之路

一、简述 如果你想快速在项目中使用上 openssl,可以使用网上其他开发者提供好的预编译库: OpenSSL(All):https://builds.viaduck.org/prebuilts/openssl/OpenSSL(3.1.*) :https://github.com/217heidai/openssl_for_android以上的预编译库可能最低只支持 API 21(即 Andro…...

verdi技巧分享--合并多个fsdb文件、统计信号边沿

文章目录 0 前言1 如何显示信号高位的02 统计信号的上升沿、下降沿3 合并信号4 将多个fsdb文件合并成一个 0 前言 分享几个这段时间学到的verdi操作 1 如何显示信号高位的0 这个可能对一些有强迫症的有帮助吧 nand相关的操作,有一些特定的cmd,比如 r…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

GitHub 趋势日报 (2025年06月08日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...