三)MyEclipse 2017 CI 新建Web工程

MyEclipse是一个非常强大的开发工具,使用它可以很方便地进行Java Web开发。

1. 在MyEclipse中,JSP页面是以Web项目的形式组织起来的。所以要创建JSP页面之前,必须要创建一个Web项目。

File->New->Web Project

这是主机安转的Java JDK版本1.8

下图是主机安装的Tomcat,版本为9.0

Project命名为TestWeb,Java version选择主机安装的版本1.8,Target runtime选择Apache Tomcat v9.0,

点击Finish后,出现当前工程,系统默认为index.jsp

下图是MyEclipse的workspace路径,可以看到多出一个TestWeb文件夹,这就是刚刚建立的Web工程文件

下图是Tomcat 9.0存放网页的路径,在webapps内显示当前已有的Web网页

2.右键点击当前TestWeb工程,选择Java EE       

Tools ->Add and Remove Project Deployments

选择当前工程TestWeb,点击Add,选择Tomcat v9.0 Server at localhost,点击Finish

Server为Tomcat v9.0            Mode显示Exploded      点击OK

在MyEclipse Workbench界面启动Tomcat 9.0,如果已经启动,请关闭重启!

Server启动后,在Console界面出现 Server startup in xxx ms,右上角有红色停止按钮;

同时Tomcat9.0的webapps出现了TestWeb文件

此时,Web项目完成,已发布到Web服务器。

3. 在浏览器输入http://localhost:8080/TestWeb/index.jsp     完成Web项目发布!

其实

一)Java Web服务器入门

Java语言是Java Web开发的基础。Servlet和JSP技术都是Java代码实现的;后台的JavaBean组件,以及EJB组件都是用Java语言开发的。Java以其面向对象、跨平台、支持多线程和分布式等特点在Web应用程序开发、网络编程、手机游戏等各个方面都得到了广泛的应用。

1. B/S架构的Web开发模式中,客户端就是简单的浏览器程序,可以通过HTTP协议访问服务器端的应用。在服务器端,与通信相关的处理都是由服务器软件负责。这些服务器软件都是有第三方的软件厂商提供,开发人员只需要把功能代码部署在Web服务器中,客户端就可以通过浏览器访问到这些功能代码,从而实现向客户提供的服务。在C/S和B/S两种架构之间,并没有严格的界限,两种架构之间没有好坏之分,使用这两种架构都可以实现系统的功能。开发人员可以根据实际的需要进行选择,例如需要丰富的用户体验,那就选择C/S架构,例如在目前的网络游戏中,基本都是选择C/S架构;如果更偏重的是功能服务方面的实现,就需要选择B/S架构,这也正是目前绝大部分管理应用系统采用的软件架构方法。

简单介绍B/S结构中常用的服务器

1)IIS是微软提供的一种Web服务器,提供对ASP语言的良好支持,通过插件的安装,也可以提供对PHP语言的支持。

2)Apache服务器是由Apache基金组织提供的一种Web服务器,其特长是处理静态页面,对于静态页面的处理效率非常高。

3)Tomcat也是Apache基金组织提供的一种Web服务器,提供对JSP和Servlet的支持,通过插件的安转,同样可以提供对PHP语言的支持,但是Tomcat只是一个轻量级的Java Web容器,像EJB这样的服务器在Tomcat中是不能运行的。

4)JBoss是一个开源的重量级的Java Web服务器,在JBoss中,提供对J2EE各种规范的良好支持,而且JBoss通过了Sun公司的J2EE认证,是Sun公司认可的J2EE容器。

5)另外J2EE的服务器还有BEA的Weblogic和IBM的WebSphere等,这些产品的性能都是非常优秀的,可以提供对J2EE的良好支持。用户可以根据自己的需要选择合适的服务器产品。

