从手动实现web开发到借助IDEA实现web开发的具体流程分析,详细介绍webapp的目录结构和web站点的欢迎页面的设置

news2024/11/23 2:00:06

使用Tomcat手动实现WEB开发

实现静态的web应用(没有java小程序)

第一步:找到CATALINA_HOME\webapps目录(Tomcat服务器要求所有的web应用都要放到webapps目录下, 这样它才能找到你的web应用)

第二步:在CATALINA_HOME\webapps目录下新建一个oa的子目录(oa就是你这个webapp的名字/项目名/webapp应用的根)

第三步:在oa目录下新建一个静态资源文件如index.html

第四步:执行bin目录下的startup.bat命令文件 , 启动Tomcat服务器

第五步:打开浏览器在地址栏上输入URL:http://127.0.0.1:8080/oa/index.html

  • Tomcat服务器会在它管理的的所有web项目中找到oa项目中的index.html文件,并且将这个index.html文件中的内容直接输出响应到浏览器上(代码)

实现动态的web应用(有java小程序)

第一步:在CATALINA_HOME\webapps目录下新建一个crm的子目录(oa就是你这个webapp的名字/项目名/webapp应用的根)

第二步:在crm目录下新建一个WEB-INF目录(目录的名字是Servlet规范中规定的)

第三步:在WEB-INF目录下新建一个classes目录(目录名固定) , 用来存放Java程序编译之后的class文件

第四步:在WEB-INF目录下新建一个lib目录(目录名固定) , lib目录不是必须的, 但一个web应用依赖第三方的jar包的话就要放到这个目录下

第五步:在WEB-INF目录下新建一个web.xml配置文件(文件名固定), 用来描述请求路径和Servlet类之间的对照关系

不建议手写web.xml文件的模板 , 最好从其他的webapp中复制粘贴

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
                      https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
  version="5.0"
  metadata-complete="true">
    <!--在这里指定请求路径和Servlet类之间的对照关系-->
</web-app>

第六步:编写一个Java程序必须实现Servlet接口(JavaEE的规范中的一员), 需要导入Servlet的相关类所在的jar包

  • 编写Java程序的源代码的位置可以任意,你只需要将java源代码编译之后的class文件放到classes目录下即可

第七步:配置环境变量CLASSPATH指定路径加载class文件让我们导入的包生效 , 保证编写的HelloServlet的可以编译通过 ,和Tomcat服务器的运行没有关系

  • 配置环境变量CLASSPATH: CLASSPATH=.;C:\dev\apache-tomcat-10.0.12\lib\servlet-api.jar (从当前路径和指定路径加载class文件)

第八步:将编译成功之后的HelloServlet.class文件拷贝到WEB-INF\classes目录下

package com.bjpowernode.servlet;

//这些类都不是JDK中的jar包 , 需要通过classpath环境变量告诉虚拟机从哪加载这些类 
import jakarta.servlet.Servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.ServletConfig;
import java.io.IOException;
import java.io.PrintWriter;
//实现Servlet接口中的五个方法
public class HelloServlet implements Servlet{
    // 5个方法
    public void init(ServletConfig config) throws ServletException{

    }
    public void service(ServletRequest request,ServletResponse response)
        throws ServletException , IOException{
        // 向控制台打印输出
        System.out.println("My First Servlet, Hello Servlet");
        
         // 设置响应的内容类型是普通文本或html代码
        // 需要在获取流对象之前设置,有效。
        response.setContentType("text/html");

        // 怎么将一个信息直接输出到浏览器上?
        // 需要使用ServletResponse接口:response
        // response表示响应:从服务器向浏览器发送数据叫做响应。
        PrintWriter out = response.getWriter();

        // 设置响应的内容类型时不要在获取流之后设置。
        //response.setContentType("text/html");

        out.print("Hello Servlet, You are my first servlet!");

        // 浏览器是能够识别html代码的,那我们是不是应该输出一段HTML代码呢?
        out.print("<h1>hello servlet,你好Servlet</h1>");

        // 这是一个输出流,负责输出字符串到浏览器
        // 这个输出流不需要我们刷新,也不需要我们关闭,这些都由Tomcat来维护。
        /*
		out.flush();
		out.close();
		*/
    }

