tomcat常用架构:
1)nginx+tomcat;即前端放一台nginx,然后通过nginx反向代理到tomcat端口(可参考:分享一例测试环境下nginx+tomcat的视频业务部署记录)
2)tomcat直接部署站点,不通过nginx反向代理。

下面针对tomcat的有关配置使用进行说明:
1)默认站点根目录                                                                                                                                   
tomcat的默认站点根目录是webapps/ROOT,配置文件是server.xml,
配置文件server.xml 里的主要内容是:

[root@huanqiu-test ~]# vim /Data/app/tomcat-7/conf/server.xml       //如若修改tomcat的访问端口,替换下面的8080即可
.....<Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1"        //URIEncoding="UTF-8"这个配置在这里默认是没有的,这里是我手动添加的,保证tomcat的编码是UTF-8connectionTimeout="20000"redirectPort="8443" />
.....<Host name="localhost"  appBase="webapps"unpackWARs="true" autoDeploy="true">
.....

上面配置说明tomcat的访问地址是http://localhost:8080
站点目录是/Data/app/tomcat-7/webapps/ROOT
记住提前将webapps目录清空,然后注意:
如果代码的war包名称是ROOT.war,那么tomcat重启后,访问站点的根目录就是webapps/ROOT,访问url是http://localhost:8080 (ROOT目录,在访问时的url中可以省略)
如果代码的war包名次不是ROOT.war,比如是jenkins.war,那么tomcat重启后,访问站点的根目录就是webapps/jenkins,访问url就是http://localhost:8080/jenkins (非ROOT目录,在访问时的url中必须要带上)

[root@huanqiu-test ~]# ll /usr/local/tomcat7/webapps/
total 62180
drwxr-xr-x. 16 root root 4096 Dec 15 12:33 jenkins
-rw-r--r--. 1 root root 63664946 Oct 30 20:38 jenkins.war

因此这个tomcat站点访问地址是:http://localhost:8080/jenkins

2)修改默认域名                                                                                                                                       
如下,只修改"Host name"处,将默认的localhost修改为www.wangjenkins.com
那么此tomcat站点访问地址是:http://www.wangjenkins.com:8080/jenkins/

[root@huanqiu-test ~]# vim /Data/app/tomcat-7/conf/server.xml
.....<Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1"        connectionTimeout="20000"redirectPort="8443" />
.....<Host name="www.wangjenkins.com"  appBase="webapps"unpackWARs="true" autoDeploy="true">
.....

3)修改tomcat访问的默认站点目录                                                                                                          
如下配置,重启tomcat后,它就会把起先默认站点目录/Data/app/tomcat-7/webapps/ROOT修改成/home/tomcat/www这个目录。

[root@huanqiu-test ~]# vim /Data/app/tomcat-7/conf/server.xml
.....<Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1"        connectionTimeout="20000"redirectPort="8443" />
.....<Host name="www.wangjenkins.com"  appBase="/home/tomcat/www"  //这里的appBase后填写的是新的站点根目录,也可以还设置成webapps(若是webapps,则下面的Context一行必须设置)unpackWARs="true" autoDeploy="true"><Context path="" docBase="/home/tomcat/www" debug="0" reloadable="true" />  //这一行最好添加上,path后面的""里配置的是tomcat的子项目,""为空,表示是父项目
.....

[root@huanqiu-test ~] # ll /home/tomcat/www/
total 62180
drwxr-xr-x. 9 root root 4096 Dec 15 13:42 jenkins
-rw-r--r--. 1 root root 63664946 Dec 15 13:42 jenkins.war

[root@huanqiu-test ~] # ll /usr/local/tomcat7/webapps/
total 62184
drwxr-xr-x. 7 root root 4096 Dec 15 14:34 jenkins

这个tomcat站点访问地址是:http://www.wangjenkins.com:8080/jenkins