2. Java Web开发的核心组件是JSP(Java Server Pages)和Servlet。此外开发一个完整的Java Web应用程序还涉及到其他的组件:JavaBean、EJB、XML、Web服务器和应用服务器

1)Servlet运行在Web容器中,如Tomcat容器。它可以被Web容器动态加载,接收浏览器请求,调用其他组件处理请求,然后把处理结果返回。

当浏览器访问某个Servlet时,Web容器将会创建一个ServletRequest对象和ServletResponse对象,并且把用户的请求信息封装在ServletRequest对象中。然后把这两个对象作为参数传输给Servlet特定的方法中。在该方法中处理请求,把处理结果封装在ServletResponse对象中,返回给Web容器。最后Web容器把结果返回到浏览器去解析、显示。

2)JSP是一种动态网页技术。从文件内容上讲,把传统的HTML页面中加入Java脚本,以及以下JSP标签就构成了JSP文件。当浏览器请求某个JSP页面时,Tomcat容器会把JSP页面翻译为Java文件。然后将它编译为class文件,接着执行它,把生成的HTML页面返回到客户端显示。其原理下图所示。

可以看出,JSP从本质上说就是一个Servlet,只不过是创建方式不同而已。

3)JavaBean组件是一种符合特定规范的Java对象。在JavaBean中定义了一系列属性,并且每个属性提供了访问(getter)和设置(setter)这些属性的方法。这样就可以使用该组件存储一些中间数据,例如ServletRequest中的请求信息、从数据库中查询出来的信息等。

4)Enterprise Java Bean(EJB)组件是服务器端的Java组件。该组件基于标准分布式对象技术、CORBA和RMI等技术,用于实现企业级应用的业务逻辑。EJB组件和JavaBean的区别是:JavaBean组件可以和JSP和Servlet运行于同一个主机,即Web服务器中;而EJB组件必须运行于EJB服务器中(也称为应用程序服务器)。

5)XML(Extensible Markup Language)是一种用来创建自定义标记的标记语言。该语言在Web应用的配置中得到了广泛的应用。许多配置文件,例如web.xml、struts.xml都是采用这种语句进行配置的。

6)Web服务器用来处理HTTP请求,并返回HTTP数据。它主要用来和浏览器交互,给用户提供服务。应用程序服务器可以被Web服务器去调用,进行业务逻辑的处理工作。例如EJB服务器,它返回的数据被Web服务器组织为HTML格式,然后返回到浏览器去解析。

3. 在互联网发展的最初阶段,所有的网页内容都是静态的HTML网页,在这种情况下,网站所能实现的任务仅仅是静态的信息展示,而不能与客户产生互动,当然这样的网站是不能满足用户不同的需要。为了满足用户的需要,就有了后来一系列的动态页面语言的出现。 所谓的动态页面是指可以和用户产生交互,能根据用户的输入信息产生对应的响应,能满足这种需求的语言就可以称之为动态语言

目前常用的动态网页技术有ASP、JSP、PHP等,下面分别介绍这几种动态语言:

(1)ASP    本质是脚本语言,由微软提供,只能在windows中运行;

(2)JSP     Sun公司开发的服务器端脚本语言,本质将Java代码嵌套在HTML中;

(3)PHP    开源产品,缺乏支持;语法独特,混合了C、Java等多种语法的优点,可以在IIS和Apache中运行。

二)搭建Java Web开发环境

JDK和JRE是在Java环境下进行开发所必不可少的,只有很好地掌握它们的配置与使用方法,才能进行以后的Java Web开发。

1. Tomcat服务器是当今进行Java Web开发使用最广泛的Servlet/JSP服务器。这是因为它运行稳定、性能可靠,是学习和中小企业级应用的最佳选择。Tomcat是Servlet和JSP的容器。当通过Web浏览器访问某个JSP文件时,Tomcat会将这个JSP文件编译、运行。然后把运行的结果返回到浏览器去显示。

Tomcat下载地址:Apache Tomcat® - Welcome! ,下载Installer进行安装

