一文带你学透Java Servlet(建议收藏)

news2025/1/21 7:16:45

在这里插入图片描述

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:前端开发者成长之路
✨特色专栏:国学周更-心性养成之路
🥭本文内容:一文带你学透Java Servlet(纯干货建议收藏)
更多内容点击👇
      Druid连接池和Apache的DBUtils使用

文章目录

  • 一、程序开发体系结构
    • 1.1 C/S体系结构
    • 1.2 B/S体系结构
  • 二、Web服务器
    • 2.1 概念
      • 2.1.1 什么是Web
      • 2.1.2 什么是Web服务器
    • 2.2 常见Web服务器
    • 2.3 Tomcat服务器
      • 2.3.1 Tomcat的下载
      • 2.3.2 Tomcat的安装
      • 2.3.3 Tomcat的目录结构
      • 2.3.4 Tomcat的启动
      • 2.3.5 Tomcat的停止
      • 2.3.6 修改Tomcat端口号
      • 2.3.7 项目部署及静态资源访问
        • 2.3.7.1 创建项目
        • 2.3.7.2 通过URL访问项目
        • 2.3.7.3 Tomcat响应流程
      • 2.3.8 Tomcat常见问题
        • 2.3.8.1 Tomcat控制台闪退
        • 2.3.8.2 404
        • 2.3.8.3 500
  • 三、Servlet(特别重要)
    • 3.1 Servlet概念
    • 3.2 Servlet作用
    • 3.3 Servlet开发步骤
      • 3.3.1 搭建开发环境
      • 3.3.2 创建项目
      • 3.3.3 部署Servlet
      • 3.3.4 配置Servlet
      • 3.3.5 测试运行
  • 四、IDEA中创建Web项目
    • 4.1 创建Web项目
      • 4.1.1 创建项目
      • 4.1.2 编写Servlet类
    • 4.2 手动部署项目
    • 4.3 自动部署项目
      • 4.3.1 IDEA集成Tomcat

在这里插入图片描述

一、程序开发体系结构

  随着网络技术的不断发展,单机的软件程序不足以满足网络计算的需求。为此,各种各样的网络程序开发体系结构应运而生,这当中,运用最多的网络应用程序开发体系结构主要分为两种:一种是基于浏览器/服务器的B/S结构;另外一种是基于客户端/服务器的C/S结构。

1.1 C/S体系结构

(1)C/S(Client/Server,客户端/服务器)体系结构由美国Borland公司最早研发。

(2)特点:必须在客户端(用户设备上)安装特定的软件。

(3)优点:图像效果显示比较好(比如:3D游戏)。

(4)缺点:服务器的软件和功能进行升级,客户端也必须升级,否则使用不了新的功能,不利于维护。

(5)常见的C/S体系结构程序:QQ、微信等。

请添加图片描述

1.2 B/S体系结构

(1)B/S(Bowser/Server,浏览器/服务器)体系结构由美国微软公司研发。

(2)特点:只需要一个浏览器通过http协议就可以访问,不需要在客户端(用户设备上)安装特定的软件。

(3)优点:服务功能的升级只需要升级服务器端,浏览器中不需要做任何升级操作。

(4)缺点:图形显示效果不如C/S体系结构。

(5)常见的B/S体系结构:淘宝、京东、支付宝等。

请添加图片描述

二、Web服务器

2.1 概念

2.1.1 什么是Web

(1)Web(World Wide Web)称为万维网,简单理解就是一个网站,它是Internet主机上提供给外界访问的资源、

(2)Internet上提供给外界访问的资源大体上分为两种,即静态资源(静态网站)和动态资源(动态网站)。

  静态资源:指Web页面中提供给用户浏览的数据是固定不变的,页面使用HTML+CSS实现。

  动态资源:指Web页面中提供给用户浏览的数据是由程序产生的,具有交互性(交互性是指网页可以根据用户的要求动态改变或响应),内容可以自动更新,并且内容会根据访问的时间和访问者而改变,甚至不同设备访问Web页面看到的内容也各不相同。页面使用Servlet+JSP等技术实现。

(3)Java Web是用Java技术来解决Web领域的相关技术的总和。Web包括Web服务器和Web客户端两部分。

