Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等

Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等

文章目录

  • Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等
  • 前言
  • 一、JDK安装
  • 二、tomcat
    • 1.安装
    • 2.tomcat目录结构
    • 3.tomcat启动
    • 4.tomcat web管理功能
    • 5.tomcat配置文件
    • 6.tomcat web站点部署
    • 7.tomcat虚拟主机
    • 8.动静分离
      • jk
  • 总结


前言

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

Tomcat和Nginx、Apache(httpd)、lighttpd等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Nginx/Apache服务器。


一、JDK安装

tomcat依赖于JDK工具包,JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
官网下载地址https://www.oracle.com/java/technologies/downloads/archive/
Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第1张图片
直接安装即可,如果使用压缩包安装则需要自己配置环境变量

# 解压安装JDK
mkdir -p /usr/java
tar xf jdk-8u60-linux-x64.tar.gz -C /usr/java
# 配置环境变量
vim /etc/profile.d/java.sh
JAVA_HOME=/usr/java/jdk1.8.0_60
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOMECLASSPATHPATH
# 测试
source /etc/profile.d/java.sh
java -version

Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第2张图片

二、tomcat

1.安装

tomcat官网地址:https://dlcdn.apache.org/tomcat/tomcat-8

[root@localhost ~]# wget -c https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.84/bin/apache-tomcat-8.5.84.tar.gz
[root@localhost ~]# ls
anaconda-ks.cfg  apache-tomcat-8.5.84.tar.gz  jdk-8u144-linux-x64.rpm
# 下载好后解压到/usr/local目录下
# tomcat解压就能使用
[root@localhost ~]# tar xf apache-tomcat-8.5.84.tar.gz -C /usr/local/
[root@localhost ~]# ls /usr/local/
apache-tomcat-8.5.84  bin  etc  games  include  lib  lib64  libexec  sbin  share  src
# 建立一个软连接
[root@localhost ~]# ln -sv /usr/local/apache-tomcat-8.5.84/ /usr/local/tomcat/usr/local/tomcat’ -> ‘/usr/local/apache-tomcat-8.5.84/’

软链接的好处:
1、减少输入
2、方便升级

2.tomcat目录结构

目录及其功能:

[root@localhost ~]# cd /usr/local/tomcat/
[root@localhost tomcat]# tree -L 1
.
├── bin	# 存放tomcat管理脚本,二进制文件
├── BUILDING.txt 
├── conf # tomcat配置文件存放目录
├── CONTRIBUTING.md
├── lib # web应用调用的jar包存放路径
├── LICENSE
├── logs # tomcat日志存放目录,catalina.out 为主要输出日志
├── NOTICE
├── README.md
├── RELEASE-NOTES
├── RUNNING.txt
├── temp # 存放临时文件
├── webapps # web程序存放目录
└── work # 存放编译产生的.java和.class文件

7 directories, 7 files
[root@localhost tomcat]# tree -L 1  /usr/local/tomcat/webapps/
/usr/local/tomcat/webapps/
├── docs # tomcat 帮助文档
├── examples # web应用实例
├── host-manager # 主机管理
├── manager # 管理
└── ROOT # 默认站点根目录

5 directories, 0 files
[root@localhost tomcat]# tree -L 1 /usr/local/tomcat/conf
/usr/local/tomcat/conf
├── catalina.policy
├── catalina.properties
├── context.xml
├── jaspic-providers.xml
├── jaspic-providers.xsd
├── logging.properties
├── server.xml # tomcat主配置文件
├── tomcat-users.xml # tomcat管理用户配置文件
├── tomcat-users.xsd
└── web.xml

0 directories, 10 files

3.tomcat启动

启动程序

[root@localhost tomcat]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
# 查看服务是否启动成功
# 查看进程
[root@localhost tomcat]# ps -ef | grep java
root       6752      1  3 14:51 pts/0    00:00:05 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root       6928   1445  0 14:53 pts/0    00:00:00 grep --color=auto java
# 可查看端口8080是否开启
[root@localhost tomcat]# netstat -lnupt | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      6752/java           

浏览器使用IP加端口即可访问默认主页
启动脚本

[root@localhost tomcat]# vi /usr/lib/systemd/system/tomcat.service

[Unit]
Description=Tomcat
After=network.target