注意:
1)上面的appBase可以配置成新的站点目录,这时下面的Context这一行配置可以不加。默认站点目录webapps下还是会产生代码目录,只是tomcat访问的时候不会去调用它。
2)上面的appBase可以配置成默认的webapps站点目录,这种情况下,就必须添加Contest这一行,并在Context行内配置新的站点目录。tomcat启动后,解压代码的war包会往webapps这个默认站点目录里也产生一份(即新站点目录和默认的webapps站点目录都会有一份代码),只是tomcat访问时不会去调用webapps目录下的代码;
3)Context这一行是tomcat的项目配置,path后的""内填写的是项目名称,如果""为空,则表示是父项目。Context这一行的配置:
     在appBase配置成新的站点目录的情况下可有可无(不过建议最好还是配置上)
     在appBase配置成默认的webapps目录的情况下就必须要有!

所以配置也可以是:
       <Host name="www.wangjenkins.com" appBase="/home/tomcat/www"
                 unpackWARs="true" autoDeploy="true">
也可以是:
      <Host name="www.wangjenkins.com" appBase="webapps"
                unpackWARs="true" autoDeploy="true">
      <Context path="" docBase="/home/tomcat/www" debug="0" reloadable="true" />

4)部署多个项目                                                                                                                                       
1.在同一个tomcat下(即同一个端口)有两种方式:
   1)共用同一个域名(同一Host name)下的多个子项目
   2)不同域名(多个Host name)下的项目

tomcat多项目部署,需要用到下面一行:
<Context path="" docBase="/home/tomcat/www" debug="0" reloadable="true" />
其中,path后的""内填写的是项目名称,如果""为空,则表示是父项目(父项目情况下,这个Context行可以省略)

同一个域名下的多项目部署,配置如下:
[root@huanqiu-test ~]# vim /usr/local/tomcat7/conf/server.xml //Context行的位置放在"className"区域的下面
.......
      <Host name="www.wangjenkins.com" appBase="webapps"
          unpackWARs="true" autoDeploy="true">
......
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                prefix="localhost_access_log." suffix=".txt"
                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
     <Context path="/huanqiu1" reloadable="true" docBase="/usr/local/tomcat7/huanqiu1"/>
     <Context path="/huanqiu2" reloadable="true" docBase="/usr/local/tomcat7/huanqiu2"/>
</Host>
......

上面的配置可知:
父项目是http://www.wangjenkins.com/8080/jenkins,站点目录是/usr/local/tomcat7/webapps,由于webapps下不是默认的ROOT,而是jenkins。所以访问的url里要带jenkins
两个子项目分别是:
http://www.wangjenkins.com/8080/huanqiu1,对应的站点目录是/usr/local/tomcat7/huanqiu1
http://www.wangjenkins.com/8080/huanqiu2,对于的站点目录是/usr/local/tomcat7/huanqiu2

不同域名下的多项目部署,配置如下:
[root@huanqiu-test ~]# vim /usr/local/tomcat7/conf/server.xml
......
      <Host name="localhost" appBase="webapps"                        //这个是默认的配置区域
                unpackWARs="true" autoDeploy="true">

<!-- SingleSignOn valve, share authentication between web applications
          Documentation at: /docs/config/valve.html -->
     <!--
     <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
     -->

<!-- Access log processes all example.
           Documentation at: /docs/config/valve.html
           Note: The pattern used is equivalent to using pattern="common" -->
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                prefix="localhost_access_log." suffix=".txt"
                pattern="%h %l %u %t &quot;%r&quot; %s %b" />

<Host name="www.beijing.com" appBase="apps"
                unpackWARs="true" autoDeploy="true">

<!-- SingleSignOn valve, share authentication between web applications
               Documentation at: /docs/config/valve.html -->
       <!--
       <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
       -->

<!-- Access log processes all example.
              Documentation at: /docs/config/valve.html
              Note: The pattern used is equivalent to using pattern="common" -->
       <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                  prefix="localhost_access_log." suffix=".txt"
                  pattern="%h %l %u %t &quot;%r&quot; %s %b" />