    public void destroy(){

    }

    public String getServletInfo(){
        return "";
    }

    public ServletConfig getServletConfig(){
        return null;
    }
}

第九步:在web.xml文件中编写配置信息,指定“请求路径”和“Servlet类名”的对照关系

标签名功能
servlet父标签描述Servlet程序的信息
servlet-name子标签指定Servlet程序的名字(Servler的名字是唯一的)
servlet-class子标签指定Servlet程序的全类名 (用于Tomcet服务器利用反射机制创建对象)
servlet-mapping父标签描述Servlet的请求映射路径(servlet和请求路径之间是一一对应的)
url-pattern子标签指定这个Servlet程序对应的请求路径 (这个请求路径必须以 “/” 开始 , 且不带项目名)

在web.xml文件中注册Servlet类

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
                      https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
  version="5.0"
  metadata-complete="true">

	<!--servlet描述信息-->
	<servlet>
		<servlet-name>fdsafdsagfdsafdsa</servlet-name>
		<!--这个位置必须是带有包名的全限定类名-->
		<servlet-class>com.bjpowernode.servlet.HelloServlet</servlet-class>
	</servlet>

	<!--servlet映射信息-->
	<servlet-mapping>
		<!--这个也是随便的,不过这里写的内容要和上面的一样-->
		<servlet-name>fdsafdsagfdsafdsa</servlet-name>
		<!--这个路径唯一的要求是必须以 "/" 开始 , 且不带项目名-->
		<url-pattern>/fdsa</url-pattern>
	</servlet-mapping>
</web-app>

第十步:启动Tomcat服务器 , 然后打开浏览器在地址栏上输入一个URL: http://127.0.0.1:8080/crm/fdsa

  • 浏览器上的请求路径不能随便写,这个请求路径必须和web.xml文件中的url-pattern一致 , 并且浏览器上的请求路径带项目名/crm

当浏览器地址栏上编写的路径太复杂时,可以访问HTML页面通过超链接发起请求 (html页面只能放到WEB-INF目录外面)

  • 前端的请求路径都以“/”开始的并且带有项目名(等价于在地址栏上发起请求)
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>index page</title>
    </head>
    <body>
        <!--前端超链接发送请求的时候,请求路径以“/”开始,并且要带着项目名-->
        <a href="/crm/fdsa">Hello Servlet</a>
    </body>
</html>

使用集成开发环境实现WEB开发

集成开发工具很多,其中目前使用比较多的是IntelliJ IDEA和Eclipse

  • IntelliJ IDEA(居多): JetBrain公司开发的收费软件, IDEA在提示功能方面要强于Eclipse使用起来更加智能更好用
  • Eclipse(较少):Eclipse是IBM团队开发的, Eclipse寓意是“日食”(日是SUN公司), 但是2009年的时候SUN公司被Oracle公司并购了

使用IDEA实现WEB开发

第一步: New Project(如创建一个Empty Project空工程) —> New Module(如在该空工程下新建一个普通的JavaSE模块/基于Maven的Java Enterprise模块)

  • 这个Empty Project起名为javaweb(一般情况下新建的Project的名字最好和目录的名字一致)
  • 这个Module起名servlet01, 然后自动会被放在javaweb的project下面

第二步: 如果新建的是普通的JavaSE模块需要变成符合webapp规范的JavaEE模块(这样IDEA才会自动给你生成一个符合Servlet规范的webapp的目录结构)

  • 在Module上右键Add Framework Support(添加框架支持), 在弹出的窗口中选择Web Application默认是4.0版本
  • IDEA根据Web Application模板生成一个web目录/webapp的根(例如代表webapps目录中的一个oa项目)
  • Web Application生成的资源中有index.jsp文件可以选择删除这个index.jsp文件

