Java网络开发(Tomcat)—— Servlet学习 Web相关背景知识 JavaWeb项目初步

本文目录

  • 引出
  • 〇、域名、IP、端口
  • 一、软件架构BS和CS
  • 二、实现Web服务的条件和步骤
  • 三、Tomcat搭建Web项目初步
    • 1.pom.xml文件配置
    • 2.web.xml文件更新
    • 3.Tomcat运行环境配置
    • 4.项目文件层级解析
  • 四、JavaWeb项目文件分类
    • (1)静态文件—存放位置
    • (2)动态文件---servlet
  • 五、Servlet的创建和访问
    • 1.Servlet程序编写---从servlet到HttpServlet
    • 2.从xml中的配置路径,到@WebServlet注解实现配置
    • 3. Servlet访问路径分析【重点】
    • 4.Servlet的生命周期
  • 六、Servlet启动异常原因
      • 程序启动就报错:
  • 七、网页的状态码解析
    • 200正常
    • 500异常--服务器异常Java代码
    • 400异常----get方法长度限制
    • 404异常----页面找不到
    • 302重定向---地址变化
  • 总结

引出

javaweb相关的内容比较多,知识点杂,本博客主要包括tomcat搭建web项目的初步,配置文件可参考;理解静态文件、动态文件,及其访问方式的区别;Servlet的创建和访问,访问路径分析;常见的Servlet启动异常原因;以及网页状态码的解析。


〇、域名、IP、端口

IP

互联网上很多的电脑,互相之间怎么识别和寻找到对方,现实生活找一个人需要一个地址,同样网上找一个人也需要地址,这个地址就是IP,IP地址(这里指IPV4)实质上是一个32位的二进制数,通常被分割为4个“8位二进制数”,也就是4个部分,每部分都是0到255(0~2^8 - 1)的十进制整数表示,各部分之间用小数点分开,即(a.b.c.d)的形式,其中a,b,c,d都是0~255之间的十进制整数。例:IP地址(202.196.80.211),实际上是32位二进制数.
每台电脑都有一个本地ip,哪怕不联网,本地的其他程序也可以找到自己,这个ip地址为127.0.0.1
我们现在的每台电脑还有一个局域网ip,局域网的其他人可以找到

域名:

因为访问的时候ip地址不好记忆,于是就发明了域名,比如www.baidu.com就是百度的域名,然后做好域名和ip的对应关系,就可以根据域名来找到对应的ip,每台电脑也有一个本地的域名叫localhost

端口:

端口:
电脑上可能有多个程序,比如mysql,tomcat,通过ip可以寻找到我们的电脑,但是同一台电脑如何区分要访问的是mysql还是tomcat呢,这就需要端口了,端口可以理解成一个程序对外开的一个门,一台电脑可以开很多个门,对应不同的程序,最大为65535

  • 有两个特殊的端口是80和443,如果对方服务器上的程序提供的端口是80,那就可以省略不写。
    比如:http://www.baidu.com:80,也可以访问到百度,只是这个80是可以省略不写的

1.任何一台公网IP的电脑,都有一个固定的IP;

2.baidu.com 域名-----解析成IP :http://180.101.50.242/

http://180.101.50.242/index.html

真正的百度的地址: 180.101.50.242:80/index.html

在这里插入图片描述

ip:找到百度这台电脑;

80:服务的端口;

index.html:服务管理的一个文件;

一、软件架构BS和CS

通俗解释,微信电脑版就是一个CS架构,微信网页版就是一个BS 架构。CS是客户端-服务器,BS是浏览器-服务器。比如登录QQ,CS要安装一个软件QQ软件,再登录访问,登录百度网站BS只需要打开浏览器就可以操作。

CS架构:
CS(Client/Server):客户端----服务器结构。C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。因为客户端要负责绝大多数的业务逻辑和UI展示,又称为胖客户端。它充分利用两端硬件,将任务分配到Client 和Server两端,降低了系统的通讯开销。C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。