检验安装完成:在浏览器中输入 http://localhost:8080/ ,如下图所示:

测试Tomcat,新建ch2文件夹,其内新建txt文本文档,输入以下测试代码,然后改名为helloworld.jsp保存。

  1. <!--language="Java"用来生命使用的是Java脚本-->

  2. <%@ page contentType="text/html; charset=UTF-8" language="Java"%>

  3. <html>

  4. <head>

  5. <title>Hello World!</title>

  6. </head>

  7. <body>

  8. <%

  9. response.setContentType("text/html");

  10. out.println("hello Tomcat world!");

  11. %>

  12. </body>

  13. </html>

将上述ch2文件拷贝到如下路径中,在Tomcat安装路径下的webapps文件夹内。

D:\Program Files\Apache Software Foundation\Tomcat9.0\webapps

浏览器输入如下地址: http://localhost:8080/ch2/helloworld.jsp   ,网页输出如下,说明测试成功。

2. MySQL数据库是一个小型的关系型数据库。它体积小、速度快,而且是免费、开源的。对于一般的个人使用者来说,MySQL数据库提供的功能和性能已经绰绰有余,尤其适合初学者学习使用。

下载地址: MySQL :: Download MySQL Community Server

Workbench有界面,可以存放SQL脚本语言,界面如下图所示:

3. MyEclipse是一个非常强大的开发工具,使用它可以很方便地进行Java Web开发。使用MyEclipse进行Java Web开发,首先必须配置好开发环境。在Java Web开发中,可以将Tomcat服务器等集成到MyEclipse中去使用。

推荐一个安装教程:https://www.cnblogs.com/cthon/p/8398061.html

安装好的界面如下:

在MyEclipse中其实已经自带了一个Tomcat服务器,但是为了日后我们程序的开发、部署和运行更加方便和快捷,我们将用户安装的Tomcat服务器集成到MyEclipse中。

在window->Preferences->Servers->Runtime Environment中Add自己安装好的Tomcatv9.0,选择Tomcatv9.0的安装路径。

(四)JSP语法及应用

JSP技术是一种动态网页技术。

1. JSP组成及原理

JSP页面由HTML代码和嵌入在其中的Java脚本组成。当浏览器端用户请求某个JSP页面时,Web服务器在服务器端对所请求的JSP文件进行编译处理,执行其中的Java脚本,并把生成的HTML页面返回到浏览器端显示。

当客户端表单把请求提交给JSP页面时,服务器端的JSP引擎从服务器端的磁盘上找到该JSP文件。然后把它解析为Java文件,接着将该Java文件编译为Class文件。然后执行该Class文件处理请求。处理完成后生成了一个HTML文件,最后JSP引擎负责将该HTML文件发送到客户端去显示。

2. JSP的优势:

  1. 一次编写,到处运行。这一点JSP比PHP技术更有优势,在不同的系统平台上运行,代码不用做任何修改。 被多平台支持。JSP几乎可以在任何的平台上进行开发,并且可以在任何的平台上部署和运行。这一点是ASP和PHP所无法企及的。
  2. 后台强大的功能。由于JSP后台有Java语言和Servlet的支持,在后台可以进行复杂的、功能强大的业务逻辑处理。并且可以实现多台服务器端集群和负载均衡,从而更加适应企业级的应用。
  3. 有很多优秀的IDE,比如MyEclipse等。

JSP语法及应用

1. JSP文件中的注释

由于JSP文件是由不同的语言形式,如HTML、XML、Java等组成的,所以它里面有多种注释方式。下面将这些注释方式归为3类。

  • HTML/XML注释

这种注释方式可以用来注释JSP文件中除了Java脚本外的所有内容。它用“<!--”和“-->”之间的部分来标识。它的特点是当JSP被解析为Java文件时,注释的语句会被out.println()方法返回到客户端,所以在作为JSP响应发送到客户端的HTML代码中,仍然可以找到这类注释。

  • JSP注释