第三步:编写HelloServlet实现Servlet接口, 实现jakarta.servlet.Servlet接口中的5个方法(需要导入Servlet.class文件所在的jar包)

  • 将CATALINA_HOME/lib/servlet-api.jar 和jsp-api.jar添加到IDEA的classpath当中
  • File–>Project Structrue(设置工程结构)–>Modules–>Dependencies --> 点击 " + "添加依赖 --> Add JARS(添加单独的jar包)/ Add Libraries (添加整个库的jar包)
  • Modules SDK 换成对应的jdk版本 , 在File -> settings -> Java compile设置jdk版本

在这里插入图片描述

//这些类都不是JDK中的jar包,需要通过classpath环境变量告诉虚拟机从哪加载这些类 
import jakarta.servlet.Servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.ServletConfig;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet implements Servlet{
    //实现jakarta.servlet.Servlet接口中的5个方法
}

第四步:在Servlet当中的service方法中编写业务代码(我们这里实现连接数据库的功能)

  • 由于连接数据库需要第三方的jar包 , 此时需要在WEB-INF目录下新建一个lib子目录用来存放连接数据库的驱动所在的jar包
public class HelloServlet implements Servlet{
	public void init(ServletConfig config) throws ServletException{
	}
	public void service(ServletRequest request,ServletResponse response) throws ServletException , IOException{
        // 设置响应的内容类型
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();

		// 编写JDBC代码,连接数据库,查询所有学生信息。
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try{
			// 注册驱动 
			Class.forName("com.mysql.cj.jdbc.Driver");
			// 获取连接
			String url = "jdbc:mysql://localhost:3306/bjpowernode";
			String user = "root";
			String password = "root";
			conn = DriverManager.getConnection(url,user,password);
			// 获取预编译的数据库操作对象
			String sql = "select no,name from t_student";
			ps = conn.prepareStatement(sql);
			// 执行SQL
			rs = ps.executeQuery();
			// 处理查询结果集
			while(rs.next()){
				String no = rs.getString("no");
				String name = rs.getString("name");
				//将查询到的信息输出到浏览器
				out.print(no + "," + name + "<br>");
			}
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			// 释放资源
			if(rs != null){
				try{
					rs.close();
				}catch(Exception e){
					e.printStackTrace();
				}
			}
			if(ps != null){
				try{
					ps.close();
				}catch(Exception e){
					e.printStackTrace();
				}
			}
			if(conn != null){
				try{
					conn.close();
				}catch(Exception e){
					e.printStackTrace();
				}
			}
		}
	}
	public void destroy(){
	
	}
	public String getServletInfo(){
		return "";
	}
	public ServletConfig getServletConfig(){
		return null;
	}
}

第五步:在WEB-INF目录下的web.xml文件中完成StudentServlet类的注册(指定请求路径和Servlet之间对应关系)

<?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>studentServlet</servlet-name>
        <servlet-class>com.bjpowernode.javaweb.servlet.StudentServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>studentServlet</servlet-name>
        <url-pattern>/servlet/student</url-pattern>
    </servlet-mapping>
</web-app>

第六步:在HTML页面中编写一个超链接,用户点击超链接时发送请求,Tomcat服务器接受请求执行后台的HelloServlet程序

  • 这个html文件只能放到WEB-INF目录外面不能放到WEB-INF目录里面
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>student page</title>
</head>
<body>
    <!--这里的项目名是 "/xmm" 先写死,以后学了JSP可以动态获取-->
    <a href="/xmm/servlet/student">student list</a>
</body>
</html>

第七步:让IDEA工具关联Tomcat服务器 , 关联的过程当中IDEA会将开发web项目部署到Tomcat服务器的webapps目录下

  • 点击IDEA工具右上角绿色小锤子的右边有一个Add Configuration选项 , 在弹出的窗口中点击左上角 " + " 然后添加Tomcat Server到local(本地)
  • 配置Server服务器的相关参数: URL, JRE的版本(与jdk版本对应) ,服务器的名字/安装包/启动时的行为/代码改动时的行为
  • IDEA中改完Servelt的源代码后默认需重启服务器 , 如果不想重启服务器需要配置更新字节码文件时自动重启Tomcat服务器
  • 配置服务器的Deployment部署的相关参数: 点击 " + " 然后添加 Artifact指定要部署的web项目 , Application context指定web应用的根/项目名