C/S 架构是一种典型的两层架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。

BS架构
BS(Browser/Server):浏览器----服务器结构,是目前应用系统的发展方向。BS是伴随着Internet技术的兴起,对C/S架构的改进,为了区别于传统的C/S 模式,特意称为B/S模式。在这种结构下,通过W3浏览器来进入工作界面,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现,形成三层(3-tier)结构。这样使得客户端电脑负荷大大简化(因此被称为瘦客户端),减轻了系统维护、升级的支出成本,降低了用户的总体成本(TCO)。

BS的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,难以实现传统模式下的特殊功能要求。它是瘦客户端,对大量的数据输入以及报表的应答等都需要通过浏览器与服务器进行交互,通信开销大,而且对于实现复杂的应用构造有较大的困难。

二、实现Web服务的条件和步骤

把拥有资源的电脑叫服务器,把访问别人资源的电脑叫客户端。客户端要访问到服务器,需要下面一些条件:

  • 两台电脑网络是通的
  • 服务器允许并提供服务让别人访问这些html(需要在服务器安装一个web服务软件)
  • 客户端通过浏览器输入地址访问服务器资源
    在这里插入图片描述上面第二步中的这个软件,就叫web服务器软件,我们常用的免费就是tomcat,其他收费的还有weblogic,websphere等。

上述过程分为为以下几步:
1)客户端发送请求:用户 通过 客户端的浏览器向服务器发送请求,等待服务器 的 响应;
2)服务器处理请求:服务器对接收到的请求进行解析和处理,并产生响应;
3)服务器发送响应 :服务器 把用户请求的数据返回给浏览器;
4)浏览器 呈现结果:客户端的浏览器 解释执行 HTML文件, 呈现相应的界面和结果 。
在这里插入图片描述

三、Tomcat搭建Web项目初步

1.pom.xml文件配置

主要是下面几项

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

  <dependencies>
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>4.0.1</version>
          <scope>provided</scope>
      </dependency>
</dependencies>

完整版本的xml文件,包含Jsp相关的包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.tianju</groupId>
  <artifactId>javaWebHome0525</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>


    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

  <dependencies>
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>4.0.1</version>
          <scope>provided</scope>
      </dependency>

      <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.18.22</version>
      </dependency>

      <dependency>
          <groupId>commons-io</groupId>
          <artifactId>commons-io</artifactId>
          <version>2.5</version>
      </dependency>

      <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>druid</artifactId>
          <version>1.2.16</version>
      </dependency>

      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.20</version>
      </dependency>

      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-jdbc</artifactId>
          <version>5.2.22.RELEASE</version>
      </dependency>


<!--      jsp导包-->
      <dependency>
          <groupId>javax.servlet.jsp</groupId>
          <artifactId>javax.servlet.jsp-api</artifactId>
          <version>2.3.3</version>
<!--          加provided-->
          <scope>provided</scope>
      </dependency>

      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>jstl</artifactId>
          <version>1.2</version>
      </dependency>

      <dependency>
          <groupId>taglibs</groupId>
          <artifactId>standard</artifactId>
          <version>1.1.2</version>
      </dependency>




  </dependencies>

  <build>
    <finalName>javaWebHome0525</finalName>
  </build>
</project>

2.web.xml文件更新

默认的web.xml版本比价低,用下面的内容代替,如果不替换,会出现一些功能不支持的情况

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
</web-app>

3.Tomcat运行环境配置

上下文英文叫:Context未来在很多地方都可以看到,中文翻译为上下文,也可以理解成"容器",他表示着我们这个应用。

比如一个tomcat里面,可能放了多了应用程序,每个程序都有一个login链接,那怎么去区分每一个程序,就是使用应用上下文。

在这里插入图片描述
这里设置成day01。
在这里插入图片描述

4.项目文件层级解析

用tomcat创建的web项目的项目层级如下图所示:

在这里插入图片描述

四、JavaWeb项目文件分类