[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true


[Install]
WantedBy=multi-user.target
# 保存后测试
[root@localhost tomcat]# systemctl daemon-reload
[root@localhost tomcat]# /usr/local/tomcat/bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
[root@localhost tomcat]# ps -ef | grep java
root       7740   1445  0 15:07 pts/0    00:00:00 grep --color=auto java
[root@localhost tomcat]# systemctl start tomcat
[root@localhost tomcat]# ps -ef | grep java
root       7769      1 99 15:07 ?        00:00:02 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root       7786   1445  0 15:07 pts/0    00:00:00 grep --color=auto java
[root@localhost tomcat]# systemctl stop tomcat
[root@localhost tomcat]# ps -ef | grep java
root       7846   1445  0 15:08 pts/0    00:00:00 grep --color=auto java

Tomcat日志–解决启动慢
发现耗时在这里:是session引起的随机数问题导致的。Tocmat的Session ID是通过SHA1算法计算得到的,计算Session ID的时候必须有一个密钥。为了提高安全性Tomcat在启动的时候会通过随机生成一个密钥。
查看是否有足够的熵来用于产生随机数

[root@localhost ~]# cat /proc/sys/kernel/random/entropy_avail 
282

推荐解决方法:

yum install rng-tools -y # 安装rngd服务(熵服务,增大熵池)
systemctl start rngd # 启动服务
systemctl enable rngd # 开机自启
[root@localhost~]# systemctl enable --now rngd
[root@localhost~]# cat /proc/sys/kernel/random/entropy_avail
2980

4.tomcat web管理功能

注意:不要在生产环境使用 ! ! !
Tomcat管理功能用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。在默认情况下是处于禁用状态的。如果需要开启这个功能,就需要配置管理用户。
Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第3张图片
报403错误,无法使用
Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第4张图片

1、配置tomcat-users.xml文件

[root@localhost conf]# vim /usr/local/tomcat/conf/tomcat-users.xml
"admin-gui"/>
"admin-script"/>
"manager-gui"/>
"manager-jmx"/>
"manager-script"/>
"manager-status"/>
"tomcat" password="tomcat" roles="admin-gui,manager-gui,managerjmx,manager-script,manager-status,admin-script"/>
</tomcat-users> #前面加上以上几行,注意,此句在文本末尾,且不要添加到注释里面去。

注意:不要在生产环境使用 ! ! !
2、允许访问Manager App

[root@localhost ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
"org.apache.catalina.valves.RemoteAddrValve"
       allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
       allow="^.*"/>#修改网段范围

3、允许访问Host Manager

[root@localhost ~]# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
"org.apache.catalina.valves.RemoteAddrValve"
       allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
       allow="^.*"/>#修改网段范围

修改完成后,重启tomcat;
登录即可(用户名密码都为tomcat)
Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第5张图片
注意:不要在生产环境使用 ! ! !

5.tomcat配置文件

server.xml组件类别:
顶级组件:位于整个配置的顶层,如server。
容器类组件:可以包含其它组件的组件,如service、engine、host、context。
连接器组件:连接用户请求至tomcat,如connector。
被嵌套类组件:位于一个容器当中,不能包含其他组件,如Valve、logger。

server.xml组件介绍:
engine:核心容器组件,catalina引擎,负责通过connector接收用户请求,并处理请求,将请求转至对应的虚拟主机host。
host:类似于httpd中的虚拟主机,一般而言支持基于FQDN的虚拟主机。
context:定义一个应用程序,是一个最内层的容器类组件(不能再嵌套)。配置context的主要目的指定对应对的webapp的根目录,类似于httpd的alias,其还能为webapp指定额外的属性,如部署方式等。
connector:接收用户请求,类似于httpd的listen配置监听端口的。
service(服务):将connector关联至engine,因此一个service内部可以有多个connector, 但只能有一个引擎engine。service内部有两个connector,一个 engine。因此,一般情况下一个server内部只有一个service,一个service内部只有一个engine,但一个 service内部可以有多个connector。
server:表示一个运行于JVM中的tomcat实例。
Valve:阀门,拦截请求并在将其转至对应的webapp前进行某种处理操作,可以用于任 何容器中,比如记录日志(access log valve)、基于IP做访问控制(remote address filter valve)。
logger:日志记录器,用于记录组件内部的状态信息,可以用于除context外的任何容器中。
realm:可以用于任意容器类的组件中,关联一个用户认证库,实现认证和授权。可以关联的认证库有两种:UserDatabaseRealm、MemoryRealm和JDBCRealm。
UserDatabaseRealm:使用JNDI自定义的用户认证库。
MemoryRealm:认证信息定义在tomcat-users.xml中。
JDBCRealm:认证信息定义在数据库中,并通过JDBC连接至数据库中查找认证用户。

Connector主要参数说明:

参数 参数说明
connector 接收用户请求,类似于httpd的listen配置监听端口.
port 指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求。
address 指定连接器监听的地址,默认为所有地址(即0.0.0.0)
protocol 连接器使用的协议,支持HTTP和A JP。A JP(Apache Jserv Protocol)专用于tomcat与apache建立通信的, 在httpd反向代理用户请求至tomcat时使用(可见Nginx反向代理时不可用A JP协议)。
minProcessors 服务器启动时创建的处理请求的线程数
maxProcessors 最大可以创建的处理请求的线程数
enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
connectionTimeout 指定超时的时间数(以毫秒为单位)

host参数说明:

参数 参数说明
host 表示一个虚拟主机
name 指定主机名
appBase 应用程序基本目录,即存放应用程序的目录.一般为appBase=“webapps” ,相对于CATALINA_HOME而言的,也可以写绝对路径。
unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
autoDeploy 在tomcat启动时,是否自动部署。
xmlValidation 是否启动xml的校验功能,一般xmlValidation=“false”。
xmlNamespaceAware 检测名称空间,一般xmlNamespaceAware=“false”。

context参数说明:

参数 参数说明
Context 表示一个web应用程序,通常为WAR文件
docBase 应用程序的路径或者是WAR文件存放的路径,也可以使用相对路径,起始路径为此Context所属Host中appBase定义的路径。
path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/
reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重启tomcat的情况下改变应用程序

6.tomcat web站点部署

通过两种方式,第一种方式是直接将程序目录放在webapps目录下面
第二种方式是使用开发工具将程序打包成war包,然后上传到webapps目录下面。

部署开源站点jpress
下载地址:https://github.com/JpressProjects/jpress

# 安装配置数据库
[root@bbs ~]# yum install mariadb-server -y
[root@bbs ~]# systemctl enable --now mariadb
[root@bbs ~]# mysql
MariaDB [(none)]> create database jpress default character set utf8;
MariaDB [(none)]> grant all on jpress.* to jpress@'localhost' identified by '123456';

接下来下载好war包后直接放在指定目录下即可,会自动解压

[root@bbs ~]# mv jpress-web-newest.war /usr/local/tomcat/webapps/
[root@bbs ~]# cd /usr/local/tomcat/webapps
[root@bbs webapps]# ll
total 20316
drwxr-x--- 15 root root     4096 Dec 26 10:27 docs
drwxr-x---  7 root root       99 Dec 26 10:27 examples
drwxr-x---  6 root root       79 Dec 26 10:27 host-manager
drwxr-x---  7 root root      102 Dec 26 14:35 jpress-web-newest
-rw-r--r--  1 root root 20797013 Oct 10 12:52 jpress-web-newest.war
drwxr-x---  6 root root      114 Dec 26 10:27 manager
drwxr-x---  3 root root      223 Dec 26 10:27 ROOT

浏览器访问 http://IP:8080/jpress-web-newest/install
Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第6张图片

安装完毕之后,重启tomcat即可访问
访问后台:http://IP:8080/jpress-web-newest/admin/login
Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第7张图片

7.tomcat虚拟主机

需修改server.xml文件

[root@localhost ~]# cd /usr/local/tomcat/conf/
# 备份
[root@localhost conf]# cp server.xml{,.bak}
[root@localhost conf]# vim server.xml

在命令模式下使用 / Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第8张图片

# 添加内容示例
      "www.a.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        "/web/a" path="" reloadable="flase" />
        "org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
      </Host>
      
      "www.b.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        "/web/b" path="" reloadable="flase" />
        "org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
      </Host>

虚拟主机目录与文件准备

[root@bbs conf]# mkdir -p /web/{a,b}
[root@bbs conf]# vim /web/a/index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

        
        JSP a page<<span class="token operator">/</span>title>
        <<span class="token operator">/</span>head>
        <body>
            <<span class="token operator">%</span> out<span class="token punctuation">.</span>println<span class="token punctuation">(</span><span class="token string">"Welocome to test site,http://www.a.com"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token operator">%</span>>
        <<span class="token operator">/</span>body>
<<span class="token operator">/</span>html>

<span class="token namespace">[root@bbs conf]</span><span class="token comment"># cp /web/a/index.jsp /web/b/</span>
<span class="token namespace">[root@bbs conf]</span><span class="token comment"># vim /web/b/index.jsp</span>

<<span class="token operator">%</span>@ page language=<span class="token string">"java"</span> import=<span class="token string">"java.util.*"</span> pageEncoding=<span class="token string">"UTF-8"</span><span class="token operator">%</span>>
<html>
        <head>
        <title>JSP a page<<span class="token operator">/</span>title>
        <<span class="token operator">/</span>head>
        <body>
            <<span class="token operator">%</span> out<span class="token punctuation">.</span>println<span class="token punctuation">(</span><span class="token string">"Welocome to test site,http://www.b.com"</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token operator">%</span>>
        <<span class="token operator">/</span>body>
<<span class="token operator">/</span>html>

<span class="token namespace">[root@bbs conf]</span><span class="token comment"># systemctl restart tomcat</span>
</code></pre> 
  <p>客户端hosts文件添加dns解析<br> (注:windows下hosts文件目录为C:\Windows\System32\drivers\etc\hosts)<br> tomcat_IP www.a.com www.b.com<br> 测试:<br> 使用域名:8080,即可访问<br> <a href="http://img.e-com-net.com/image/info8/6a8b79659072422787a01e7f70c84371.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/6a8b79659072422787a01e7f70c84371.jpg" alt="Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第9张图片" width="650" height="357" style="border:1px solid black;"></a></p> 
  <h2>8.动静分离</h2> 
  <p>虽然tomcat已经有了这些服务,但常引入 Apache 或者其他的一些专门的HTTP 服务器原因有下面几个:</p> 
  <ol> 
   <li>提升对静态文件的处理性能</li> 
   <li>利用 Web 服务器来做负载均衡以及容错</li> 
   <li>无缝的升级应用程序</li> 
  </ol> 
  <h3>jk</h3> 
  <p>这是最常见的方式。JK 是通过 AJP 协议与 Tomcat 服务器进行通讯的,Tomcat 默认的 AJP Connector 的端口是 8009。JK本身提供了一个监控以及管理的页面jkstatus,通过 jkstatus 可以监控 JK 目前的工作状态以及对到 tomcat 的连接进行设置。<br> 编译生成mod_jk模块<br> 在apache中加载mod_jk并对其进行配置<br> 在tomcat中修改配置以使其能接受mod_jk的转发<br> 编译生成mod_jk.so</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@bbs ~]</span><span class="token comment"># wget -c https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz --no-check-certificate</span>
<span class="token namespace">[root@bbs ~]</span><span class="token comment"># tar xf tomcat-connectors-1.2.48-src.tar.gz -C /usr/local/src/</span>
<span class="token namespace">[root@bbs ~]</span><span class="token comment"># cd /usr/local/src/tomcat-connectors-1.2.48-src/native/</span>
<span class="token namespace">[root@bbs native]</span><span class="token comment"># yum install httpd-devel -y</span>
<span class="token namespace">[root@bbs native]</span><span class="token comment"># yum install gcc gcc-c++ make -y</span>
<span class="token namespace">[root@bbs native]</span><span class="token comment"># ./configure --with-apxs</span>
<span class="token namespace">[root@bbs native]</span><span class="token comment"># make && make install</span>
<span class="token comment"># 查看是否编译成功</span>
<span class="token namespace">[root@bbs ~]</span><span class="token comment"># find / -name mod_jk.so</span>
<span class="token operator">/</span>usr/lib64/httpd/modules/mod_jk<span class="token punctuation">.</span>so
<span class="token operator">/</span>usr/local/src/tomcat-connectors-1<span class="token punctuation">.</span>2<span class="token punctuation">.</span>48-src/native/apache-2<span class="token punctuation">.</span>0/<span class="token punctuation">.</span>libs/mod_jk<span class="token punctuation">.</span>so
<span class="token operator">/</span>usr/local/src/tomcat-connectors-1<span class="token punctuation">.</span>2<span class="token punctuation">.</span>48-src/native/apache-2<span class="token punctuation">.</span>0/mod_jk<span class="token punctuation">.</span>so

</code></pre> 
  <p>创建测试页面</p> 
  <pre><code class="prism language-powershell"><span class="token comment"># 静态页面</span>
<span class="token namespace">[root@bbs ~]</span><span class="token comment"># vim /var/www/html/index.html</span>
<h1>static_page_from_apache<<span class="token operator">/</span>h1>
<span class="token namespace">[root@bbs ~]</span><span class="token comment"># vim /usr/local/tomcat/webapps/ROOT/test.jsp</span>
<h1>dynamic_page_from_tomcat<<span class="token operator">/</span>h1>
<span class="token namespace">[root@bbs ~]</span><span class="token comment"># systemctl restart httpd</span>
</code></pre> 
  <p>通过浏览器访问IP可得到静态测试界面,IP:8080/test.jsp可查看到动态测试页面<br> <a href="http://img.e-com-net.com/image/info8/5306cb71a1c649d09d7bf2f987db61fd.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/5306cb71a1c649d09d7bf2f987db61fd.jpg" alt="Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第10张图片" width="650" height="430" style="border:1px solid black;"></a><br> 当然用域名访问也是一样的<br> <a href="http://img.e-com-net.com/image/info8/db3d4e1466c348feb90037a69729862d.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/db3d4e1466c348feb90037a69729862d.jpg" alt="Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第11张图片" width="650" height="217" style="border:1px solid black;"></a><br> 配置jk模块</p> 
  <pre><code class="prism language-powershell"><span class="token comment"># 官方模板文件位置</span>
<span class="token namespace">[root@bbs ~]</span><span class="token comment"># cd /usr/local/src/tomcat-connectors-1.2.48-src/conf/</span>
<span class="token namespace">[root@bbs conf]</span><span class="token comment"># ll</span>
total 20
<span class="token operator">-</span>rw-r-<span class="token operator">-</span>r-<span class="token operator">-</span> 1 root bin 4924 Feb 21  2020 httpd-jk<span class="token punctuation">.</span>conf
<span class="token operator">-</span>rw-r-<span class="token operator">-</span>r-<span class="token operator">-</span> 1 root bin 1461 Feb 21  2020 uriworkermap<span class="token punctuation">.</span>properties
<span class="token operator">-</span>rw-r-<span class="token operator">-</span>r-<span class="token operator">-</span> 1 root bin 5963 Feb 21  2020 workers<span class="token punctuation">.</span>properties
</code></pre> 
  <p>JK 的配置最关键的三个文件,分别是<br> httpd.conf:Apache 服务器的配置文件,用来加载 JK 模块以及指定 JK 配置文件信息<br> workers.properties:到 Tomcat 服务器的连接定义文件<br> uriworkermap.properties:URI 映射文件,用来指定哪些 URL 由 Tomcat 处理,你也可以直接在httpd.conf 中配置这些 URI,但是独立这些配置的好处是 JK 模块会定期更新该文件的内容,使得我们修改配置的时候无需重新启动 Apache 服务器。</p> 
  <p><a href="http://img.e-com-net.com/image/info8/84ad99cf069d4930ac0f3f0f24ac7cf9.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/84ad99cf069d4930ac0f3f0f24ac7cf9.jpg" alt="Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第12张图片" width="650" height="540" style="border:1px solid black;"></a></p> 
  <pre><code class="prism language-powershell"><span class="token comment"># 创建相关的配置文件</span>
<span class="token namespace">[root@bbs conf]</span><span class="token comment"># vim /etc/httpd/conf.d/mod_jk.conf </span>

<span class="token comment">#JkWorkersFile 路径根据实际情况填写</span>
JkWorkersFile conf/workers<span class="token punctuation">.</span>properties
<span class="token comment"># Where to put jk logs</span>
JkLogFile <span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>log/httpd/mod_jk<span class="token punctuation">.</span>log
<span class="token comment"># Set the jk log level [debug/error/info]</span>
JkLogLevel info
<span class="token comment"># Select the log format</span>
JkLogStampFormat <span class="token string">"[%a %b %d %H:%M:%S %Y]"</span>
<span class="token comment"># JkOptions indicate to send SSL KEY SIZE,</span>
JkOptions <span class="token operator">+</span>ForwardKeySize <span class="token operator">+</span>ForwardURICompatUnparsed <span class="token operator">-</span>ForwardDirectories
<span class="token comment"># JkRequestLogFormat set the request format</span>
JkRequestLogFormat <span class="token string">"%w %V %T"</span>
<span class="token comment">#根据实际情况自己定义即可,就是将什么样的请求转发给worker1处理</span>
<span class="token comment">#JkMount /* worker1</span>
JkMount <span class="token operator">/</span><span class="token operator">*</span><span class="token punctuation">.</span>jsp worker1
JkMount <span class="token operator">/</span>servlet/<span class="token operator">*</span> worker1
JkMount <span class="token operator">/</span><span class="token operator">*</span><span class="token punctuation">.</span><span class="token keyword">do</span> worker1
JkMount <span class="token operator">/</span><span class="token operator">*</span><span class="token punctuation">.</span>action worker1
<span class="token comment">#JkMount /*.class worker1</span>
<span class="token comment">#JkMount /*.jar worker1</span>
JkMount <span class="token operator">/</span>jkstatus status

<span class="token namespace">[root@bbs conf]</span><span class="token comment"># vim /etc/httpd/conf/workers.properties</span>

<span class="token comment">#路径根据实际情况修改</span>
workers<span class="token punctuation">.</span>tomcat_home=<span class="token operator">/</span>usr/local/tomcat/
workers<span class="token punctuation">.</span>java_home=<span class="token operator">/</span>usr/java/jdk1<span class="token punctuation">.</span>8<span class="token punctuation">.</span>0_144

worker<span class="token punctuation">.</span>list=worker1
<span class="token comment"># Set properties for worker1 下面的都可以不用修改,感兴趣可以搜索相关含义</span>
worker<span class="token punctuation">.</span>worker1<span class="token punctuation">.</span><span class="token function">type</span>=ajp13
worker<span class="token punctuation">.</span>worker1<span class="token punctuation">.</span>host=localhost
worker<span class="token punctuation">.</span>worker1<span class="token punctuation">.</span>port=8009
worker<span class="token punctuation">.</span>worker1<span class="token punctuation">.</span>lbfactor=50
<span class="token comment">#worker.worker1.cachesize=10</span>
<span class="token comment">#worker.worker1.cache_timeout=600</span>
<span class="token comment">#worker.worker1.socket_keepalive=1</span>
<span class="token comment">#worker.worker1.socket_timeout=300</span>
worker<span class="token punctuation">.</span>list = status
worker<span class="token punctuation">.</span>status<span class="token punctuation">.</span><span class="token function">type</span>=status

</code></pre> 
  <p>注意,8009端口默认关闭,需手动打开</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@bbs conf]</span><span class="token comment"># netstat -lnupt | grep 8009</span>
<span class="token namespace">[root@bbs conf]</span><span class="token comment"># cd /usr/local/tomcat/conf</span>
<span class="token namespace">[root@bbs conf]</span><span class="token comment"># vim server.xml</span>
<span class="token comment"># /8009 搜索端口,删除注释即可</span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/65155c9428924813bbd0f620da9406fc.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/65155c9428924813bbd0f620da9406fc.jpg" alt="Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第13张图片" width="650" height="139" style="border:1px solid black;"></a><br> 重启tomcat</p> 
  <p><strong>tomcat8.5.84版本经测试失败 -_-<br> 回退到8.5.20版本测试成功</strong><br> <a href="http://img.e-com-net.com/image/info8/1268b08831754b88b065d8193a28bc18.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/1268b08831754b88b065d8193a28bc18.jpg" alt="Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第14张图片" width="650" height="374" style="border:1px solid black;"></a><br> 8.5.20版本默认8009端口打开,无需更改<br> 无需加端口即可直接访问<br> JK 本身提供了一个监控以及管理的页面 jkstatus,通过 jkstatus 可以监控 JK 目前的工作状态以及对到tomcat 的连接进行设置,如下图所示:<br> <a href="http://img.e-com-net.com/image/info8/92a6cb021d5f4f168c4c83eae095dfa9.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/92a6cb021d5f4f168c4c83eae095dfa9.jpg" alt="Tomcat8安装,配置启动脚本,简单目录结构介绍,web部署,虚拟主机等_第15张图片" width="650" height="490" style="border:1px solid black;"></a><br> 至此,tomcat的一些基本内容就大致了解完毕了</p> 
  <hr> 
  <h1>总结</h1> 
  <p>tomcat从安装到基本的了解和使用,以及web站点的配置部署等。<br> (本文为作者简单学习笔记,若有错误之处,感谢大佬指正!)</p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1686723584099168256"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(高级运维,tomcat)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1835263643080552448.htm"
                           title="Tomcat 中 catalina.out、catalina.log、localhost.log 和 access_log 的区别" target="_blank">Tomcat 中 catalina.out、catalina.log、localhost.log 和 access_log 的区别</a>
                        <span class="text-muted">金色888</span>

                        <div>打开Tomcat安装目录中的log文件夹,我们可以看到很多日志文件,这篇文章就来介绍下这些日记文件的具体区别。catalina.out日志#catalina.out日志文件是Tomcat的标准输出(stdout)和标准出错(stderr)输出的“目的地”。我们在应用里使用System.out打印的内容都会输出到这个日志文件中。另外,如果我们在应用里使用其他的日志框架,配置了向Console输出日志</div>
                    </li>
                    <li><a href="/article/1835195687143305216.htm"
                           title="10- 【JavaWeb】Tomcat、Servlet基础" target="_blank">10- 【JavaWeb】Tomcat、Servlet基础</a>
                        <span class="text-muted">weixin_44329069</span>
<a class="tag" taget="_blank" href="/search/JavaWeb/1.htm">JavaWeb</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>1.MacOS配置Tomcat服务器教程MacOS配置Tomcat服务器教程2.Servlet基础1.创建ServletServlet是一个扩展服务器功能的Java类,主要用于处理HTTP请求。以下是一个简单的Servlet示例:importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.an</div>
                    </li>
                    <li><a href="/article/1835063024088608768.htm"
                           title="【网络安全 | 代码审计】JFinal之DenyAccessJsp绕过" target="_blank">【网络安全 | 代码审计】JFinal之DenyAccessJsp绕过</a>
                        <span class="text-muted">秋说</span>
<a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/1.htm">代码审计</a><a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E6%8C%96%E6%8E%98/1.htm">漏洞挖掘</a>
                        <div>未经许可,不得转载。文章目录前言代码审计推理绕过Tomcat解析JSP总结概念验证阐发前言JFinal是一个基于Java的轻量级MVC框架,用于快速构建Web应用程序。它的设计理念是追求极简、灵活、高效,旨在提高开发效率,减少冗余代码的编写,适合中小型项目以及对性能有较高要求的项目。在较新的JFinal版本中,默认情况下无法直接通过浏览器地址栏输入.jsp文件名来访问对应的JSP文件。也就是说,主</div>
                    </li>
                    <li><a href="/article/1834997707001917440.htm"
                           title="15:00面试,15:06就出来了,问的问题有点变态。。" target="_blank">15:00面试,15:06就出来了,问的问题有点变态。。</a>
                        <span class="text-muted">2401_86640859</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a>
                        <div>应该考虑进行如何测试的测试方法怎样估计测试工作量?测试设计的问题当测试过程发生错误时,有哪几种解决办法?测试执行的问题测试评估的目标如何提高测试?C/S模式的优点和缺点B/S模式的优点和缺点…Linuxgrep和find的区别?grep都有哪些用法?查看IP地址?创建和删除一个多级目录?在当前用户家目录中查找haha.txt文件?如何查询出tomcat的进程并杀掉这个进程,写出linux命令?动态</div>
                    </li>
                    <li><a href="/article/1834989767712927744.htm"
                           title="【漏洞分享】2018年-2024年HVV 6000+个漏洞 POC 合集分享" target="_blank">【漏洞分享】2018年-2024年HVV 6000+个漏洞 POC 合集分享</a>
                        <span class="text-muted">漏洞文库-Web安全</span>
<a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/1.htm">漏洞复现</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a>
                        <div>此份poc集成了Zabbix、用友、通达、Wordpress、Thinkcmf、Weblogic、Tomcat等下载链接:链接:https://pan.quark.cn/s/1cd7d8607b8a</div>
                    </li>
                    <li><a href="/article/1834976148157722624.htm"
                           title="[附源码]SSM计算机毕业设计游戏账号交易平台JAVA" target="_blank">[附源码]SSM计算机毕业设计游戏账号交易平台JAVA</a>
                        <span class="text-muted">计算机程序源码</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                        <div>项目运行环境配置:Jdk1.8+Tomcat7.0+Mysql+HBuilderX(Webstorm也行)+Eclispe(IntelliJIDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:SSM+mybatis+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.ID</div>
                    </li>
                    <li><a href="/article/1834967570235617280.htm"
                           title="【漏洞利用】2018年-2024年HVV 6000+个漏洞 POC 合集分享" target="_blank">【漏洞利用】2018年-2024年HVV 6000+个漏洞 POC 合集分享</a>
                        <span class="text-muted">baiolkdnhjaio</span>
<a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0/1.htm">漏洞复现</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8/1.htm">网络安全</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>此份poc集成了Zabbix、用友、通达、Wordpress、Thinkcmf、Weblogic、Tomcat等下载链接:链接:https://pan.quark.cn/s/1cd7d8607b8a</div>
                    </li>
                    <li><a href="/article/1834897607902720000.htm"
                           title="Python+Django毕业设计校园易购二手交易平台(程序+LW+部署)" target="_blank">Python+Django毕业设计校园易购二手交易平台(程序+LW+部署)</a>
                        <span class="text-muted">Python、JAVA毕设程序源码</span>
<a class="tag" taget="_blank" href="/search/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                        <div>项目运行环境配置:Jdk1.8+Tomcat7.0+Mysql+HBuilderX(Webstorm也行)+Eclispe(IntelliJIDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:SSM+mybatis+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.ID</div>
                    </li>
                    <li><a href="/article/1834838487434620928.htm"
                           title="Java Spring Boot 全面教程" target="_blank">Java Spring Boot 全面教程</a>
                        <span class="text-muted">极客代码</span>
<a class="tag" taget="_blank" href="/search/%E7%8E%A9%E8%BD%ACJava/1.htm">玩转Java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>一、SpringBoot简介与环境搭建1.1SpringBoot简介SpringBoot是一种基于Java的开源框架,由PivotalSoftware开发,旨在简化新Spring应用程序的初始化、配置和部署过程。它遵循约定优于配置的原则,通过内嵌的Tomcat、Jetty或Undertow等容器,使得开发者能够快速构建独立运行的、生产级别的基于Spring框架的应用程序。SpringBoot包含了</div>
                    </li>
                    <li><a href="/article/1834837856024096768.htm"
                           title="【LINUX】在ubuntu中安装tomcat" target="_blank">【LINUX】在ubuntu中安装tomcat</a>
                        <span class="text-muted">缘起性本空</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>#instaljdkaptinstallopenjdk-8-jdk-y#enterinstallpathcd/home/a/#copytomcatpackagecp/mnt/hgfs/Share/apache-tomcat-9.0.93.tar.gz.#unpresstomcatpackagetar-xfapache-tomcat-9.0.93.tar.gz#enterbinpathcdapach</div>
                    </li>
                    <li><a href="/article/1834781256492085248.htm"
                           title="idea 启动tomcat 工程_使用IDEA创建JavaWeb项目 部署本地tomcat并运行" target="_blank">idea 启动tomcat 工程_使用IDEA创建JavaWeb项目 部署本地tomcat并运行</a>
                        <span class="text-muted">心在天上脚在地上</span>
<a class="tag" taget="_blank" href="/search/idea/1.htm">idea</a><a class="tag" taget="_blank" href="/search/%E5%90%AF%E5%8A%A8tomcat/1.htm">启动tomcat</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E7%A8%8B/1.htm">工程</a>
                        <div>一、下载商业版IDEA二、新建JavaWeb项目1、在菜单栏找到File>>New>>Project2、在弹出的窗口中找到JavaEnterPrise>>WebApplication,点击Next3、填写项目名称,选择项目位置,然后Finish4、在左侧窗口可以看到IDEA创建JavaWeb工程的目录结构,在src中写java代码,在web目录下放jsp页面。三、下载tomacat下载完成后,解压</div>
                    </li>
                    <li><a href="/article/1834727038322307072.htm"
                           title="javaweb基于ssm框架学生信息管理(成绩)系统设计与实现" target="_blank">javaweb基于ssm框架学生信息管理(成绩)系统设计与实现</a>
                        <span class="text-muted">ancen_73bd</span>

                        <div>开发平台、开发工具、应用服务器的介绍开发平台:Windows开发工具:idea+mySql应用服务器:ApacheTomcat8.0学生成绩管理系统主要用于学校学生成绩信息管理,能实现学生、老师、院系、班级、课程的增删改查操作,同时学生能进行选课和退课操作,老师能对学生的成绩录入和修改操作。系统流程图功能结构图部分截图免费源码获得:扫码关注微信公众号:ancenok,然后回复:013</div>
                    </li>
                    <li><a href="/article/1834553865958158336.htm"
                           title="CentOS 运维常用的shell脚本" target="_blank">CentOS 运维常用的shell脚本</a>
                        <span class="text-muted">一碗情深</span>
<a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>文章目录一、操作系统磁盘空间查看实时获取系统运行状态获取cpu、内存等系统运行状态获取系统信息二、应用程序获取进程运行状态查看有多少远程的IP在连接本机三、用户管理统计当前Linux系统中可以登录计算机的账户有多少个创建用户四、自动化管理自动备份日志文件监控的页面地址,对tomcat状态进行重启或维护实时监控本机内存和硬盘,剩余空间不足发送报警邮件一、操作系统磁盘空间查看disk_info.shd</div>
                    </li>
                    <li><a href="/article/1834515036731699200.htm"
                           title="旅游网站设计与实现:SpringBoot框架案例分析" target="_blank">旅游网站设计与实现:SpringBoot框架案例分析</a>
                        <span class="text-muted">2401_85763803</span>
<a class="tag" taget="_blank" href="/search/%E6%97%85%E6%B8%B8/1.htm">旅游</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>目录摘要2Abstract31.1课题开发的背景41.2课题研究的意义41.3研究内容5第二章系统开发关键技术62.1JSP技术介绍62.2JAVA简介62.3MyEclipse开发环境72.4Tomcat服务器72.5SpringBoot框架72.6MySQL数据库8第三章系统分析93.1系统可行性研究93.2性能分析103.3业务流程分析10第四章系统的总体设计134.1系统功能结构设计134</div>
                    </li>
                    <li><a href="/article/1834477496205144064.htm"
                           title="手写Tomcat" target="_blank">手写Tomcat</a>
                        <span class="text-muted">Fix12138</span>

                        <div>需求分析根据Tomcat的基本功能分析,基本需求包括:监听端口,接受外部请求多线程并发处理多个请求解析HTTP请求,根据URL找到对应的Servlet扫描Web目录,解析web.xml配置,加载开发者实现的Servlet类,生成对象并调用其service方法得到response返回给客户端代码实现接受请求的服务端通过scoket监听端口,将接受到的请求提交到线程池处理。线程池中的任务为具体的处理逻</div>
                    </li>
                    <li><a href="/article/1834341838018932736.htm"
                           title="Springboot下自定义监听器的使用" target="_blank">Springboot下自定义监听器的使用</a>
                        <span class="text-muted">bugdaybyday</span>
<a class="tag" taget="_blank" href="/search/SpringCloud/1.htm">SpringCloud</a>
                        <div>Servlet和Springboot的关系springboot三大特性:组件自动装配:webMVC、webFlux、JDBC等(@EnableAutoConfiguration,@Configuration)嵌入式Web容器:Tomcat、Jetty以及undertow(简单说下我的理解,Spring的核心功能是IOC和DI。那么web部分,在springboot中肯定是做嵌入式的集成。Sprin</div>
                    </li>
                    <li><a href="/article/1834325189882638336.htm"
                           title="Redis高可用" target="_blank">Redis高可用</a>
                        <span class="text-muted">確定饿的猫</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>目录持久化主从复制哨兵Cluster集群RDB持久化手动触发自动触发RDB执行流程RDB载入AOF持久化执行流程命令追加文件写入和文件同步appendfsyncalwaysappendfsyncnoappendfsynceverysecond文件重写文件重写流程载入对比nginx、tomcat、mysql等服务都具有预防单点故障、提高整体性能和安全性的功能,当然,Redis也不例外在Redis中,</div>
                    </li>
                    <li><a href="/article/1834317373977489408.htm"
                           title="[java][tomcat]监控远程的tomcat" target="_blank">[java][tomcat]监控远程的tomcat</a>
                        <span class="text-muted">awonw</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>监控远程的tomcat想要监控远程的tomcat,就需要在远程的tomcat进行对JMX配置,方法如下:#在tomcat的bin目录下,修改catalina.sh,添加如下的参数JAVA_OPTS="‐Dcom.sun.management.jmxremote‐Dcom.sun.management.jmxremote.port=38580‐Dcom.sun.management.jmxremot</div>
                    </li>
                    <li><a href="/article/1834307039799635968.htm"
                           title="架构面试题" target="_blank">架构面试题</a>
                        <span class="text-muted">路飞的影子</span>
<a class="tag" taget="_blank" href="/search/%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/1.htm">个人总结</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86/1.htm">相关知识</a>
                        <div>面试准备:问题:Spring和SringBoot有什么区别答:1.SpringBoot可以建立独立的Spring应用程序;2.内嵌了如Tomcat,Jetty和Undertow这样的容器,也就是说可以直接跑起来,用不着再做部署工作了。3.无需再像Spring那样搞一堆繁琐的xml文件的配置;4.可以自动配置Spring;5.提供了一些现有的功能,如量度工具,表单数据验证以及一些外部配置这样的一些第</div>
                    </li>
                    <li><a href="/article/1834286744237862912.htm"
                           title="JavaEE简介" target="_blank">JavaEE简介</a>
                        <span class="text-muted">晚睡早起₍˄·͈༝·͈˄*₎◞ ̑̑</span>
<a class="tag" taget="_blank" href="/search/java-ee/1.htm">java-ee</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>JavaEE是java的企业级版本,可以用来开发BS结构应用程序。开发javaEE应用程序需要的工具:JDK(JavaSE环境)Web服务器(JavaEE环境)2.1.Tomcat服务器2.1.1.安装Tomcat服务器双击“apache-tomcat-8.5.55.exe”进行安装。安装完毕后,配置Tomcat环境变量。○CATALINA_HOME:Tomcat安装路径○PATH:%CATALI</div>
                    </li>
                    <li><a href="/article/1834135619190747136.htm"
                           title="springboot工作流程" target="_blank">springboot工作流程</a>
                        <span class="text-muted">月阴荒</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>springboot的工作流程:1.手动运行启动类BootApplication.java,同时启动内置tomcat2.注解@MapperScan(“com.xly.dao”)读取到dao层3.加载配置文件,读取端口号,建立JDBC连接,读取到dao层的Mapper配置文件等其他配置4.dao层之后的Service,Controller正常走Spring加载流程5.Service自动装配记录dao</div>
                    </li>
                    <li><a href="/article/1833958132041216000.htm"
                           title="IDEA配置tomcat所选目录不是有效的 tomcat 主目录" target="_blank">IDEA配置tomcat所选目录不是有效的 tomcat 主目录</a>
                        <span class="text-muted">alike_meng</span>
<a class="tag" taget="_blank" href="/search/%E5%B0%8F%E6%93%8D%E4%BD%9C/1.htm">小操作</a><a class="tag" taget="_blank" href="/search/intellij-idea/1.htm">intellij-idea</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>theselecteddirectoryisnotavalidtomcathome可能是因为IDEA对tomcat所在文件夹的访问权限不够。用管理员权限打开一次IDEA就没问题了,下次打开也不用管理员权限也没问题。</div>
                    </li>
                    <li><a href="/article/1833958132762636288.htm"
                           title="tomcat启动报错 Failed to introspect Class [org.mybatis.spring.SqlSessionFactoryBean]" target="_blank">tomcat启动报错 Failed to introspect Class [org.mybatis.spring.SqlSessionFactoryBean]</a>
                        <span class="text-muted">alike_meng</span>
<a class="tag" taget="_blank" href="/search/%E5%B0%8F%E6%93%8D%E4%BD%9C/1.htm">小操作</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                        <div>java.lang.IllegalStateException:FailedtointrospectClass[org.mybatis.spring.SqlSessionFactoryBean]fromClassLoader[ParallelWebappClassLoaderpom.xml里面的一些依赖不兼容。我之前都是用的最新版的依赖,就报这个错。然后所有依赖都改成了跟教学视频一样的版本就不报错</div>
                    </li>
                    <li><a href="/article/1833882981043892224.htm"
                           title="银河麒麟V10 设置MySQL、Tomcat开机自启" target="_blank">银河麒麟V10 设置MySQL、Tomcat开机自启</a>
                        <span class="text-muted">还在学习的孔先生</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a>
                        <div>文章目录前言一、MySQL开机自启1.创建服务配置文件2.编写文件内容3.设置文件权限4.重载systemd配置,并设置开机自启注:服务器环境下也可使用chkconfig创建开机启动二、Tomcat开机自启1.创建启动文件2.编辑启动文件3.保存启动文件前言银河麒麟系统V10,MySQL及Tomcat离线安装完成后,不能开机自启,需编写开机自启配置文件。用systemctl管理。一、MySQL开机</div>
                    </li>
                    <li><a href="/article/1833780868104155136.htm"
                           title="nginx配置负载均衡的几种方式" target="_blank">nginx配置负载均衡的几种方式</a>
                        <span class="text-muted">itbigold</span>
<a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/1.htm">负载均衡</a>
                        <div>1,轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。   #反向代理配置   upstreamserver_list{    #这个是tomcat的访问路径    serverlocalhost:8080;    serverlocalhost:9999;   }   server{       listen   80;       server_n</div>
                    </li>
                    <li><a href="/article/1833697143169314816.htm"
                           title="信创那些事儿——Spring Boot中集成东方通中间件(TongWeb)" target="_blank">信创那些事儿——Spring Boot中集成东方通中间件(TongWeb)</a>
                        <span class="text-muted">北欧人写代码</span>
<a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>在SpringBoot中集成东方通中间件(如TongWeb作为Servlet容器)通常涉及几个步骤,但需要注意的是,TongWeb本身是一个独立的JavaEE应用服务器,而不是像Tomcat那样可以直接嵌入到SpringBoot应用中的中间件。因此,集成通常意味着将SpringBoot应用打包为WAR文件并部署到TongWeb服务器上。以下是在SpringBoot中集成东方通中间件(以TongWe</div>
                    </li>
                    <li><a href="/article/1833688442979053568.htm"
                           title="SpringBoot学习(16)上传文件" target="_blank">SpringBoot学习(16)上传文件</a>
                        <span class="text-muted">星河漫漫l</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E5%BC%80%E5%8F%91/1.htm">运维开发</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                        <div>1、pom包配置我们使用SpringBoot版本2.1.0、jdk1.8、tomcat8.0。org.springframework.bootspring-boot-starter-parent2.1.0.RELEASE1.8org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-star</div>
                    </li>
                    <li><a href="/article/1833592374752800768.htm"
                           title="如何下载各个版本的tomcat-比如tomcat9" target="_blank">如何下载各个版本的tomcat-比如tomcat9</a>
                        <span class="text-muted">耳边轻语999</span>
<a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>1,找到tomcat官网https://tomcat.apache.org/ApacheTomcat®-Welcome!找到tomcat9,或者archives1.1,找到对应版本1.2,找到小版本1.3,找到bin2,Indexof/dist/tomcat/tomcat-9/v9.0.39/bin2.1,下载对应的解压版本或者安装版本</div>
                    </li>
                    <li><a href="/article/1833549086708559872.htm"
                           title="Nginx" target="_blank">Nginx</a>
                        <span class="text-muted">砌月东谷</span>

                        <div>一、Nginx简介1.Nginx是什么??Nginx(enginex)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器?Nginx可以作为一个Web服务器进行网站的发布,也可以作为反向代理服务器进行负载均衡的实现?常见的Web服务器:Tomcat、Apache、Nginx、Weblogic等2.特点占用内存少、并发能力强二、搭建Nginx环境1.安装nginx?两</div>
                    </li>
                    <li><a href="/article/1833522405868400640.htm"
                           title="Tomcat与JDK版本对应关系,Tomcat各版本特性" target="_blank">Tomcat与JDK版本对应关系,Tomcat各版本特性</a>
                        <span class="text-muted">2401_84048671</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>ApacheTomcat8.xApacheTomcat7.xApacheTomcat6.xApacheTomcat是一个开源软件实现了JavaServlet和JavaServerPages技术。不同版本的Servlet和JSP规范可使用不同版本的ApacheTomcat。Tomcat与JDK版本对应关系为:|Servlet规格|JSP规范|EL规格|WebSocket规范|JASPIC规格|Apa</div>
                    </li>
                                <li><a href="/article/50.htm"
                                       title="java封装继承多态等" target="_blank">java封装继承多态等</a>
                                    <span class="text-muted">麦田的设计者</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/encapsulatopn/1.htm">encapsulatopn</a>
                                    <div>       最近一段时间看了很多的视频却忘记总结了,现在只能想到什么写什么了,希望能起到一个回忆巩固的作用。 
    1、final关键字 
      译为:最终的 
       &</div>
                                </li>
                                <li><a href="/article/177.htm"
                                       title="F5与集群的区别" target="_blank">F5与集群的区别</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/weblogic/1.htm">weblogic</a><a class="tag" taget="_blank" href="/search/%E9%9B%86%E7%BE%A4/1.htm">集群</a><a class="tag" taget="_blank" href="/search/F5/1.htm">F5</a>
                                    <div>        http请求配置不是通过集群,而是F5;集群是weblogic容器的,如果是ejb接口是通过集群。 
        F5同集群的差别,主要还是会话复制的问题,F5一把是分发http请求用的,因为http都是无状态的服务,无需关注会话问题,类似</div>
                                </li>
                                <li><a href="/article/304.htm"
                                       title="LeetCode[Math] - #7 Reverse Integer" target="_blank">LeetCode[Math] - #7 Reverse Integer</a>
                                    <span class="text-muted">Cwind</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a><a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a>
                                    <div>原题链接:#7 Reverse Integer 
  
要求: 
按位反转输入的数字 
例1: 输入 x = 123, 返回 321 
例2: 输入 x = -123, 返回 -321 
  
难度:简单 
  
分析: 
对于一般情况,首先保存输入数字的符号,然后每次取输入的末位(x%10)作为输出的高位(result = result*10 + x%10)即可。但</div>
                                </li>
                                <li><a href="/article/431.htm"
                                       title="BufferedOutputStream" target="_blank">BufferedOutputStream</a>
                                    <span class="text-muted">周凡杨</span>

                                    <div>     首先说一下这个大批量,是指有上千万的数据量。 
     例子: 
     有一张短信历史表,其数据有上千万条数据,要进行数据备份到文本文件,就是执行如下SQL然后将结果集写入到文件中! 
     select t.msisd</div>
                                </li>
                                <li><a href="/article/558.htm"
                                       title="linux下模拟按键输入和鼠标" target="_blank">linux下模拟按键输入和鼠标</a>
                                    <span class="text-muted">被触发</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>查看/dev/input/eventX是什么类型的事件, cat /proc/bus/input/devices 
设备有着自己特殊的按键键码,我需要将一些标准的按键,比如0-9,X-Z等模拟成标准按键,比如KEY_0,KEY-Z等,所以需要用到按键 模拟,具体方法就是操作/dev/input/event1文件,向它写入个input_event结构体就可以模拟按键的输入了。 
 
linux/in</div>
                                </li>
                                <li><a href="/article/685.htm"
                                       title="ContentProvider初体验" target="_blank">ContentProvider初体验</a>
                                    <span class="text-muted">肆无忌惮_</span>
<a class="tag" taget="_blank" href="/search/ContentProvider/1.htm">ContentProvider</a>
                                    <div>ContentProvider在安卓开发中非常重要。与Activity,Service,BroadcastReceiver并称安卓组件四大天王。 
在android中的作用是用来对外共享数据。因为安卓程序的数据库文件存放在data/data/packagename里面,这里面的文件默认都是私有的,别的程序无法访问。 
如果QQ游戏想访问手机QQ的帐号信息一键登录,那么就需要使用内容提供者COnte</div>
                                </li>
                                <li><a href="/article/812.htm"
                                       title="关于Spring MVC项目(maven)中通过fileupload上传文件" target="_blank">关于Spring MVC项目(maven)中通过fileupload上传文件</a>
                                    <span class="text-muted">843977358</span>
<a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/spring+mvc/1.htm">spring mvc</a><a class="tag" taget="_blank" href="/search/%E4%BF%AE%E6%94%B9%E5%A4%B4%E5%83%8F/1.htm">修改头像</a><a class="tag" taget="_blank" href="/search/%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6/1.htm">上传文件</a><a class="tag" taget="_blank" href="/search/upload/1.htm">upload</a>
                                    <div>Spring MVC 中通过fileupload上传文件,其中项目使用maven管理。 
  
1.上传文件首先需要的是导入相关支持jar包:commons-fileupload.jar,commons-io.jar 
因为我是用的maven管理项目,所以要在pom文件中配置(每个人的jar包位置根据实际情况定) 
<!-- 文件上传 start by zhangyd-c --&g</div>
                                </li>
                                <li><a href="/article/939.htm"
                                       title="使用svnkit api,纯java操作svn,实现svn提交,更新等操作" target="_blank">使用svnkit api,纯java操作svn,实现svn提交,更新等操作</a>
                                    <span class="text-muted">aigo</span>
<a class="tag" taget="_blank" href="/search/svnkit/1.htm">svnkit</a>
                                    <div> 原文:http://blog.csdn.net/hardwin/article/details/7963318 
  
import java.io.File;  
  
import org.apache.log4j.Logger;  
import org.tmatesoft.svn.core.SVNCommitInfo;  
import org.tmateso</div>
                                </li>
                                <li><a href="/article/1066.htm"
                                       title="对比浏览器,casperjs,httpclient的Header信息" target="_blank">对比浏览器,casperjs,httpclient的Header信息</a>
                                    <span class="text-muted">alleni123</span>
<a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/crawler/1.htm">crawler</a><a class="tag" taget="_blank" href="/search/header/1.htm">header</a>
                                    <div>		@Override
		protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
		{
			String type=req.getParameter("type");
			Enumeration es=re</div>
                                </li>
                                <li><a href="/article/1193.htm"
                                       title="java.io操作 DataInputStream和DataOutputStream基本数据流" target="_blank">java.io操作 DataInputStream和DataOutputStream基本数据流</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%B5%81/1.htm">流</a>
                                    <div>1,java中如果不保存整个对象,只保存类中的属性,那么我们可以使用本篇文章中的方法,如果要保存整个对象  先将类实例化  后面的文章将详细写到 
  
  
2,DataInputStream 是java.io包中一个数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。</div>
                                </li>
                                <li><a href="/article/1320.htm"
                                       title="车辆保险理赔案例" target="_blank">车辆保险理赔案例</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/%E8%BD%A6%E9%99%A9/1.htm">车险</a>
                                    <div>理赔案例: 
一货运车,运输公司为车辆购买了机动车商业险和交强险,也买了安全生产责任险,运输一车烟花爆竹,在行驶途中发生爆炸,出现车毁、货损、司机亡、炸死一路人、炸毁一间民宅等惨剧,针对这几种情况,该如何赔付。 
赔付建议和方案: 
客户所买交强险在这里不起作用,因为交强险的赔付前提是:“机动车发生道路交通意外事故”; 
如果是交通意外事故引发的爆炸,则优先适用交强险条款进行赔付,不足的部分由商业</div>
                                </li>
                                <li><a href="/article/1447.htm"
                                       title="学习Spring必学的Java基础知识(5)—注解" target="_blank">学习Spring必学的Java基础知识(5)—注解</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>        文章来源:http://www.iteye.com/topic/1123823,整理在我的博客有两个目的:一个是原文确实很不错,通俗易懂,督促自已将博主的这一系列关于Spring文章都学完;另一个原因是为免原文被博主删除,在此记录,方便以后查找阅读。 
  
        有必要对</div>
                                </li>
                                <li><a href="/article/1574.htm"
                                       title="【Struts2一】Struts2 Hello World" target="_blank">【Struts2一】Struts2 Hello World</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/Hello+world/1.htm">Hello world</a>
                                    <div>Struts2 Hello World应用的基本步骤 
创建Struts2的Hello World应用,包括如下几步: 
1.配置web.xml 
2.创建Action 
3.创建struts.xml,配置Action 
4.启动web server,通过浏览器访问 
  配置web.xml 
<?xml version="1.0" encoding="</div>
                                </li>
                                <li><a href="/article/1701.htm"
                                       title="【Avro二】Avro RPC框架" target="_blank">【Avro二】Avro RPC框架</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/rpc/1.htm">rpc</a>
                                    <div>1. Avro RPC简介 1.1. RPC 
 
 RPC逻辑上分为二层,一是传输层,负责网络通信;二是协议层,将数据按照一定协议格式打包和解包 
 从序列化方式来看,Apache Thrift 和Google的Protocol Buffers和Avro应该是属于同一个级别的框架,都能跨语言,性能优秀,数据精简,但是Avro的动态模式(不用生成代码,而且性能很好)这个特点让人非常喜欢,比较适合R</div>
                                </li>
                                <li><a href="/article/1828.htm"
                                       title="lua set get cookie" target="_blank">lua set get cookie</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/lua+cookie/1.htm">lua cookie</a>
                                    <div>lua:
local access_token = ngx.var.cookie_SGAccessToken
if access_token then
    ngx.header["Set-Cookie"] = "SGAccessToken="..access_token.."; path=/;Max-Age=3000"
end</div>
                                </li>
                                <li><a href="/article/1955.htm"
                                       title="java-打印不大于N的质数" target="_blank">java-打印不大于N的质数</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>

public class PrimeNumber {

	/**
	 * 寻找不大于N的质数
	 */
	public static void main(String[] args) {
		int n=100;
		PrimeNumber pn=new PrimeNumber();
		pn.printPrimeNumber(n);
		System.out.print</div>
                                </li>
                                <li><a href="/article/2082.htm"
                                       title="Spring源码学习-PropertyPlaceholderHelper" target="_blank">Spring源码学习-PropertyPlaceholderHelper</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>今天在看Spring 3.0.0.RELEASE的源码,发现PropertyPlaceholderHelper的一个bug 
当时觉得奇怪,上网一搜,果然是个bug,不过早就有人发现了,且已经修复: 
详见: 
http://forum.spring.io/forum/spring-projects/container/88107-propertyplaceholderhelper-bug 
 
</div>
                                </li>
                                <li><a href="/article/2209.htm"
                                       title="[逻辑与拓扑]布尔逻辑与拓扑结构的结合会产生什么?" target="_blank">[逻辑与拓扑]布尔逻辑与拓扑结构的结合会产生什么?</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E6%8B%93%E6%89%91/1.htm">拓扑</a>
                                    <div> 
   如果我们已经在一个工作流的节点中嵌入了可以进行逻辑推理的代码,那么成百上千个这样的节点如果组成一个拓扑网络,而这个网络是可以自动遍历的,非线性的拓扑计算模型和节点内部的布尔逻辑处理的结合,会产生什么样的结果呢? 
 
   是否可以形成一种新的模糊语言识别和处理模型呢?  大家有兴趣可以试试,用软件搞这些有个好处,就是花钱比较少,就算不成</div>
                                </li>
                                <li><a href="/article/2336.htm"
                                       title="ITEYE 都换百度推广了" target="_blank">ITEYE 都换百度推广了</a>
                                    <span class="text-muted">cuisuqiang</span>
<a class="tag" taget="_blank" href="/search/Google/1.htm">Google</a><a class="tag" taget="_blank" href="/search/AdSense/1.htm">AdSense</a><a class="tag" taget="_blank" href="/search/%E7%99%BE%E5%BA%A6%E6%8E%A8%E5%B9%BF/1.htm">百度推广</a><a class="tag" taget="_blank" href="/search/%E5%B9%BF%E5%91%8A/1.htm">广告</a><a class="tag" taget="_blank" href="/search/%E5%A4%96%E5%BF%AB/1.htm">外快</a>
                                    <div>以前ITEYE的广告都是谷歌的Google AdSense,现在都换成百度推广了。 
  
为什么个人博客设置里面还是Google AdSense呢? 
  
都知道Google AdSense不好申请,这在ITEYE上也不是讨论了一两天了,强烈建议ITEYE换掉Google AdSense。至少,用一个好申请的吧。 
  
什么时候能从ITEYE上来点外快,哪怕少点</div>
                                </li>
                                <li><a href="/article/2463.htm"
                                       title="新浪微博技术架构分析" target="_blank">新浪微博技术架构分析</a>
                                    <span class="text-muted">dalan_123</span>
<a class="tag" taget="_blank" href="/search/%E6%96%B0%E6%B5%AA%E5%BE%AE%E5%8D%9A/1.htm">新浪微博</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a>
                                    <div>新浪微博在短短一年时间内从零发展到五千万用户,我们的基层架构也发展了几个版本。第一版就是是非常快的,我们可以非常快的实现我们的模块。我们看一下技术特点,微博这个产品从架构上来分析,它需要解决的是发表和订阅的问题。我们第一版采用的是推的消息模式,假如说我们一个明星用户他有10万个粉丝,那就是说用户发表一条微博的时候,我们把这个微博消息攒成10万份,这样就是很简单了,第一版的架构实际上就是这两行字。第</div>
                                </li>
                                <li><a href="/article/2590.htm"
                                       title="玩转ARP攻击" target="_blank">玩转ARP攻击</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/r/1.htm">r</a>
                                    <div>我写这片文章只是想让你明白深刻理解某一协议的好处。高手免看。如果有人利用这片文章所做的一切事情,盖不负责。 网上关于ARP的资料已经很多了,就不用我都说了。 用某一位高手的话来说,“我们能做的事情很多,唯一受限制的是我们的创造力和想象力”。 ARP也是如此。 以下讨论的机子有 一个要攻击的机子:10.5.4.178 硬件地址:52:54:4C:98</div>
                                </li>
                                <li><a href="/article/2717.htm"
                                       title="PHP编码规范" target="_blank">PHP编码规范</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83/1.htm">编码规范</a>
                                    <div>一、文件格式 
1. 对于只含有 php 代码的文件,我们将在文件结尾处忽略掉 "?>" 。这是为了防止多余的空格或者其它字符影响到代码。例如:<?php$foo = 'foo';2. 缩进应该能够反映出代码的逻辑结果,尽量使用四个空格,禁止使用制表符TAB,因为这样能够保证有跨客户端编程器软件的灵活性。例</div>
                                </li>
                                <li><a href="/article/2844.htm"
                                       title="linux 脱机管理(nohup)" target="_blank">linux 脱机管理(nohup)</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/linux+nohup/1.htm">linux nohup</a><a class="tag" taget="_blank" href="/search/nohup/1.htm">nohup</a>
                                    <div>脱机管理 nohup 
转载请出自出处:http://eksliang.iteye.com/blog/2166699 
nohup可以让你在脱机或者注销系统后,还能够让工作继续进行。他的语法如下 
nohup [命令与参数]   --在终端机前台工作
nohup [命令与参数] & --在终端机后台工作 
  
但是这个命令需要注意的是,nohup并不支持bash的内置命令,所</div>
                                </li>
                                <li><a href="/article/2971.htm"
                                       title="BusinessObjects Enterprise Java SDK" target="_blank">BusinessObjects Enterprise Java SDK</a>
                                    <span class="text-muted">greemranqq</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/BO/1.htm">BO</a><a class="tag" taget="_blank" href="/search/SAP/1.htm">SAP</a><a class="tag" taget="_blank" href="/search/Crystal+Reports/1.htm">Crystal Reports</a>
                                    <div>最近项目用到oracle_ADF  从SAP/BO 上调用 水晶报表,资料比较少,我做一个简单的分享,给和我一样的新手 提供更多的便利。 
  
首先,我是尝试用JAVA JSP 去访问的。 
  
官方API:http://devlibrary.businessobjects.com/BusinessObjectsxi/en/en/BOE_SDK/boesdk_ja</div>
                                </li>
                                <li><a href="/article/3098.htm"
                                       title="系统负载剧变下的管控策略" target="_blank">系统负载剧变下的管控策略</a>
                                    <span class="text-muted">iamzhongyong</span>
<a class="tag" taget="_blank" href="/search/%E9%AB%98%E5%B9%B6%E5%8F%91/1.htm">高并发</a>
                                    <div>假如目前的系统有100台机器,能够支撑每天1亿的点击量(这个就简单比喻一下),然后系统流量剧变了要,我如何应对,系统有那些策略可以处理,这里总结了一下之前的一些做法。 
1、水平扩展 
这个最容易理解,加机器,这样的话对于系统刚刚开始的伸缩性设计要求比较高,能够非常灵活的添加机器,来应对流量的变化。 
2、系统分组 
假如系统服务的业务不同,有优先级高的,有优先级低的,那就让不同的业务调用提前分组</div>
                                </li>
                                <li><a href="/article/3225.htm"
                                       title="BitTorrent DHT 协议中文翻译" target="_blank">BitTorrent DHT 协议中文翻译</a>
                                    <span class="text-muted">justjavac</span>
<a class="tag" taget="_blank" href="/search/bit/1.htm">bit</a>
                                    <div>前言 
做了一个磁力链接和BT种子的搜索引擎 {Magnet & Torrent},因此把 DHT 协议重新看了一遍。 
 
 BEP: 5Title: DHT ProtocolVersion: 3dec52cb3ae103ce22358e3894b31cad47a6f22bLast-Modified: Tue Apr 2 16:51:45 2013 -070</div>
                                </li>
                                <li><a href="/article/3352.htm"
                                       title="Ubuntu下Java环境的搭建" target="_blank">Ubuntu下Java环境的搭建</a>
                                    <span class="text-muted">macroli</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a>
                                    <div>配置命令: 
  $sudo apt-get install ubuntu-restricted-extras 
  再运行如下命令: 
  $sudo apt-get install sun-java6-jdk 
  待安装完毕后选择默认Java. 
  $sudo update- alternatives --config java 
  安装过程提示选择,输入“2”即可,然后按回车键确定。 </div>
                                </li>
                                <li><a href="/article/3479.htm"
                                       title="js字符串转日期(兼容IE所有版本)" target="_blank">js字符串转日期(兼容IE所有版本)</a>
                                    <span class="text-muted">qiaolevip</span>
<a class="tag" taget="_blank" href="/search/TO/1.htm">TO</a><a class="tag" taget="_blank" href="/search/Date/1.htm">Date</a><a class="tag" taget="_blank" href="/search/String/1.htm">String</a><a class="tag" taget="_blank" href="/search/IE/1.htm">IE</a>
                                    <div>	/**
	 * 字符串转时间(yyyy-MM-dd HH:mm:ss)
	 * result (分钟)
	 */
	stringToDate : function(fDate){
		var fullDate = fDate.split(" ")[0].split("-");
		var fullTime = fDate.split("</div>
                                </li>
                                <li><a href="/article/3606.htm"
                                       title="【数据挖掘学习】关联规则算法Apriori的学习与SQL简单实现购物篮分析" target="_blank">【数据挖掘学习】关联规则算法Apriori的学习与SQL简单实现购物篮分析</a>
                                    <span class="text-muted">superlxw1234</span>
<a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a><a class="tag" taget="_blank" href="/search/%E5%85%B3%E8%81%94%E8%A7%84%E5%88%99/1.htm">关联规则</a>
                                    <div>关联规则挖掘用于寻找给定数据集中项之间的有趣的关联或相关关系。 
关联规则揭示了数据项间的未知的依赖关系,根据所挖掘的关联关系,可以从一个数据对象的信息来推断另一个数据对象的信息。 
例如购物篮分析。牛奶 ⇒ 面包 [支持度:3%,置信度:40%]  支持度3%:意味3%顾客同时购买牛奶和面包。   置信度40%:意味购买牛奶的顾客40%也购买面包。   规则的支持度和置信度是两个规则兴</div>
                                </li>
                                <li><a href="/article/3733.htm"
                                       title="Spring 5.0 的系统需求,期待你的反馈" target="_blank">Spring 5.0 的系统需求,期待你的反馈</a>
                                    <span class="text-muted">wiselyman</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a>
                                    <div>        
       Spring 5.0将在2016年发布。Spring5.0将支持JDK 9。 
  
       Spring 5.0的特性计划还在工作中,请保持关注,所以作者希望从使用者得到关于Spring 5.0系统需求方面的反馈。 
 </div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>