<Host name="www.wangshibo.com" appBase="wang"
                 unpackWARs="true" autoDeploy="true">

<!-- SingleSignOn valve, share authentication between web applications
               Documentation at: /docs/config/valve.html -->
       <!--
       <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
       -->

<!-- Access log processes all example.
              Documentation at: /docs/config/valve.html
              Note: The pattern used is equivalent to using pattern="common" -->
       <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
             prefix="localhost_access_log." suffix=".txt"
             pattern="%h %l %u %t &quot;%r&quot; %s %b" />
       <Context path="/ops1" reloadable="true" docBase="/data/web/ops1"/>
       <Context path="/ops2" reloadable="true" docBase="/data/web/ops2"/>

根据上面的配置可知:
http://localhost:8080 对应的站点目录是/usr/local/tomcat7/webapps(假设对应站点目录下的名称都是ROOT)
http://www.beijing.com:8080 对应的站点目录是/usr/local/tomcat7/apps
http://www.wangshibo.com:8080 对应的站点目录是/usr/local/tomcat7/wang,并且这个项目下有两个子项目分别是http://www.wangshibo.com:8080/ops1、http://www.wangshibo.com:8080/ops2

2.在不同的tomcat下(不同的端口)
将tomcat复制成多个副本,然后根据业务更改复制后的tomcat名,修改server.conf中的三个关键端口(下面会提到).注意站点目录对应关系。
[不过,为了避免不必要的麻烦,最好还是别复制已经在使用中的tomcat,可以重新解压tomcat安装包进行使用(将其备份,以待后续再使用)].当然也可以在不同端口的tomcat下设置各自的子项目。
                                                                                                                                                                        
需要注意的问题
在一个服务器上启用了多个tomcat实例,那么需要特别注意的就是各个实例的端口问题,很容易因为端口冲突造成tomcat实例启动失败!

各个tomcat实例需要修改的端口,其实就是server.xml文件里的三个端口需要修改,如下:
[root@huanqiu-test conf]# pwd
/Data/app/tomcat-7-wls/conf
[root@huanqiu-test conf]# vim server.xml
.......
        <Connector port="8383" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" />
......
        <Server port="8785" shutdown="SHUTDOWN">
......

<Connector port="8789" protocol="AJP/1.3" redirectPort="8443" />

只要上面三个端口不冲突,基本就能成功启动实例了。

另外:最好做下java的环境变量设置,不然,tomcat启动容易失败~~
[root@huanqiu-test ~]# java -version
java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
[root@huanqiu-test ~]# which java
/usr/bin/java
[root@huanqiu-test ~]# ll /usr/bin/java
lrwxrwxrwx. 1 root root 22 7月 11 2015 /usr/bin/java -> /etc/alternatives/java
[root@huanqiu-test ~]# ll /etc/alternatives/java
lrwxrwxrwx. 1 root root 46 7月 11 2015 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

由此可知,java的home目录是/usr/lib/jvm/jre-1.7.0-openjdk.x86_64

[root@huanqiu-test jvm]# ll
总用量 8
drwxr-xr-x. 3 root root 4096 7月 11 2015 java-1.6.0-openjdk-1.6.0.0.x86_64
drwxr-xr-x. 3 root root 4096 7月 11 2015 java-1.7.0-openjdk-1.7.0.45.x86_64
lrwxrwxrwx. 1 root root 21 7月 11 2015 jre -> /etc/alternatives/jre
lrwxrwxrwx. 1 root root 27 7月 11 2015 jre-1.6.0 -> /etc/alternatives/jre_1.6.0
lrwxrwxrwx. 1 root root 37 7月 11 2015 jre-1.6.0-openjdk.x86_64 -> java-1.6.0-openjdk-1.6.0.0.x86_64/jre
lrwxrwxrwx. 1 root root 27 7月 11 2015 jre-1.7.0 -> /etc/alternatives/jre_1.7.0
lrwxrwxrwx. 1 root root 38 7月 11 2015 jre-1.7.0-openjdk.x86_64 -> java-1.7.0-openjdk-1.7.0.45.x86_64/jre
lrwxrwxrwx. 1 root root 29 7月 11 2015 jre-openjdk -> /etc/alternatives/jre_openjdk