(1)静态文件—存放位置

放在webapp目录下面的 html img css 。。。

http://localhost:8080/day02/dir/xxx.html

静态资源可以都放在webapp目录下面,常用静态资源包括html css js 图片等。html放在这个目录下,或者直接在这个目录下新建文件,通过浏览器就可以访问到了,比如在webapp下面放一个之前写好的html文件通过下面链接访问

http://localhost:8080/day01/login.html

在这里插入图片描述

访问该链接时的行为的具体分析

在这里插入图片描述除了html,其他css img js等都可以访问到

补充:关于index.html

index,在互联网上表示网站的默认主页,一般为index.html、index.jsp等。比如我们访问百度

http://www.baidu.com/index.html,其实也可以跳转到百度,只是在很多web服务器index.html是可以省略的。tomcat中可以配置这个默认的页面,配置以后,如果我们输入http://localhost:8080, 没有输入下一级地址,tomcat会在我们webapp目录下寻找下面三个文件,找到后进行响应,不需要我们手动输入

在这里插入图片描述

(2)动态文件—servlet

@WebServlet(value = “/user/delete”)

http://localhost:8080/day02/user/delete

补充:前端代码<a href

<from action="/day02/xxx">

绝对路径会拼接到localhost:8080/ 后面

五、Servlet的创建和访问

上面主要说了静态文件的访问,但是实际使用过程中,比如一个人登录,需要输入用户名,密码,发送到tomcat的day01服务后,服务需要程序来接收处理,然后去数据库比对,这个过程就需要java程序参与了,我们把前面那些纯html,图片叫静态资源。把用Java代码或者其他语言代码处理的叫动态资源。

1.Servlet程序编写—从servlet到HttpServlet

// tomcat启动时,默认不会new servlet对象;
// 当首次访问连接对应的servlet时候,才new DemoServlet对象;
// 后续操作,对象一直存在,只会调用service方法
// 结论:tomcat容器中,只有一个DemoServlet对象提供服务,在首次访问时创建
package com.tianju.servlet;

import javax.servlet.*;
import java.io.IOException;

public class DemoServlet implements Servlet {

    // tomcat启动时,默认不会new servlet对象;
    // 当首次访问连接对应的servlet时候,才new DemoServlet对象;
    // 后续操作,对象一直存在,只会调用service方法
    // 结论:tomcat容器中,只有一个DemoServlet对象提供服务,在首次访问时创建
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

    }

    @Override
    public ServletConfig getServletConfig() {
        System.out.println("getServletConfig");
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("service~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

    }

    @Override
    public String getServletInfo() {
        System.out.println("getServletInfo~~~~~~~~~~~~~~~~~~~~~~~~~");
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("destroy~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

    }
}

需要在web.xml文件中进行访问路径的配置

    <servlet>
        <servlet-name>demoServlet</servlet-name>
        <servlet-class>com.tianju.servlet.DemoServlet</servlet-class>
<!--        servlet 会在tomcat启动时自动启动,设置成正数-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>demoServlet</servlet-name>
        <url-pattern>/demo</url-pattern>
    </servlet-mapping>

使用路径http://localhost:8080/day01/demo访问这个servlet

实际使用中用HttpServlet类,这个更好用

@WebServlet(value = “/us”,loadOnStartup = 1)
(1)loadOnStartup=1 自动启动;
(2)注解,访问http://localhost:10081/day01/us定位到这里;
servlet启动失败原因:1.没加斜杆;2.两个servlet映射成一个url

中文乱码编码问题的解决

        req.setCharacterEncoding("UTF-8");
        // 解决中文的显示问题
        response.setCharacterEncoding("UTF-8"); // 设置成编码
        response.setContentType("text/html;charset=utf-8"); // 展示的方式

完整的代码如下所示:

package com.tianju.servlet;

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;

/**
 * tomcat, weblogic, 为web服务器
 * nginx 静态服务器
 */
// loadOnStartup=1 自动启动
// @WebServlet(value = "/us",loadOnStartup = 1)
// servlet启动失败原因:1.没加斜杆;2.两个servlet映射成一个url
@WebServlet(value = "/us")
// 注解,访问http://localhost:10081/day01/us定位到这里
public class UserServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("这是UserServlet");
        System.out.println("request获取");
        // http://localhost:10081/day01/us?username=root&password=123
        req.setCharacterEncoding("UTF-8");
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        System.out.println("输入用户名为:"+username);
        System.out.println("输入密码为:"+password);
//        System.out.println("如果没输入,调用方法");
//        username.trim(); // 会报500异常

        // 解决中文的显示问题
        response.setCharacterEncoding("UTF-8"); // 设置成编码
        response.setContentType("text/html;charset=utf-8"); // 展示的方式
        response.getWriter().write("<h2>inputSuccess<h2>");
    }
}