这种注释方式同样可以用来注释JSP文件中除了Java脚本外的所有内容。它用“<%--”和“--%>”之间的部分来标识。它的特点是只能用来注释JSP文件,在JSP文件解析为Java文件时,这类注释会被删除,不会出现在Java代码中,更不会出现在返回到客户端的HTML源码中。

  • Java注释

这种注释方式只能用来注释Java脚本。它用“/**/”和“//”标识。它的特点是在JSP被解析为Java文件时被保留,所以它也可以用来注释JSP对应的Java文件。

2. JSP文件中的模板元素

模板元素是指JSP源文件中属于静态的HTML或者XML的部分。它们是JSP文件最终用来响应客户端请求的HTML页面的主体,因而它们对于JSP的显示是非常重要的。通常在开发的过程中JSP的脚本编程人员不用太关心这部分内容,因为它们主要是由美工人员完成的。

3. JSP文件中的脚本元素

脚本元素是指JSP文件中插入的Java脚本。这类元素是JSP中真正完成业务逻辑的部分,例如,它可以连接数据库、向数据库中插入数据、查询数据。按照实现形式及功能上的不同,可以进一步将这类元素分为3个子类。

  • 声明(Declaration)

它们是脚本元素中声明变量和方法的部分,一般用符号“<%!”和“%>”来标识。它用来将文件中用到的变量或方法封装起来,这样可以使代码变得简洁。声明完一个方法或者变量后就可以在剩余的脚本元素中去调用该方法或变量。

声明的格式如下: <%! variable declaration / method declaration(paraType param) %>

  • 表达式(Expression)

它们把方法的结果或变量的值作为一个字符串输出,一般用“<%=”和“%>”之间的部分来标识。表达式必须有一个返回值,它输出的字符串作为HTML页面的一部分被最终输出到客户端显示。

语法如下所示: <%=Some Java expression %>

其实从功能上看,表达式就相当于JSP文件中的out.println()方法,但是它更简洁。

  • 脚本Scriptlets

Scriptlet是一段可以在请求处理阶段执行的Java代码。它可以用来进行业务逻辑的处理;可以用来产生一些输出;可以是一些流程控制语句;还可以是一些Java注释。它们一般是在遍历和循环中将方法的结果或变量的值用out.pirntln()方法输出,用“<%”和“%>”之间的部分来标识。

语法如下所示: <% Java code statements %>

4. JSP文件中的指令元素

指令元素一般有3类:页面(page)指令、include指令和taglib指令。它们一般用符号“<%@”和“%>”之间的部分来标识。它不向客户端输出任何内容,是用来设置全局变量,声明类、要实现的方法和输出内容的类型等。在JSP文件被解析为Java文件时,Web容器会将它们翻译为对应的Java代码。

指令元素的格式如下: <%@ directivename attribute="value", attribute="value" %>

  • 页面(page)指令元素

页面指令用来定义JSP文件中的全局属性,这些全局属性都是影响整个页面的重要属性。一个JSP文件中可以有多个页面指令,在JSP文件被解析为Java代码时,这些页面指令也被解析为对应的Java代码。

页面指令的格式如下: <%@ page attribute="value"...

其中,attribute可以为language、import、contentType、session、buffer、autoFlush、isThreadSafe、info、errorPage、isErrorPage、extends等。

  • 包含(include)指令元素

include指令用来将指定位置上的资源包含在当前JSP文件中。在JSP文件被编译为Java文件时,这些被包含的资源会被作为JSP文件的一部分被翻译为Java文件。所以这些资源可以看做是JSP文件的一部分。

include指令的格式如下: <%@ include file=”filename”%>

上面的filename指定要包含资源的文件名。如果filename以“/”开头,那么该文件的路径是参照JSP应用的上下文路径;如果filename是以文件名或目录名开头,那么该文件的路径就是当前JSP文件的路径。

  • 自定义标签(taglib)指令元素