2.1.2 什么是Web服务器

Web服务器发布Web应用、运行Web应用的容器。只有将开发好的Web项目部署在Web服务器中,才能使网络中的用户通过浏览器来访问Web应用。Web服务器的主要功能就是提供网上信息浏览服务。

2.2 常见Web服务器

开源的Web服务器:

1)Tomcat(主流Web服务器之一,非常适合初学者学习)。

2)jetty(淘宝使用,运行效率比Tomcat高)。

3)resin(新浪使用,所有开源服务器软件中,运行效率最高的)。

  上面三个的用法从代码角度看完全相同,只是在开启、关闭服务软件时用的命令稍微有点区别。

收费的Web服务器:

1)WebLogic,Oracle公司开发的。

2)WebSphere,IBM公司开发的。

  收费的Web服务器提供相应的服务与支持,软件比较大,资源消耗大。

2.3 Tomcat服务器

(1)Tomcat是Apache基金会开发的一个小型的轻量级应用服务器,技术先进,性能稳定,而且是免费的,占用系统资源小,运行速度快。

(2)Tomcat是一个运行Servlet和JSP Web应用软件。基于Java的Web应用软件容器。Tomcat Server是根据Servlet和JSP规范运行的,因此可以说Tomcat Server也实行了Apache规范,且比绝大多数商业应用软件服务器要好。

2.3.1 Tomcat的下载

进入Tomcat官网下载(https://tomcat.apache.org/),其安装文件有多种格式,其中zip文件是Windows系统下的压缩版本。

2.3.2 Tomcat的安装

Tomcat无需安装,只需要将压缩包下载后,将其解压到一个文件夹中就可以使用。

注意:
  1)文件夹名称中不要特殊符号。
  2)文件夹名称中不要包含中文字符。
  3)不建议将Tomcat解压放在磁盘层次很多的文件夹中

2.3.3 Tomcat的目录结构

Tomcat压缩包解压后,其中的各个子文件夹说明如下:

文件夹作用说明
bin存放启动和关闭Tomcat的可执行脚本文件startup.bat启动Tomcat
shutdown.bat停止Tomcat
conf存放Tomact服务器的各种配置文件这是一个非常重要的目录,这个目录下的server.xml文件和web.xml文件最重要。
server.xml:配置整个服务器信息,例如修改端口号,设置编码格式等。
web.xml:项目部署描述文件,这个文件中注册了很多MIME类型,即文档类型
lib存放Tomcat服务器的支撑jar包Tomcat的类库,里面存放Tomcat运行时所需要的jar文件
logs存放Tomcat的日志文件该文件中记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,异常也会记录在日志文件中
temp存放Tomcat运行时产生的临时文件这个目录下的东西在停止Tomcat后删除
webapps存放各种Web应用存放Web项目的目录,其中每个文件夹都是一个项目,其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。
workTomcat的工作目录运行时生成的文件,最终运行的文件都在这个文件夹中。当客户端用户访问一个jsp文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java文件和class文件都会存放在这个目录下

2.3.4 Tomcat的启动

进入Tomcat服务器的安装目录bin文件中,双击startup.bat启动程序,出现如下界面。
请添加图片描述

打开浏览器中,在地址栏中输入http://localhost:8080或者http://127.0.0.1:8080回车,会出现Tomcat的访问页面。说明Tomcat服务器启动成功。

请添加图片描述

2.3.5 Tomcat的停止

双击shutdown.bat即可关闭Tomcat启动窗口。

2.3.6 修改Tomcat端口号

  8080是Tomcat默认的端口,有时候可能会被占用,这时可以通过conf文件夹下的server.xml文件修改端口号,已解决端口号冲突的问题。端口号修改完之后,要重新启动Tomcat并在浏览器的地址栏中使用新的端口号访问Tomcat服务器。

请添加图片描述

2.3.7 项目部署及静态资源访问

  Tomcat是Web服务器,是一个容器(依然可以理解为装数据的容器),我们开发的项目应用需要部署在webapps文件夹下面,然后启动Tomcat服务器,在浏览器中通过特定的URL访问Web项目的页面。

2.3.7.1 创建项目