2.从xml中的配置路径,到@WebServlet注解实现配置

@WebServlet(value = “/us”,loadOnStartup = 1)

servlet启动失败原因:1.没加斜杆;2.两个servlet映射成一个url

// loadOnStartup=1 自动启动
// @WebServlet(value = "/us",loadOnStartup = 1)
// servlet启动失败原因:1.没加斜杆;2.两个servlet映射成一个url
@WebServlet(value = "/us")
// 注解,访问http://localhost:10081/day01/us定位到这里

在这里插入图片描述

3. Servlet访问路径分析【重点】

Servlet访问路径和静态资源访问路径的对比:
在这里插入图片描述

从xml文件到注解设置:

(1)初级版本xml;

在这里插入图片描述

(2)注解版本,@WebServlet

在这里插入图片描述

4.Servlet的生命周期

Servlet类中的init方法和destory方法:

(1)init方法:servlet初始化时,会调用这个方法,但是整个服务运行期间只有一次;
(2)destory方法:服务正常关闭时,会运行销毁方法


public class DemoServlet extends HttpServlet {
    /**
     * servlet初始化时,会调用这个方法,但是整个服务运行期间只有一次
     * @throws ServletException
     */
    @Override
    public void init() throws ServletException {
        System.out.println("servlet初始化");
    }

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("访问");
    }

    /**
     * 服务正常关闭时,会运行销毁方法
     */
    @Override
    public void destroy() {
        System.out.println("servlet销毁");
    }
}

servlet对象默认访问时才生成,如果希望tomcat启动就生成对象,需要单独设置:负数就是启动的时候执行一次,0或者正整数,10以下的数字,服务器启动的时候就被创建;如果是注解的方式,则设置成:@WebServlet(value = “/us”,loadOnStartup = 1);xml文件,则进行如下配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <servlet>
        <servlet-name>demoServlet</servlet-name>
        <servlet-class>com.woniu.servlet.DemoServlet</servlet-class>
<!--  servlet对象默认访问时才生成,如果希望tomcat启动就生成对象,需要单独设置
        负数就是启动的时候执行一次,0或者正整数,10以下的数字,服务器启动的时候就被创建-->
        <load-on-startup>4</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>demoServlet</servlet-name>
        <url-pattern>/demo</url-pattern>
    </servlet-mapping>
</web-app>

六、Servlet启动异常原因

程序启动就报错:

(1)@WebServlet(value = “/us”) 中反斜杠 / 没有写;

(2)两个Serlet 指向同一个路径;

(3)DBUtils里面的静态方法出问题;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

七、网页的状态码解析

200正常

在这里插入图片描述

500异常–服务器异常Java代码

细节:null和空,null调用方法会出现空指针异常
在这里插入图片描述

400异常----get方法长度限制

在这里插入图片描述

404异常----页面找不到

在这里插入图片描述

302重定向—地址变化

在这里插入图片描述


总结