这个指令用来让用户自己定义标签。使用自定义标签,既可以实现同一功能的代码重用,又可以使JSP页面易于维护。例如,可以将显示日期的代码定义为一个日期标签,每当需要显示日期时,就使用这个标签去实现。这样可以使同一段代码多次使用并且显得简洁,更改起来方便。

自定义标签的一般顺序是开发标签库、为标签库编写.tld配置文件、最后在JSP页面里使用自定义标签。

在JSP文件中taglib指令的使用格式如下: <%@ taglib url="taglibURL" prefix="tagPrefix" %>

url用来告诉Web容器在什么地方找到标签描述文件和标签库;prefix定义了在JSP文件中使用该自定义标签的前缀。注意这些标签的前缀不可以为jsp、jspx、java、javax、sun、servlet等。

5. JSP文件中的动作元素

动作元素一般用标签“<jsp:XXX >”来标识。JSP规范定义了一些常见的动作元素,它们以jsp为前缀,几乎被所有的Web容器支持。动作元素在处理客户端请求时起作用。

常用的JSP标准动作有:<jsp:useBean>、<jsp:setProperty>、<jsp: getProperty >、<jsp:param>、<jsp:include>、<jsp:forward>、<jsp:plugin>、<jsp:fallback>、<jsp:params>、<jsp:param>、<jsp:attribute>、<jsp:body>、<jsp:invoke>、<jsp:doBody>、<jsp:element>、<jsp:text>、<jsp:output>、<jsp:root>、<jsp:decaration>、<jsp:scriptlet>/<jsp:expression>等。

  • 参数元素<jsp:param>

该动作元素用来给其他的标签提供参数,例如,它可以和jsp:include、jsp:forward、jsp:plugin一起使用。

它一般采用如下形式: <jsp:param name="paramName" value="paramValue"/>

其中name为参数或者属性的名字,value为其值。在下面几节中会和其他标签一起讲述该动作元素的使用方法。

  • 包含元素<jsp:include>

该动作元素用于在客户端请求时间内把静态或者动态的资源包含在JSP页面内,被包含的对象只有对JspWriter对象的访问权,并且它不能设置头和Cookie。

该指令的格式如下: <jsp:include page="fileName" flush="true"/> 或者 <jsp:include page="fileName" flush="true">  <jsp:param name="paramName" value="paramValue"/> ... </jsp:include>

1.page="fileName"

fileName为一个被包含资源的相对路径,或者是代表相对路径的表达式。如果路径以“/”开头,那么路径主要是参照JSP应用的上下文路径;如果路径以文件名或目录名开头,这个路径就是当前使用的JSP文件的路径。

2.flush="true"

该属性用来指定是否自动刷新。flush的值必须被设置为true,不能为false,但是默认值为false。

3.<jsp:param/>

<jsp:param>可以用来给被包含的动态页面传递一个或多个参数。

  • 转发元素<jsp:forward>

该元素用来将请求转发到其他的JSP页面、Servlet或者静态资源文件,每当遇到该元素时,就停止执行当前的JSP而执行被转发的资源。请求转发的资源必须位于和发送请求的JSP页面相同的上下文环境中。

该元素的使用方式是: <jsp:forward page="url"/> 或者 <jsp:forward page="url">

<jsp:param name="paramName" value="paramValue"/> ... </jsp:forward>

1.page="url"

url的值为一个字符串或者一个表达式,用于指定要请求的文件的URL或文件名。要请求的文件可以是JSP文件、Servlet,或一个程序端。

2.<jsp:param name="paramName" value="paramValue"/>

通过它可以给请求的页面传输一个或多个参数,name指定参数的名字,value指定参数的值。如果要传输多个参数,可以使用多个<jsp:param/>标签。当给一个页面传输参数时,该页面肯定是动态页面。

  • 属性设置元素<jsp:setProperty>