1)在webapps中建立项目文件夹,例如,webProject01

2)在webProject01文件中创建WEB-INF文件夹,存放项目的核心内容

3)在WEB-INF文件夹中,创建如下文件夹和文件:

–>创建classes文件夹,存放.class文件

–>创建lib文件夹,存放jar文件

–>创建web.xml项目配置文件(这个文件可以到ROOT项目向的WEB-INF中复制)

4)把你编写的helloTomcat.html页面复制到webProject01文件夹中,webProject01页面与WEB-INF在同级目录。

2.3.7.2 通过URL访问项目

 打开浏览器,在浏览器地址栏中输入URL:http://localhost:8080/webProject01/helloTomcat.html,回车,即可访问

2.3.7.3 Tomcat响应流程

请添加图片描述

2.3.8 Tomcat常见问题

2.3.8.1 Tomcat控制台闪退

闪退的问题是由JAVA_HOME配置导致的,检查JAVA_HOME配置是否正确。

2.3.8.2 404

出现404问题是因为访问资源不存在,也就是访问路径不对(文件名不对)。

请添加图片描述

2.3.8.3 500

出现500问题是服务器端的问题,一般是程序逻辑有问题。

请添加图片描述

三、Servlet(特别重要)

3.1 Servlet概念

1)Servlet:Server Applet的简称,是运行在Web服务器端的Java程序,可交互式的处理客户端发送到服务器端的请求,并完成响应操作,它使用Java语言编写。

2)Servlet可实现动态网页。

3)Servlet是JavaWeb开发程序的基础,是一个标准,由SUN定义,具体细节由Servlet容器进行实现,如Tomact、JBoss等。Servlet是JavaEE规范(一套接口)的一个组成部分。

  Java Servlet 通常情况下与使用 CGI(Common Gateway Interface,公共网关接口)实现的程序可以达到异曲同工的效果。但是相比于 CGI,Servlet 有以下几点优势:

1)性能明显更好。

2)Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。

3)Servlet 是独立于平台的,因为它们是用 Java 编写的。

4)服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。

5)Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。

在这里插入图片描述

3.2 Servlet作用

1)接收客户端请求,完成相关操作

2)动态生成网页(页面数据可变,不同用户页面数据不同)

3)将包含操作结果的动态网页响应给客户端。

3.3 Servlet开发步骤

3.3.1 搭建开发环境

  将Tomcat安装路径下lib文件夹中与Servlet相关的jar包(lib\servlet-api.jar)配置到classpath环境变量中。

3.3.2 创建项目

1)在webapps中建立项目文件夹,例如,webProject02

2)在webProject02文件中创建WEB-INF文件夹,存放项目的核心内容

3)在WEB-INF文件夹中,创建如下文件夹和文件:

–>创建classes文件夹,存放.class文件

–>创建lib文件夹,存放jar文件

–>创建web.xml项目配置文件(这个文件可以到ROOT项目向的WEB-INF中复制)

4)在classes中创建类的包文件夹,在文件夹中通过实现java.servlet.Servlet接口的方式编写MyServlet类。重写java.servlet.Servlet接口中的方法,在重写的核心方法service()中编写输出语句,打印访问结果。

package com.cxyzxc.www.servlet01;

import java.io.IOException;
import java.util.Date;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class Servlet01 implements Servlet{
	
	@Override
	public void destroy() {
		
	}

	@Override
	public ServletConfig getServletConfig() {
		return null;
	}

	@Override
	public String getServletInfo() {
		return null;
	}

	@Override
	public void init(ServletConfig arg0) throws ServletException {
		
	}

	@Override
	public void service(ServletRequest arg0, ServletResponse arg1)
			throws ServletException, IOException {
		
		System.out.println("My First Servlet!Very Good!");
		
	}
}

3.3.3 部署Servlet

1)编译Servlet01.java文件,生成Servlet01.class字节码文件

2)将Servlet01.class文件放在Web项目的WEB-INF文件里的classes文件夹中

3.3.4 配置Servlet

编写WEB-INF文件夹中的项目配置文件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_3_1.xsd"
  version="3.1"
  metadata-complete="true">