1.tomcat搭建web项目初步,xml配置文件设置;
2.JavaWeb项目静态、动态文件存放,及其访问链接分析;
3.Servlet的创建和访问,访问路径分析,@WebServlet实现;
4.servlet启动异常原因分析;
5.网页状态码解析;

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

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

相关文章

今天面了个字节跳动拿30k出来的测试大佬,让我见识到了什么是天花板

2022年堪称大学生就业最难的一年&#xff0c;应届毕业生人数是1076万。失业率超50%&#xff01; 但是我观察到一个数据&#xff0c;那就是已经就业的毕业生中&#xff0c;计算机通信等行业最受毕业生欢迎&#xff01; 计算机IT行业薪资高&#xff0c;平均薪资是文科其他岗位的…

【Linux】常用命令的汇总学习

文章目录 1.目录切换命令2.目录操作命令3.把ls -l中包含字母file&#xff08;不区分大小写&#xff09;的内容输出4.统计txt中的某个字符串5.grep命令的使用6.linux查找当前目录下所有txt文件7.linux中的find命令8.查看系统所有的进程信息9.如何确定文件的类型10.tar解压缩11.U…

Java数据驱动:CData JDBC Drivers 2022 Crack

JDBC 驱动程序 易于使用的 JDBC 驱动程序&#xff0c;具有强大的企业级功能 无与伦比的性能和可扩展性。 对实时数据的简单 JDBC/SQL 访问。 从流行的 BI 工具访问实时数据。 集成到流行的 IDE 中。 CData JDBC Drivers Software 是领先的数据访问和连接解决方​​案提供商。我…

如何更改 Linux 文件和目录权限?

在Linux系统中&#xff0c;文件和目录权限是安全性和访问控制的关键组成部分。正确设置文件和目录的权限可以确保只有授权的用户能够读取、写入或执行这些文件和目录。 本文将详细介绍如何在Linux系统中更改文件和目录的权限。 1. 文件和目录权限概述 在Linux系统中&#xff…

【sentinel】漏桶算法在Sentinel中的应用

漏桶算法介绍 漏桶算法&#xff0c;又称leaky bucket。 从图中我们可以看到&#xff0c;整个算法其实十分简单。首先&#xff0c;我们有一个固定容量的桶&#xff0c;有水流进来&#xff0c;也有水流出去。对于流进来的水来说&#xff0c;我们无法预计一共有多少水会流进来&am…

AUTOSAR通信篇 - CAN网络通信(二:CanIf)

目录 初始化 数据发送 请求发送 发送数据流 发送缓存 发送确认 数据接收 数据接收提醒 读取接收数据 CAN控制器模式 控制器模式转换 唤醒 PDU通道模式控制 PDU通道组 PDU通道模式 总结 在上一篇&#xff0c;我们介绍了CAN模块&#xff0c;接下来我们介绍在CAN模…

基于html+css的图展示96

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

ts报错“this“ 隐式具有类型 “any“,因为它没有类型注释。解决方案

序 1、参考博文》①严格模式 - 知乎&#xff0c;②ts的tsconfig.son中文说明③TypeScript Number | 菜鸟教程 2、解决&#xff08;ts报错“this“ 隐式具有类型 “any“&#xff0c;因为它没有类型注释。&#xff09; 3、解决&#xff08;函数内this是undefined 的问题&#xf…

STM32CubeIDE + HAL + STM32f103C8T6 系列教程1 ---板载PC13LED闪烁

STM32CubeIDE HAL STM32f103C8T6 系列教程1 --- 板载PC13LED闪烁 引言硬件关于开发板[^2]控制器内置存储器原理图 硬件连线硬件连接表硬件连线图 软件STM32CubeIDE下载及安装Stm32CubeIDE设置补全快捷键和主题新建一个工程选择开发板核心芯片型号设置工程相关参数STM32CubeMX…

《程序员面试金典(第6版)》面试题 02.08. 环路检测(哈希法,双指针,检测链表是否有环)