第八步:使用右上角有绿色的箭头或者绿色的小虫子(debug模式)的方式启动Tomcat服务器

第九步:打开浏览器在地址栏上输入http://localhost:8080/xmm/student.html访问Tomcat服务器上的xmm项目下的资源

在这里插入图片描述

WEB开发的细节

webapp的目录结构

Tomcat中WEB-INF目录下的资源是受保护的 , 在浏览器上不能够通过路径直接访问否则会出现404错误

  • HTML、CSS、JS、image等静态资源一定要放到WEB-INF目录之外
webapproot(oa/crm)
       |--WEB-INF
       		  |------classes(存放字节码)
       		  |------lib(第三方jar包)
       		  |------web.xml(注册Servlet)
       |--html
       |--css
       |--javascript
       |--image
       ....

设置web站点的欢迎页面

其实对于一个webapp来说是可以设置它的欢迎页面的, 当访问这个web站点是如果没有指定具体的资源路径此时默认会访问你设置的欢迎页面

  • http://localhost:8080/servlet06/login.html这种访问方式是指定了要访问的就是login.html资源
  • http://localhost:8080/servlet06这种访问方式没有指定具体的资源路径 , 默认访问你设置的欢迎页面
  • 设置欢迎页面的时候,路径不需要以“/”开始, 默认就是从webapp的根下开始查找

手动设置欢迎页面, 一个webapp可以设置多个欢迎页面的(配置时越靠上的优先级越高 , 找不到的继续向下找)

  • 第一步:我在IDEA工具的web目录下新建了一个login.html文件
  • 第二步:在web.xml配置文件中的welcome-file标签中配置默认访问的资源(在这个地方配置的属于局部配置)
  • 第三步:启动服务器,打开浏览器在地址栏上输入地址http://localhost:8080/servlet06
<welcome-file-list>
    <welcome-file>login.html</welcome-file>
</welcome-file-list>

<!--多级目录, 在webapp根下新建page1,在page1目录下新建page.html页面-->
<welcome-file-list>
    <welcome-file>page1/page.html</welcome-file>
</welcome-file-list>

<!--一个webapp是可以设置多个欢迎页面的-->
<welcome-file-list>
    <welcome-file>page1/page2/page.html</welcome-file>
    <welcome-file>login.html</welcome-file>
</welcome-file-list>

Tomcat服务器默认配置的全局欢迎页面index.html, index.htm, index.jsp,若文件名设置为这些的时候, 不需要在手动进行配置默认就会访问这些资源

  • 第一步:我在IDEA工具的web目录下新建了一个index.html文件
  • 第二步: 在CATALINA_HOME/conf/web.xml文件中进行配置(这个文件中的配置属于全局配置),配置文件的生效原则是局部配置优先原则(就近原则)
  • 第三步:启动服务器,打开浏览器在地址栏上输入地址http://localhost:8080/servlet06
<!--如果你一个web站点没有设置局部的欢迎页面,Tomcat服务器就会以index.html index.htm index.jsp作为一个web站点的欢迎页面-->
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

欢迎页就是一个资源,可以是静态资源index.html welcome.html,也可以是动态资源如Servlet程序

  • 第一步:写一个Servlet
  • 第二步:在web.xml配置文件中配置Servlet的请求路径和欢迎页对应的Servlet的路径
  • 第三步:启动服务器,打开浏览器在地址栏上输入地址http://localhost:8080/servlet06
public class WelcomeServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.print("<h1>welcome to bjpowernode!</h1>");
    }
}
<!--配置Servlet对应的请求路径-->
<servlet>
    <servlet-name>welcomeServlet</servlet-name>
    <servlet-class>com.bjpowernode.javaweb.servlet.WelcomeServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>welcomeServlet</servlet-name>
    <url-pattern>/fdsa</url-pattern>