<!-- 1、添加Servlet节点-->
<servlet>
	<!-- 你的Servlet类名称-->
	<servlet-name>MyServlet</servlet-name>
	<!-- 你的Servlet类的完整路径-->
	<servlet-class>com.cxyzxc.www.servlet01.Servlet01</servlet-class>
</servlet>

<!-- 2、 添加servlet-mapping节点-->
<servlet-mapping>
	<!--  这个地方的servlet-name值要和上面servlet-name值保持一致-->
	<servlet-name>MyServlet</servlet-name>
	<!-- url-patter配置的内容是浏览器地址栏中URL里项目名称后的资源内容-->
	<url-patter>/hello</url-patter>
</servlet-mapping>
  
</web-app>

3.3.5 测试运行

1)启动Tomcat

2)打开浏览器,在浏览器地址栏中输入http://localhost:8080/webProject02/hello,可以在Tomcat窗口中看到输出“My First Servlet!Very Good!”内容。

四、IDEA中创建Web项目

4.1 创建Web项目

4.1.1 创建项目

  1、打开IDEA,单击“New Project”或者通过File–>new–>Project,在弹出的对话框中输入项目名称,其它的默认选择,点击finish按钮

请添加图片描述

请添加图片描述

  2、为项目添加Web框架支持,右键单击创建的项目,点击Add Framework Support,在弹出的对话框中勾选Web Application(4.0)及Create web.xml复选框,单击“OK”按钮,完成添加。

请添加图片描述

请添加图片描述

  3、添加依赖包,右键单击WEB-INF文件夹,在弹出的对话框中选择New–>Directory命令,创建lib文件夹,将Tomcat安装目录下lib文件夹中的servlet-api.jar文件添加到lib文件夹中。

请添加图片描述

  4、在servlet-api.jar文件上右击鼠标,选择Add As Library,将jar包添加到Library中

4.1.2 编写Servlet类

1、在src上右击鼠标–>new–>package–>输入com.cxyzxc.www.servlet01包名(包名你可以自己取)–>回车

2、在包上右击鼠标–>new–>Java Class–>输入ServletDemo01类名–>回车

3、编写ServletDemo01t类,实现Servlet接口,重写接口中的5个方法,在service()方法中输出内容

package com.cxyzxc.www.servlet01;

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

public class ServletDemo01 implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("IDEA中的第一个Servlet案例");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

4、编译ServletDemo01.java文件,生成ServletDemo01.class文件。在软件上面点击Build–>Build Project,等待片刻,生成out文件夹,里面包含编译后的class文件

请添加图片描述

5、编写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">
    <servlet>
        <servlet-name>ServletDemo01</servlet-name>
        <servlet-class>com.cxyzxc.www.servlet01.ServletDemo01</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>ServletDemo01</servlet-name>
        <url-pattern>/demo01</url-pattern>
    </servlet-mapping>
</web-app>

4.2 手动部署项目

1)在Tomcat服务器的webapps文件中,创建一个项目文件夹,例如webProject03

2)将IDEA软件中WEB-INF文件夹整体复制到webProject03文件夹中

3)在WEB-INF文件夹中创建classes文件夹,将编译后生成的ServletDemo01.class文件所在的文件夹一起复制到classes文件夹中

4)启动Tomcat服务器,打开浏览器,在浏览器地址栏中输入http://localhost:8080/webProject03/demo01,可以在Tomcat窗口中看到输出“IDEA中的第一个Servlet案例”内容。

4.3 自动部署项目

  上述操作中,虽然是在IDEA软件中完成了Servlet代码的编写以及编译,但是还需要手动将WEB-INF文件夹复制到Tomcat的项目文件夹中去,并需要手动在WEB-INF文件中创建classes文件夹,然后将IDEA中编译后的class文件复制到classes文件夹中,比较麻烦。另外,当你的Java文件改变后,你需要重新编译java文件生成class文件,然后再将class文件复制到classes文件夹中,再重新启动Tomcat服务器才能访问资源,非常的麻烦。所以,我们可以在IDEA中集成Tomact服务器,实现自动部署。

4.3.1 IDEA集成Tomcat

1、 点击File–>Settings…

请添加图片描述