设置java的环境变量
[root@huanqiu-test jvm]# vim /etc/profile
.......
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

使之生效
[root@huanqiu-test ~]# source /etc/profile

[root@huanqiu-test ~]# echo $JAVA_HOME
/usr/lib/jvm/java-1.7.0-openjdk.x86_64
[root@huanqiu-test ~]# echo $CLASSPATH
.:/usr/lib/jvm/java-1.7.0-openjdk.x86_64/jre/lib/rt.jar:/usr/lib/jvm/java-1.7.0-openjdk.x86_64/lib/dt.jar:/usr/lib/jvm/java-1.7.0-openjdk.x86_64/lib/tools.jar

上面java的环境变量一定要设置!不然tomcat启动会失败,会有以下报错:
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

[通常:在对tomcat服务进行迁移或切换的时候,需要将webapps下的ROOT和ROOT.war包都一起拷贝过去]

 Tomcat中实现IP访问限制                                                                    
Tomcat中的ip访问限制,即设置允许某个(或某些)客户端能够访问到tomcat服务器,或不能访问tomcat服务器。
限制tomcat的IP访问其实是一件非常容易的事情,只需要编辑tomcat的server.xml,增加适当代码即可。

修改如下:
例如有一个名为myapp的虚拟目录,打开tomcat的server.xml配置文件,找到其配置代码如下:
<Context path="/myapp" reloadable="true" docBase="/var/www/myapp" />
将其改成下面代码:
<Context path="/myapp" reloadable="true" docBase="/var/www/myapp"><valueclassName="org.apache.catalina.values.RemoteAddrValue"allow="127.0.0.1" deny="″ />
</Context>经过这样设置后,将只允许本机访问Tomcat.如要限制只能192.168.1.0-192.168.5.255和192.168.10.0-192.168.15.255这样的IP段,可以类似这样写:
<Context path="/myapp" reloadable="true" docBase="/var/www/myapp"><valueclassName="org.apache.catalina.values.RemoteAddrValue"allow="192.168.[1-5].*,192.168.[10-15].*" deny="″ />
</Context>
设置好后重新启动Tomcat就生效.注意:
<Context 内容要放在<Host </Host>之间---------------------另一种玩法---------------------
效果:只有指定的主机或IP地址才可以访问部署在Tomcat下的应用。
Tomcat供了两个参数供你配置:RemoteHostValve 和RemoteAddrValve,前者用于限制主机名,后者用于限制IP地址。通过配置这两个参数,可以让你过滤来自请求的主机或IP地址,并允许或拒绝哪些主机/IP。1)全局设置,对Tomcat下所有应用生效
server.xml中添加下面一行,重启服务器即可:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>
此行放在</Host>之前。例子:
只允许192.168.1.10访问:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10" deny=""/>只允许192.168.1.*网段访问:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>只允许192.168.1.10、192.168.1.30访问:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.10,192.168.1.30" deny=""/>根据主机名进行限制:
<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="abc.com" deny=""/>2)局部设置,仅对具体的应用生效
根据项目配置情况进行设置:
直接在server.xml中进行设置${tomcat_root}/conf/server.xml在上述文件对应项目的</Context>前增加下面一行:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*" deny=""/>特别需求:测试版本不想提供别人访问
打开tomcat6/conf/server.xml文件
如果是要限制整个站点别人不能访问,则要将
<Valve className="org.apache.catalina.valves.RemoteAddrValve"  allow="192.168.1.*,192.168.2.*,*.mysite.com" deny=""/>
加入到<HOST></HOST>标签中如果是要限制某个站点不能被访问,则要加入到<Context>里面就可以。
<Context path="/myweb" reloadable="true" docBase="/data/tomcat6/webapps/myweb">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.13.110,192.168.1.*,220.250.13.21" deny=""/>
</Context>RemoteHostValve表示根据主机名进行限制:
<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="tmachine1" deny=""/>
修改文件:
tomcat/conf/server.xml通过tomcat限制ip访问
<Engine name="Standalone" ...>
<Valve className="org.apache.catalina.valves.RemoteHostValve"allow="*.mycompany.com,*.a.com"/>                                 //域名限制
<Valve className="org.apache.catalina.valves.RemoteAddrValve"deny="192.168.1.*"/>                                             //IP限制
</Engine>重启tomcat生效