该元素和<jsp:useBean>一起使用,用来给JavaBean设置属性,该标签会调用JavaBean的setXXX()方法去完成一个或者多个属性的设置。

使用该元素一般有4种方法: <jsp:setProperty name="BeanName" property="*">

<jsp:setProperty name="BeanName" property="propertyName" param= "parameterName">

<jsp:setProperty name="BeanName" property="propertyName">

<jsp:setProperty name="BeanName" property=" propertyName" value= "propertyValue">

1.property="*"

这种设置方式最快捷。JSP的内在机制会将request对象中的参数名字和JavaBean中的属性名字进行配对,并把名字相同的参数值赋给JavaBean中的同名属性。使用这种方式要求JavaBean中的属性和request对象中的参数的名字相匹配。 如果request对象中某一个匹配参数值为空值,那么对应的JavaBean中的属性不会设置任何值;同样,如果JavaBean的属性中有一个在request对象中找不到与它对应的参数,那么这个属性也不会被设置任何值。

2.property="propertyName" param="parameterName"

propertyName代表JavaBean的属性,它和JavaBean中某属性的setXXX()中的XXX必须相同。parameterName代表request对象中的参数名。该方式把指定的参数值赋值给指定的属性值,适应于属性名和参数名不一致的情况。

3.property="propertyName"

propertyName代表JavaBean的一个属性。这种方式将request对象中与该属性名字相同的参数的值赋给这个属性。如果request中没有与该属性匹配的参数,这个属性也不会被设置任何值。

4.property=" propertyName" value="propertyValue"

propertyValue可以是一个字符串,也可以是表达式。如果是字符串,需要用对象的valueOf()方法将其转换为对应JavaBean属性的数据类型。例如,“double.valueOf(“12.55”)”将字符串12.55转换为double类型的值;如果是表达式,则其结果必须与对应的JavaBean属性的数据类型一致。

可以看出,这种方式采用指定的值,而不是request对象中的参数值来赋值给JavaBean的属性。所以同一个<jsp:setProperty>标签中,不能同时出现value和param。

  • 属性获取元素<jsp:getProperty>

该元素用来获取JavaBean中属性的值。它将JavaBean的值转换为String类型,然后发送到输出流中。

它使用的方法如下: <jsp:getProperty name="BeanName" property="propertyName">

1.name=" BeanName"

这个是必须指定的,BeanName为JavaBean的名字,也即通过<jsp:useBean/>引入的JavaBean的id。

2.property="userName"

这个也是必须指定的,它用来指定JavaBean的属性名。

  • JavaBean调用元素<jsp:useBean>

该元素用来在JSP文件中使用一个JavaBean的实例,并声明该实例的名字以及作用范围,从而保证该实例可以在声明的作用范围内使用。

使用的语法如下所示。 <jsp:useBean id="name" scope="page|request|session|application" class= "className"/>

1.id="name"

id用来在使用范围内唯一标识该JavaBean的实例,这样就可以通过它来调用该JavaBean的实例。该项大小写敏感,并且必须符合所使用的脚本语言的命名规定。

2.scope="page|request|session|application"

该项用来指定JavaBean实例的使用范围,它的默认值是page。

3.class="className"

class用来指定该JavaBean类的路径和类名。这样Web容器中才能找到该JavaBean对应的Class文件。