</servlet-mapping>
<!--访问web站点时默认访问的资源-->
<welcome-file-list>
    <welcome-file>fdsa</welcome-file>
</welcome-file-list>

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

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

相关文章

闭环控制里的采样周期和执行周期

运动控制对系统的实时性要求都非常高。所以大家可以看到运动控制总线的刷新周期越来越快,越来越短。今天我们讨论下实时性不高的总线会带来哪些问题和挑战,以及这种大延时总线如何解决实时性问题,运动控制实时性问题还可以参看下面的文章博客: 随动控制之跟随给定和跟随反…

Python一行命令搭建HTTP服务器并外网访问【内网穿透】

文章目录1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置4.公网访问测试5.结语转载自远程内网穿透的文章&#xff1a;【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透」 1…

20从零开始学Java之牛闪闪的for循环是怎么用的?

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在前面的文章中&#xff0c;壹哥给大家讲解了顺序结构、分支结构&#xff0c;接下来我们就来学习Java…

面试篇-Java输入输出三兄弟大比拼:IO、NIO、AIO对比分析

1、Java I/O发展史 Java IO&#xff08;Input/Output&#xff09;是Java语言中用于读写数据的API&#xff0c;它提供了一系列类和接口&#xff0c;用于读取和写入各种类型的数据。下面是Java IO发展史的简要介绍&#xff1a; JDK 1.0&#xff08;1996年&#…

Android进阶宝典—事件冲突的解决方法

相信伙伴们在日常的开发工作中&#xff0c;一定会遇到事件冲突的问题&#xff0c;e.g. 一个页面当手指滑动的时候&#xff0c;会翻到下一页&#xff1b;点击的时候&#xff0c;需要响应页面中的元素点击事件&#xff0c;这个时候如果没有处理滑动事件&#xff0c;可能遇到的问题…

c++的多态

目录 1、多态 1.1多态的构成条件 1.2多态的好处 2、虚函数 2.1虚函数重写 2.2虚函数的默认参数 2.3纯虚函数重写 2.4抽象类 2.5虚析构&#xff0c;纯虚析构重写 3、重载、覆盖(重写)、隐藏(重定义)的对比 ​编辑 多态是c面向对象三大特性之一 程序调用函数时&#…

人人都是数据分析师-数据分析之数据图表可视化(下)

当前的BI报表、运营同学的汇报报告中数据图表大多为 表格、折线图、柱状图和饼图&#xff0c;但是实际上还有很多具有代表性的可视化图表&#xff0c;因此将对常见的可视化图表进行介绍&#xff0c;希望这些图表可视化方法能够更好的提供数据的可用性。 人人都是数据分析师-数…

QT网络通信-服务器(一)

目录 1、简介 2 、TCP通信流程 3、基于TCP通信所需要的类 4、QT端设计 4.1项目建立 4.2 TCP网络程序设计 4.2.1 QT界面设计 4.2.2 UI布局 4.2.3 控件重命名 5、widget.h 6、widget.c 1、简介 网络有TCP和UDP。本文主要通过QT完成TCP网络设计&#xff0c;通过ESP8266与单片…

JavaEE简单实例——一些基本操作

在配置类中配置页面解析器 之前我们使用页面解析器是在XML配置文件中使用的&#xff0c;但是当我们试用了纯注解式的整合之后&#xff0c;我们没有了配置文件&#xff0c;要如何去将之前我们在配置文件中编写的前端控制器&#xff0c;以及静态资源的释放这些功能配置添加到项目…

二叉排序树(二叉查找树)基本操作_20230417

二叉排序树&#xff08;二叉查找树&#xff09;基本操作_20230417 前言 二叉排序树首先是一颗二叉树&#xff0c;它不同于常规二叉树的地方在于&#xff0c;如果左子树不为空&#xff0c;那么左子树上所有结点的值都不大于根节点的值&#xff0c;如果右子树不为空&#xff0c…

从GPT-4、文心一言再到Copilot,AIGC卷出新赛道?