Tomcat 大文件上传超时问题处理                                                                        

公司的OA系统在上传一个70多M的大文件过程中,出现了"上传超过有效期"超时现象。原因是tomcat持续上传附件时间超过了系统默认时间。

需要调整tomcat容器的JVM参数,修改方法如下:在tomcat的bin/catalina.sh文件里添加参数"-DLandray.sys.att.expire=600",此参数是修改附件上传有效期,这里上传有效期为600秒,既持续上传时间为10分钟,超过10分钟附件还未上传成功则会提示超时,可根据实际情况调整这个时常。

[root@oa-app02 bin]# vim /home/app/linux64/tomcat/bin/catalina.sh
.......
JAVA_OPTS="$JAVA_OPTS -server -Xms1024m -Xmx3072m -XX:PermSize=256M -XX:MaxPermSize=512M -Xmn256M -Djava.awt.headless=true -Duser.timezone=Asia/Shanghai -Djava.net.preferIPv4Stack=true -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -DLandray.kmss.cluster.serverName=ekp_server21 -Djava.net.preferIPv4Stack=true -DLandray.sys.att.expire=600"

接着重启tomcat即可
[root@oa-app02 bin]# ps -ef|grep tomcat|grep -v grep |xargs kill -9

[root@oa-app02 bin]#/home/app/linux64/tomcat/bin/startup.sh

================================================================
另外注意:tomcat配置文件中关于超时时间的配置如下:
在tomcat的server.xml中加入如下配置

<Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="300000" disableUploadTimeout="true"
            minProcessors="50" maxProcessors="375" acceptCount="500"
            redirectPort="5443" URIEncoding="UTF-8"/>

其中:
connectionTimeout:设置连接的超时值,以毫秒为单位。默认值为60000=60秒
disableUploadTimeout:允许Servlet容器,正在执行使用一个较长的连接超时值,以使Servlet有较长的时间来完成它的执行,默认值为true
maxProcessors:最大连接线程数
acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,就是被排队的请求数,超过这个数的请求将拒绝连接。

转载于:https://www.cnblogs.com/kevingrace/p/6075087.html