使用MyEclipse2017进行web开发相关推荐

  1. 写给自己的web开发资源

    web开发给我的感觉就是乱七八糟,而且要学习感觉总是会有东西要学习,很乱很杂我也没空搞,(其实学习这个的方法就是去用它,什么你直接用?学过js么学过jquery么?哈哈,我没有系统的看完过,但是也做出 ...

  2. 第五篇:Visual Studio 2008 Web开发使用的新特性

    第五篇:Visual Studio 2008 Web开发使用的新特性 本篇翻译自MSDN. .NET Framwork 3.5与Visual Studio 2008 包含很多新特性.AJAX的Web开 ...

  3. Web 开发与设计之 Google 兵器谱

    Google 的使命是 Web,在 Google 眼中,未来的一切应用都将 Web 化,一直以来,Google 为 Web 开发与设计者推出了大量免费工具,让他们更好地创建,维护,改善他们的 Web ...

  4. 如何用Python做Web开发?——Django环境配置

    用Python做Web开发,Django框架是个非常好的起点.如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手. 概念 最近有个词儿很流行,叫做"全栈"(full ...

  5. Web 开发人员必备的随机 JSON 数据生成工具

    在 Web 开发中,经常会需要一些测试数据来测试接口或者功能时候正确.JSON Generator 就是这样一款生成随机 JSON 数据的在线工具,Web 开发人员必备,记得收藏和分享啊. 您可能感兴 ...

  6. Web开发常见的软件架构

    Web开发常见的软件架构 一.看需求分析,看产品PRD:Product Requirement Document 二.根据PRD和产品原型建数据库表,注意三范式要求,用工具到处数据库关系图,并快速地理 ...

  7. 038——VUE中组件之WEB开发中组件使用场景与定义组件的方式

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  8. [WebDev]Web 开发与设计师速查手册大全

    Cheat Sheet 一词在中文中并没有很贴切的对译,大概是考试作弊条一类的东西,这要求 Cheat Sheet 必须短小精悍又覆盖广泛,作为 Web 开发与设计师,免不了在工作时查询大量资料,某个 ...

  9. web前端开发最佳实践_学习前端Web开发的最佳方法

    web前端开发最佳实践 为什么要进行网站开发? (Why web development?) Web development is a field that is not going anywhere ...

最新文章

  1. 决策树和随机森林(下)
  2. UTF-8格式的文本文件程序读取异常
  3. Day5---D4:合规和审计管理
  4. 大剑无锋之DQL、DML、DDL、DCL,简单举个例子【面试推荐】
  5. 拜托!程序员的工作不能用时间来衡量
  6. extjs $ 美元符号修改
  7. 《构建之法》(第四、十七章)读书笔记
  8. 刷新存储器的容量单位是什么_什么是PLC?PLC的选型原则是什么?
  9. 被Json格式化后那可怜的时间
  10. 深入理解JDBC的超时设置
  11. html怎么让字体自动变色,html怎么给字体设置颜色
  12. AD22如何添加元器件库
  13. CSS基础知识汇总{主要内容: CSS语法结构,类选择器,后代选择器,交集选择器等}
  14. Ceph学习——客户端读写操作分析
  15. Linux如何使用WIFI连接abd
  16. OSA品牌服饰旗舰店,淘宝商城一颗…
  17. SQL 语句集合(行转列,参数化...)
  18. 二三维一体化平台-FreeXGIS Studio
  19. 2016银行卡BIN
  20. Platform Dependency

热门文章

  1. 2022泰晤士最新世界大学排名惹争议,这所985高校爆冷门!
  2. 视频+课件|国内首个基于结构光投影三维重建系列视频课程
  3. 3D相机的数据处理方式
  4. 2021-07-30 自己垃圾场景数据集训练Bisenet网络
  5. DeepChem | 基于图卷积预测分子的溶解度
  6. 如何在 Linux 中查看目录大小?
  7. MPB:山大倪金凤组-白蚁肠道木质纤维素降解细菌的分离与培养
  8. SBB:南土所梁玉婷、孙波等跨气候带土壤移置揭示了气候变暖及施肥对土壤固氮微生物递增的环境过滤作用...
  9. QIIME 2用户文档. 13训练特征分类器Training feature classifiers(2019.7)
  10. QIIME 2用户文档. 13数据评估和质控Evaluating and controlling(2018.11)