业内人都知道&#xff0c;上一周是戏剧性的&#xff0c;每一天&#xff0c;都是颠覆各个行业&#xff0c;不断 AI 化的新闻。 OpenAI发布GPT-4、百度发布文心一言、微软发布Microsoft 365 Copilot 三重buff叠加&#xff0c;打工人的命运可以说是跌宕起伏&#xff0c;命途多舛了…

pmp证书报考流程+pmp备考+pmp学习干货+pmp指南汇总

2023年共有4次PMP考试&#xff0c;分别是3月、5月、8月、11月&#xff0c;由于3月份考试不开放新报名&#xff0c;所以第一次备考PMP的同学可以选择参加5月份考试。那么&#xff0c;现在备考5月份PMP考试还来得及吗&#xff1f; 现在开始备考5月PMP考试&#xff0c;时间是非常…

Scrum

目录 1、Scrum&#xff1a; 敏捷里的3355&#xff1a; 什么是Scrum&#xff1a; Scrum的优点&#xff1a; Scrum的理论&#xff1a; Scrum的三大支柱&#xff1a; 透明性&#xff1a; 检视&#xff1a; 调整&#xff1a; 2、Scrum的角色简介&#xff1a; Scrum各角色…

【数据结构学习笔记 之 栈和队列】——上

前言&#xff1a;栈和队列是常用的数据结构之一&#xff0c;本文主要介绍有关栈的基本特性以及基本操作和一些经典的OJ题目&#xff0c;关于队列的介绍放到下篇。那么话不多说&#xff0c;让我们开始吧。 一、栈的基本知识 1. 栈的基本概念 栈是一种特殊的线性表&#xff0c…

同学在外包干了两年的点点点,24岁人就快废了

前言 简单的说下&#xff0c;我大学的一个同学&#xff0c;毕业后我自己去了自研的公司&#xff0c;他去了外包&#xff0c;快两年了我薪资、技术各个方面都有了很大的提升&#xff0c;他在外包干的这两年人都要废了&#xff0c;技术没一点提升&#xff0c;学不到任何东西&…

JavaScript 的学习

文章目录一、简介总结一、简介 JavaScript 是互联网上最流行的脚本语言&#xff0c;这门语言可用于 HTML 和 web&#xff0c;更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。 JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语言。 JavaScript 是可插入…

如果要向“硅谷精神之父”提一道问题,你会问什么?| CSDN 访谈世界互联网教父 Kevin Kelly

ChatGPT 的问世不禁让人遐想&#xff0c;接下来的 5000 天&#xff0c;将会发生什么事&#xff1f; 硅谷精神之父、世界互联网教父、《失控》作者凯文凯利&#xff08;Kevin Kelly&#xff0c;以下简称 K.K.&#xff09;是这样预测的&#xff1a; 未来将会是一切都与 AI 相连的…

Vue3通知提醒框(Notification)

Vue3相关组件项目依赖版本信息 可自定义设置以下属性&#xff1a; 消息的标题&#xff08;title&#xff09;&#xff0c;默认温馨提示自动关闭的延时时长&#xff08;duration&#xff09;&#xff0c;单位ms&#xff0c;默认4500ms消息从顶部弹出时&#xff0c;距离顶部的位…

【问题】开发遇到的小问题

文章目录使用糊涂工具&#xff0c;将时间字符串转化为LocalDateTime类型Date类型转换LocalDate类型jdk8 LocalDateTime获取当前时间和前后推时间echarts图中显示表格是需要添加宽高前端往后端传值时&#xff0c;需要转一下对象再往后端传使用 value-format"yyyy-MM-dd HH:…

jwt授权

JWT格式 由header、payload、signature三部分组成&#xff0c;中间用圆点(.)连接: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJpYW0uYXBpLm1hcm1vdGVkdS5jb20iLCJleHAiOjE2NDI4NTY2MzcsImlkZW50aXR5IjoiYWRtaW4iLCJpc3MiOiJpYW0tYXBpc2VydmVyIiwib3JpZ19pYXQiOjE2MzUw…