2、选择双击Build,Execution,Deployment–>Application Servers,点击+号,选择Tomcat Server

请添加图片描述

3、选择Tomcat服务器的安装路径,点击ok,Tomcat服务器就集成到IDEA中了

请添加图片描述

4、再次点击File–>Settings…–>Build,Execution,Deployment–>Application Servers,点击+号,选择Tomcat Server,可以看到Tomcat服务器在IDEA中

请添加图片描述


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

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

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

相关文章

【滤波跟踪】扩展卡尔曼滤波的无人机路径跟踪【含Matlab源码 2236期】

⛄一、EKF算法简介 扩展卡尔曼滤波是利用泰勒级数展开方法将非线性滤波问题转化成近似的线性滤波问题,利用线性滤波的理论求解非线性滤波问题的次优滤波算法。其系统的状态方程和量测方程分别如式(1)、式(2)所示: 式中,X(k)为n维的随机状态向量序列,Z(k)为n维的随机量测向量序…

【图像处理】基于图像聚类的无监督图像排序问题(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

推荐算法高级案例-通过WideDeep算法进行特征组合的商品推荐详细教程 代码+数据

案例知识点 推荐系统任务描述:通过用户的历史行为(比如浏览记录、购买记录等等)准确的预测出用户未来的行为;好的推荐系统不仅如此,而且能够拓展用户的视野,帮助他们发现可能感兴趣的却不容易发现的item;同时将埋没在长尾中的好商品推荐给可能感兴趣的用户。 方法概述:…

R语言与RStudio的下载与安装方法

本文介绍R语言及其集成开发环境RStudio的下载、安装方法。 R语言是一个属于GNU操作系统的开源软件&#xff0c;在数据统计与分析、可视化等方面具有优秀的表现&#xff1b;而RStudio则是R语言的集成开发环境&#xff08;IDE&#xff09;&#xff0c;可以帮助我们更好地编辑、调…

《PyTorch深度学习实战》学习小结

前言 PyTorch是Facebook发布的一款非常具有个性的深度学习框架&#xff0c;它和Tensorflow&#xff0c;Keras&#xff0c;Theano等其他深度学习框架都不同&#xff0c;它是动态计算图模式&#xff0c;其应用模型支持在运行过程中根据运行参数动态改变&#xff0c;而其他几种框架…

【Mysql】内置函数

文章目录内置函数日期函数字符串函数数学函数其他函数内置函数 内置函数一般放在SQL语句里帮助我们执行一些逻辑. 日期函数 函数名称描述current date()获取当前日期current time()获取当前时间current_timestamp()获取当前时间戳date(datetime)返回 datetime 参数的日期部分…

Unity演示Leetcode开香槟过程

文章目录Unity演示Leetcode开香槟过程示意图一&#xff1a;示意图二&#xff08;速度变为上图的5倍&#xff09;主要步骤与难点C#脚本代码&#xff1a;香槟杯子液体页面变化以及杯子边缘的绘画Shader代码杯子边缘液体流出的效果的Shader代码&#xff1a;Unity演示Leetcode开香槟…

shell中的printf实践:美颜的九九乘法表

一 简介 Linux系统中除了echo命令可以输出信息&#xff0c;还可以使用printf命令实现相同的效果。功能描述&#xff1a;printf命令可以格式化输出数据。printf命令的语法格式如下。 printf [格式] 参数 常用的格式字符串及功能描述下表&#xff1a; 应用案例&#xff1a; 输出…

配置anaconda环境变量

conda环境变量的配置配置环境变量找到anaconda安装位置打开环境变量配置设置输入python命令跳入商店问题总结配置环境变量 找到anaconda安装位置 首先下载好conda环境&#xff0c;例如我下载在D盘 打开环境变量配置设置 可以按winS进入搜索框&#xff0c;输入环境变量&…

PyQt5学习笔记--摄像头实时视频展示、多线程处理、视频编解码

目录 1--前言 2--基于Qt Designer设计ui文件 3--视频的编解码操作 4--完整代码 5--结果展示 6--存在的问题 7--参考 1--前言 ① 创建两个线程&#xff0c;主线程为ui线程&#xff0c;子线程用于读取摄像头视频&#xff0c;将处理后的图像帧数据&#xff08;处理操作可以…

开放域类型发现:Open Relation and Event Type Discovery with Type Abstraction

1 什么是type discovery? “relation discovery” (Yao et al., 2011; Marcheggiani and Titov, 2016),“open relation extraction” (Wu et al., 2019; Hu et al., 2020) and “event type induction” (Huang and Ji, 2020; Shen et al., 2021). In this paper, we unify …

[项目](美多商城)(数据库课设/软件工程大作业/软件工程课设)项目的创建、配置、说明文档与源码

文章目录&#x1f498; 相关说明&#x1f498; 美多商城前台前端项目创建与配置&#x1f496; 项目的创建&#x1f496; 配置UI组件库&#x1f49d; 安装&#x1f49d; 全局引入与全局注册&#x1f49d; 局部引入与局部注册&#x1f49d; 定制主题&#x1f496; 配置axios&…

【并发】Java并发线程池底层原理详解与源码分析(上)

【并发】Java并发线程池底层原理详解与源码分析&#xff08;上&#xff09; 线程池与线程对比 使用线程的方式运行 使用线程池的方式运行 分析 单线程、多线程、线程池效率问题 详细代码 结果分析 单线程为什么是最快的&#xff1f; 单线程都这么快了&#xff0c;我…

第四周 牛背山云海——拍拍大场景,自拍延时片段

目录4.1 面对广阔云海拍张全景照片&#xff0c;再来一组延时片段4.2 认识镜头滤镜4.3 补充技术基础知识&#xff1a;白平衡、色温4.4 小博士课堂——延时摄影课件4.1 面对广阔云海拍张全景照片&#xff0c;再来一组延时片段 云海 雪山 雅安境内的牛背山拍摄云海 牛背山可以看到…

java刷题day 04

一. 单选题&#xff1a; 解析&#xff1a;队列&#xff1a;先到先服务解析&#xff1a;final不能修饰接口&#xff0c;成员变量可以用final修饰 解析&#xff1a; A&#xff1a; 算法是指解题方案的准确而完整的描述&#xff0c;算法不等于程序&#xff0c;也不等于计算方法 BC…

Linux 时间同步 ntpdchrony 内网

Linux 时间同步 ntpd&chrony 在任何服务器集群中&#xff0c;为了更好的协同工作&#xff0c;除了一些互信机制外&#xff0c;需要的就是时间同步功能&#xff0c;如果时间不同步&#xff0c;就好比让在中国的同事与美国的同事进行沟通&#xff0c;会造成各种奇奇怪怪的时…

excel笔记

1.快速填充 当需要提取出电子邮件里的名称&#xff0c;可以在第一行里手动输入Nancy后&#xff0c;直接按快捷键ctrl e进行快速填充&#xff0c;可以直接获得预期数据 如果不用快捷键&#xff0c;也可以点击指定位置的图标&#xff0c;实现这一功能 快速填充不仅可以将进行…

大数据中的R语言——中国大学MOOC课程笔记

第一章 R语言简介 1.1 简介 R的特性&#xff1a; • 免费的 • 一个全面的统计研究平台 • 拥有顶尖水准的制图功能 • 一个可进行交互式数据分析和探索的强大平台 • 轻松地从各种类型的数据源导入数据&#xff0c;包括文本文件、数据库管理系统、统计软件&#xff0c;乃…

rabbitMQ 消息顺序性、消息幂等性、消息不丢失、最终一致性、补偿机制、消息队列设计

一、消息顺序性 消息队列中的若干消息如果是对同一个数据进行操作&#xff0c;这些操作具有前后的关系&#xff0c;必须要按前后的顺序执行&#xff0c;否则就会造成数据异常。 举例&#xff1a;   比如通过mysql binlog进行两个数据库的数据同步&#xff0c;由于对数据库的…

内存和函数

程序的内存布局 Linux默认情况下将高地址的1GB空间分配给内核&#xff0c;用户进程使用剩下2GB或者3GB的内存空间。在用户空间里&#xff0c;也有很多地址区间有特殊的地位&#xff0c;一般来讲&#xff0c;应用程序使用的内存空间里有如下"默认"的区域 1、栈&#…