题目描述 给定一个链表&#xff0c;如果它是有环链表&#xff0c;实现一个算法返回环路的开头节点。若环不存在&#xff0c;请返回 null。 题目传送门&#xff1a;面试题 02.08. 环路检测 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链…

【笔记整理】常见聚类算法

【笔记整理】常见聚类算法 文章目录 【笔记整理】常见聚类算法一、均值偏移 - Mean-shift&#xff08;★★★★&#xff09;1、概述 & 图解&#xff08;“偏心”&#xff09;2、公式 & 步骤1&#xff09;基本公式&#xff08;“偏移量更新圆心”&#xff09;2&#xff…

4:File类与IO流

文章目录 File类1&#xff1a;引入&#xff1a;2&#xff1a;对文件进行操作3&#xff1a;对目录/文件夹进行操作 IO流1&#xff1a;引入&#xff1a;2&#xff1a;字符输入 / 出流FileReader 与 FileWriter3&#xff1a;用try - catch - finally 处理异常4&#xff1a;几个常见…

【Android-JetpackCompose】13、实战在线课程 App

文章目录 一、BottomNavigation 底部导航1.1 底部导航栏的布局、点击1.2 设置 bottomBar 的颜色1.3 设置顶部 actionBar 的颜色 二、主页 StudyScreen2.1 顶部状态栏2.2 一、BottomNavigation 底部导航 1.1 底部导航栏的布局、点击 首先&#xff0c;构造 NavigationItem 的 d…

c++—断言、异常

一、 断言&#xff0c;主要用于在函数入口处进行参数检查&#xff0c;是否符合参数设置要求&#xff1b; &#xff08;1&#xff09;true&#xff1a;继续执行&#xff1b;false&#xff1a;终止运行&#xff1b; &#xff08;2&#xff09;特点&#xff1a;在程序运行时才能起…

【20】SCI易中期刊推荐——计算机信息系统工程电子与电气(中科院3区)

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨ 📚📚>>>人工智能 | 计算机视觉…

zookeeper学习笔记

zookeeper Zookeeper 入门概述Zookeeper工作机制特点数据结构应用场景统一命名服务统一配置管理统一集群管理服务器动态上下线软负载均衡 zookeeper安装本地模式安装配置参数解读 Zookeeper 集群操作集群操作集群安装 选举机制节点类型客户端命令行操作命令语法znode 节点数据信…

mysql 是否包含 返回索引 截取字符串

是否包含返回索引 原文链接&#xff1a;https://www.cnblogs.com/shoshana-kong/p/16474175.html 方法1&#xff1a;使用通配符%。 通配符也就是模糊匹配&#xff0c;可以分为前导模糊查询、后导模糊查询和全导匹配查询&#xff0c;适用于查询某个字符串中是否包含另一个模糊…

Redis的全局命令及相关误区

Redis中所说的数据结构是针对key-value中的value而言的。主要的结构包括String、哈希表、列表、集合等等在redis中存在16个库&#xff0c;涉及到后期的集群搭建只能使用0号库最为方便 查看所有键&#xff08;支持通配符&#xff09; keys * keys S*返回当前数据库中的键总数 …

智能出行更安全,亚马逊云科技携手木卫四助汽车客户安全合规出海

木卫四&#xff08;北京&#xff09;科技有限公司在汽车网络安全领域拥有独特专业知识&#xff0c;其融合人工智能算法的安全检测引擎可以不依赖车辆中安装的代理软件&#xff0c;只需几周即可快速部署实施&#xff0c;是汽车网络安全领域的技术领先者。 在亚马逊云科技初创团…

ChatGPT国内镜像站

免费国内镜像推荐&#xff08;超稳定&#xff09; 下面为大家收集了目前国内最稳定流畅的ChatGPT镜像网站 目录 机器人 博弈ai 泰cool辣 道合顺 二狗问答 核桃 WOChat GPT中文站 TomChat 利用ChatGPTMindShow三分钟生成PPT ChatGPT国内镜像是啥 ChatGPT 镜像是指…