tomcat相关配置技巧梳理 (修改站点目录、多项目部署、限制ip访问、大文件上传超时等)...相关推荐

  1. python bottle 上传文件_Bottle + WebUploader 修改Bottle框架从而大文件上传实现方案

    Bottle 是个轻量级的Web框架,小巧又强大,真不愧是个轻量级的框架.可扩展性非常好,可以扩展很多功能,但是有些功能就不得不自己动手修改了. BaiduWebUpLoader 则是一个我认为非常不 ...

  2. php大文件上传php.ini配置

    来源:http://xuqin.blog.51cto.com/5183168/909258 http://wenku.baidu.com/view/daa108687e21af45b307a8e3.h ...

  3. MOSS2010站点大文件上传设置

    MOSS2010站点大文件上传设置 sharepoint2010 2010-10-09 13:35:30 阅读154 评论0   字号:大中小 订阅 1.先设置管理中心的[常规设置]--上传文件大小, ...

  4. SpringMVC第二讲——传参、修改端口、请求转发、重定向、跨服务器文件上传

    传参 在地址栏?代表开始传参,用&来分隔变量 /*** 请求参数-简单传参* @param name* @param age* @return*/@RequestMapping("t ...

  5. 解决Tomcat文件上传超时问题.

    现象描述: 系统支持多文件分片上传,而且支持进度条实时更新.月底当用户集中大批量做文件上传时,文件经常上传到100%就会卡主.按F12打开管理控制台,报错:"XMLHttpRequest:网 ...

  6. 文件上传服务器经常超时,解决Tomcat文件上传超时问题.

    现象描述:web 系统支持多文件分片上传,并且支持进度条实时更新.月底当用户集中大批量作文件上传时,文件常常上传到100%就会卡主.按F12打开管理控制台,报错:"XMLHttpReques ...

  7. 上传文件大小限制,webconfig和IIS配置大文件上传

    IIS6下上传大文件没有问题,但是迁移到IIS7下面,上传大文件时,出现HTTP 404错误. IIS配置上传大小,webconfig <!-- 配置允许上传大小 --> <http ...

  8. Webshell文件上传漏洞和文件上传攻击相关梳理

    Webshell简介 webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门.黑客在入侵了一个网站后,通常会将asp或php后门文件与 ...

  9. 任意文件上传mysql_[代码审计]XiaoCms(后台任意文件上传至getshell,任意目录删除,会话固定漏洞)...

    0x00 前言 这段时间就一直在搞代码审计了.针对自己的审计方法做一下总结,记录一下步骤. 审计没他,基础要牢,思路要清晰,姿势要多且正. 下面是自己审计的步骤,正在逐步调整,寻求效率最高. 0x01 ...

最新文章

  1. nicstat命令安装与分析
  2. 编写一个头文件,头文件中定义一个宏cube(x)用于求一个数的平方
  3. Android自定义Seekbar拖动条式样
  4. java属性监听_Java event事件监听属性值变化 demo
  5. AcWing 499. 聪明的质监员
  6. UNIX(多线程):18---异步任务提供者(Provider) 介绍(续)
  7. STAT 7008 - Assignment Question 1 (hashtag analysis)
  8. Ruby Web实时消息后台服务器推送技术---GoEasy
  9. 华为一则面试题登上热搜;大众点评会员因点赞过多被处罚;Linux Kernel 5.12 发布|极客头条...
  10. Java、JS、C++ 依然强势,Go、Kotlin 等新语言为何不能破局?
  11. 监管码服务器维修,云风的 BLOG
  12. 使用IDEA创建Maven项目教程
  13. Spark SQL操作JSON字段小Tips
  14. linux钓鱼邮件,钓鱼邮件传播勒索病毒再升级,不落地加大查杀难度
  15. 本科毕业四年时间如何从月薪7k到年薪60w,讲下个人从菜鸟程序员到公司核心开发工程师的历程!
  16. Elasticsearch集群扩容踩坑记录
  17. Redis中Set数据类型常用命令了解
  18. apicloud学习笔记
  19. LeetCode HOT 100 --- 2021/7/30
  20. NC 完工报检单 推单 产成品入库单 批次问题

热门文章

  1. MyEclipse安装JS代码提示(Spket插件)
  2. 如何实现红帽企业虚拟化管理平台Host主机所在数据中心的切换
  3. 日志组件logback的介绍及配置使用方法(一)
  4. 最小栈设计并实现一个minstack类_栈相关
  5. c语言10个裁判,5个裁判可以对10个歌手进行打分,计算各个歌手的最终得分排列...
  6. 中国石油大学计算机控制实验,《计算机控制》实验讲义.doc
  7. Grafana WebHook 报警通知踩坑系列,支持报警截图发钉钉卡片报警!!!
  8. oracle长度字段,【转】Oracle中如何取一个字段的定义长度
  9. 兰州大学计算机调剂2020,兰州大学2020考研调剂公告
  10. python字符串最大长度_字符串String的最大长度