☀️手把手教你Camel 环境搭建☀️《❤️记得收藏❤️》

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 MongoDB,通用型 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: ☀️手把手教你Camel 环境搭建☀️《❤️记得收藏❤️》

☀️手把手教你Camel 环境搭建☀️《❤️记得收藏❤️》


目录


😊开讲啦!!!!🏳️‍🌈


:person_fencing:1、Vagrant 环境

42a16699a617426399e33242a787d097.gif

😀1.1、Vagrant 是什么

😃1.2、Vagrant 能做什么

😄 1.3、Vagrant 相关软件下载

😁1.4、Vagrant 配置环境变量(Windows)

🍇1.4.1、VirtualBox

🍈1.4.2、Vagrant

😆1.5、启动 Vagrant

🍇1.5.1、创建 vagrant 环境目录

🍈1.5.2、vagrant box 下载

🍉1.5.3、使用 box 方式安装系统

🍊1.5.4、初始化和 Vagrantfile

🍋1.5.5、public_network 配置

🍌1.5.6、启动虚拟机

😅1.6、使用 ssh 登录到虚拟机

:horse_racing:2、camel 环境

🤣2.1、admin 端

🍇2.1.1、系统初始化和下载 camel

🍈2.1.2、安装 mariadb

🍉2.1.3、安装 mongodb

🍊2.1.4、配置 camel-admin 和生成 camel-admin 的 war 包

🍋2.1.5、安装 tomcat

🍌2.1.6、安装 Dengine

🍍2.1.7、启动 Dengine 和 tomcat

🥭2.1.8、访问管理端首页

😂2.2、agent 端(agent1/agent2)

🍇2.2.1、系统初始化

🍈2.2.2、安装依赖包

🍉2.2.3、安装 JDK

🍊2.2.4、添加 dns

🍋2.2.5、运行 camel-agent

🍌2.2.6、安装 tomcat(可选)

🍍2.2.7、安装 Dengine

🥭2.2.8、启动 Dengine

:woman_playing_handball:3、camel 使用

😀3.1、创建 nginx 集群

😃3.2、nginx 集群重命名

😄3.3、nginx 集群添加节点

😁3.4、新增集群

😅3.5、集群重命名

😆3.6、新增站点

🤣3.7、站点命名

😂3.8、映射规则

🙂3.9、预览

🙃3.10、创建发布版本

😉3.11、发布

😊3.12、最终发布页面

🏳️‍🌈关注苏州程序大白,持续更新技术分享。谢谢大家支持🏳️‍🌈

🏳️‍🌈关注苏州程序大白,持续更新技术分享。谢谢大家支持🏳️‍🌈

目录

😊开讲啦!!!!🏳️‍🌈


42a16699a617426399e33242a787d097.gif


🤺1、Vagrant 环境


😀1.1、Vagrant 是什么


c1f34ed2a8844d0193315b4b70c78e48.png


Vagrant是一款用来构建虚拟开发环境的工具,它底层支持 VirtualBox、VMware 甚至 AWS 作为虚拟机系统,提供易于配置,重复性好,便携式的工作环境。也可以和 puppet,chef 结合,实现虚拟机管理的自动化。


😃1.2、Vagrant 能做什么


统一开发环境。一次配置打包,统一分发给团队成员,统一团队开发环境,解决诸如“编码问题”,“缺少模块”,“配置文件不同”带来的问题;


避免重复搭建开发环境。新员工加入,不用浪费时间搭建开发环境,快速加入开发,减少时间成本的浪费;


多个相互隔离开发环境。可以在不用box里跑不同的语言,或者编译安装同一语言不同版本,搭建多个相互隔离的开发环境,卸载清除时也很快捷轻松。


😄 1.3、Vagrant 相关软件下载


下载 vagrant


下载 VirtualBox


注意:以下以安装在 Windows 上为例,VirtualBox 和 Vagrant 不要装在同一分区里,Vagrant 默认选项安装到C盘。


😁1.4、Vagrant 配置环境变量(Windows)


🍇1.4.1、VirtualBox


VirtualBox:将 %VirtualBox_homt% 添加到 Path 中,这样 Vagrant 才能被识别:


变量名:VBOX_MSI_INSTALL_PATH


变量值:D:\软件\VirtualBox(根据自己安装目录)


663a499421be4781bf07ff8d28d81c79.gif73b73e1059524ea795b615f485be8faa.png


646eaaac84ca4c73877f4edbbe602905.png


472d261ca8fd464cad119fdfa13bc80f.png


🍈1.4.2、Vagrant


Vagrant:安装成功后,自动在 Path 中添加 %Vagrant_home%/bin,检查一下。


变量名:Path


变量值:…;C:\HashiCorp\Vagrant\bin


49c2f6ff423144cfb8ad441ab08ff2b2.gif


2b48f2346bda4d0795a9075c7a108136.png


1723e47e811b4b6fb7b7b5141ec47970.png


😆1.5、启动 Vagrant


🍇1.5.1、创建 vagrant 环境目录


进入运行命令模式,创建测试文件夹(vagrant 环境所在目录)


0baecf945bb94379a677009ea8ade485.png


进创建 vagrantdemo 目录


C:\Users\Administrator>md vagrantdemo
C:\Users\Administrator>cd vagrantdemo


🍈1.5.2、vagrant box 下载


box 是一个zip包,包含了 vagrant 的配置信息和 VirtualBox 的虚拟机镜像文件。


下载 box


🍉1.5.3、使用 box 方式安装系统


命令格式


vagrant box add "box_name" remoteUrl or localFile 


box_name 可以是任意字符,用于标识 box。

使用 remoteUrl(远程地址)添加 box。


vagrant box add "centos7" https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box


这种方式需要即时下载,较慢,建议下载下来 box,在本地添加。


或是使用 localFile(本地 box 文件)添加 box。


后面加绝对路径或进入同层目录。


agrant box add "centos7" CentOS-7.1.1503-x86_64-netboot.box


🍊1.5.4、初始化和 Vagrantfile


vagrant init "box_name"


初始化后会在当前目录(C:\Users\Administrator\vagrantdemo)生成以一个 Vagrantfile 文件


dd8fc30558bc4b50b96cc48a1e5a47f2.png


Vagrantfile 详细使用请自行查阅资料或官方文档。


这里环境使用的 Vagrantfile,可以复制使用。


# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.define :admin do |admin|
admin.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--name", "admin", "--memory", "1024"]
end
admin.vm.box = "centos7"
admin.vm.hostname = "camel-admin"
admin.vm.network "public_network"
end
config.vm.define :agent1 do |agent1|
agent1.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--name", "agent1", "--memory", "512"]
end
agent1.vm.box = "centos7"
agent1.vm.hostname = "agent1"
agent1.vm.network "public_network"
end
config.vm.define :agent2 do |agent2|
agent2.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--name", "agent2", "--memory", "512"]
end
agent2.vm.box = "centos7"
agent2.vm.hostname = "agent2"
agent2.vm.network "public_network"
end
end


🍋1.5.5、public_network 配置


配置 Virtualbox 网络,使 vagrant 虚拟机获得本地 dhcp 分发的 ip。


2fce934c66f946fba58b385a2ffad83e.png


31b1717eb68842a5a70c28a9f4001880.png


添加 nat 网络


df7b0d10045c4b509d4391a2b4dc1c98.png


编辑 nat 网络


f79f5548f81746d591ff6d888f8ece5b.png


6463b807528d49eaa60272e2cf169471.png


🍌1.5.6、启动虚拟机


vagrant up


e3449b47ccc34f8581aeca66cc502b25.png


0ba43770c4f84d86b032b1d4ef76108b.png


启动后会打开 3 台虚拟机 admin,agent1,agent2。


对应 127.0.0.1 的 2222、2200、2201 端口。


并获得本地 ip 地址。


😅1.6、使用 ssh 登录到虚拟机


windows 默认没有 ssh 命令,可以安装 babun 或 cmder


使用如下命令连接


C:\Users\Administrator\vagrantdemo>vagrant ssh


下面使用xshell连接,初始账号密码都是vagrant


连接 camel-admin


ssh 127.0.0.1 2222


连接后使用 sudo passwd root 修改 root 密码


8c1fbdb9e3264f248fae84d6ecc4b023.png


使用 ip a 查看获取到的局域网 dhcp ip


ee0f38faa8ff4243b6bf20f2fb9a389e.png


再次登录


ssh 192.168.1.210 连接 admin


连接 agent1


ssh 127.0.0.1 2200


3d70da4528f04b41a83f1eb6b0b84a74.png


连接agent2


ssh 127.0.0.1 2201


fd249b8ce5224792bcb9fda16bdf0f96.png


🏇2、camel 环境


admin 端需要安装 camel-admin 和 Dengine


agent 端需要安装 camel-agent 和 Dengine


🤣2.1、admin 端


🍇2.1.1、系统初始化和下载 camel


清除 vagrant 默认防火墙策略


chmod 755 /etc/rc.d/rc.local
echo "/usr/sbin/iptables -F" >> /etc/rc.local
iptables -F


关闭也可以


systemctl stop firewalld
systemctl disable firewalld


依赖包安装


yum install -y vim unzip maven net-tools git gcc gcc-c++ automake autoconf 
libtool make ncurses-devel zlib zlib-devel libtermcap-devel libevent-devel readline-devel patch


下载 camel-master.zip 项目地址


nzip camel-master.zip


68dd6243d5f44e128c8bcf0d0e863bd3.png


🍈2.1.2、安装 mariadb


yum -y install mariadb mariadb-server
systemctl start mariadb
systemctl enable mariadb


mariadb 初始化


mysql -uroot
MariaDB [(none)]> grant all on *.* to root@localhost identified by '123456';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> create database camel;
MariaDB [(none)]> use camel;
MariaDB [(none)]>
source /root/camel-master/camel-admin/src/main/resources/init-data/create_table.sql


77cb33c4c908430394f659f236d12dcd.png


🍉2.1.3、安装 mongodb


下载 mongodb


注意:下载 3.0.7 版本,3.0.7 以上版本有问题最新 3.4.1 启动报错


mongodb 初始化


tar zxvf mongodb-linux-x86_64-rhel70-3.0.7.tgz
mv mongodb-linux-x86_64-rhel70-3.0.7 mongodb
cd mongodb
mkdir db logs


597f67c7e4a145b7bcf3f366d8ce5a1f.png


cd bin
vim mongodb.conf
dbpath=/root/mongodb/db
logpath=/root/mongodb/logs/mongodb.log
port=27017
fork=true
nohttpinterface=true


ce97db7f45624114b2dcd0e889623fc7.png


启动 mongodb


/root/mongodb/bin/mongod --bind_ip localhost -f /root/mongodb/bin/mongodb.conf


mongodb 建库


/root/mongodb/bin/mongo
> use camel_runtime
switched to db camel_runtime
> db.movie.insert({"name":"tutorials yiibai"})
WriteResult({ "nInserted" : 1 })
> use camel_nginx_log
switched to db camel_nginx_log
> db.movie.insert({"name":"tutorials yiibai"})
WriteResult({ "nInserted" : 1 })
> use camel_config
switched to db camel_config
> db.movie.insert({"name":"tutorials yiibai"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin 0.000GB
camel_config 0.000GB
camel_nginx_log 0.000GB
camel_runtime 0.000GB
local 0.000GB
> exit


6d6e57119ba9420b854d21242693ae2f.png


🍊2.1.4、配置 camel-admin 和生成 camel-admin 的 war 包

camel-admin 配置文件修改


grep -r "/data/appdatas/camel/" ./*
./src/main/resources/spring/applicationContext-properties.xml: <value>file:/data/appdatas/camel/jdbc-mysql.properties</value>
./src/main/resources/spring/applicationContext-properties.xml: <value>file:/data/appdatas/camel/mongo.properties</value>
./src/main/resources/spring/applicationContext-properties.xml: <value>file:/data/appdatas/camel/camel.properties</value>


d01a16c8da6b4864b7b4a3f88d55071b.png


mkdir -p /data/appdatas/camel/
cp /root/camel-master/camel-admin/src/main/resources/init-data/camel.properties /data/appdatas/camel/
vim camel.properties
# threshold of local nginx config check
local.nginx.config.check=true
cp /root/camel-master/camel-admin/src/main/resources/init-data/jdbc-mysql.properties /data/appdatas/camel/
vim /data/appdatas/camel/jdbc-mysql.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.username=root
jdbc.password=123456
jdbc.maxPoolSize=50
jdbc.minPoolSize=1
jdbc.initialPoolSize=1
jdbc.idleConnectionTestPeriod=1800
jdbc.maxIdleTime=3600
jdbc.checkoutTimeout=5000
jdbc.url=jdbc:mysql://127.0.0.1:3306/camel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&noAccessToProcedureBodies=true&socketTimeout=5000&connectTimeout=5000


红色camel为之前mariadb新建的数据库名


cp src/main/resources/init-data/mongo.properties /data/appdatas/camel/
vim /data/appdatas/camel/mongo.properties
mongodb.url=127.0.0.1:27017
mongodb.dbname_config=camel_config
mongodb.dbname_nginx_log=camel_nginx_log
mongodb.dbname_runtime=camel_runtime
isCluster=false
connections-per-host=1800
slave-ok=false


添加 dns


否则后面下载无法解析


echo "nameserver 8.8.8.8" >> /etc/resolv.conf


构建 camel-admin


cd /root/camel-master/camel-admin/
mvn clean compile


时间较长,最后看到 BUILD SUCCESS 构建成功


54629b5d43494f0cab3b126250cb6921.png


生成 camel-admin 的 war 包


cd /root/camel-master/camel-admin/
mvn install package -Dmaven.test.skip=true


在 /root/camel-master/camel-admin/target/ 目录下生成 war 包


5531cc97a94f4274b74a82a536ccef9d.png


🍋2.1.5、安装 tomcat


这里使用 tomcat7,jdk 在之前 camel-admin 构建过程中已安装,为 openjdk将之前生成的 camel-admin 的 war 包放到 tomcat 项目目录。


cp camel-admin-1.0.0.war /opt/apache-tomcat-7.0.59/webapps/


🍌2.1.6、安装 Dengine


注意:Dengine 默认安装到 /usr/loca/nginx,安装 Dengine 之前,删除系统中安装在 /usr/loca/nginx 目录的 nginx,其他 nginx 不要安装到 /usr/loca/nginx 目录


cd /root/camel-master/Dengine/
./install_dengine


权限确认,/usr/local/nginx/conf/phoenix-slb/ 权限 777


chmod 777 /usr/local/nginx/conf/phoenix-slb/


访问策略配置


vim /usr/local/nginx/conf/nginx_status.conf
req_status_zone server "$host:$server_addr:$server_port" 10M;
check_shm_size 50M;
req_status server;
server {
  listen 6666;
  server_name aaabbbccc;
  location /status {
    check_status;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  }
  location /degrade{
    upstream_degrade_interface;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  }
  location / {
    return 444;
  }
}
server {
  listen 80 default_server;
  server_name aaabbbccc;
  location /status {
    echo "ok";
    default_type text/plain;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  }
  location /reqstatus {
    req_status_show;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  }
  location / {
    return 444;
  }
  error_page 404 403 =444 @static;
  location @static{
    return 444;
  }
}


🍍2.1.7、启动 Dengine 和 tomcat


启动 Dengine


/usr/local/nginx/sbin/nginx


开机自启动


echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local


启动 tomcat


cd /opt/apache-tomcat-7.0.59/bin/
./startup.sh


开机自启动


echo "/opt/apache-tomcat-7.0.59/bin/startup.sh" >> /etc/rc.local


🥭2.1.8、访问管理端首页

http://192.168.0.210:8080/camel-admin-1.0.0/


86931707437d4d9c9ec9408adb908b52.png


😂2.2、agent 端(agent1/agent2)


🍇2.2.1、系统初始化


清除 vagrant 默认防火墙策略


chmod 755 /etc/rc.d/rc.local
echo "/usr/sbin/iptables -F" >> /etc/rc.local
iptables -F


关闭也可以


systemctl stop firewalld
systemctl disable firewalld


🍈2.2.2、安装依赖包


yum -y install maven git gcc gcc-c++ automake autoconf libtool make ncurses-devel 
zlib zlib-devel libtermcap-devel libevent-devel readline-devel patch


🍉2.2.3、安装 JDK


yum search java | grep -i --color JDK

1026e2a3ab944a32899979eab1e72055.png


yum install java-1.7.0-openjdk


🍊2.2.4、添加 dns


vim /etc/resolv.conf
nameserver 8.8.8.8


🍋2.2.5、运行 camel-agent


cd /root/camel-master/camel-agent


运行 agent


mvn spring-boot:run > /root/camel-agent.out 2>&1 &


生成 war 包(可选)


mvn clean package


可以将 /root/camel-master/camel-agent/target 目录下生成的 war 包放到 tomcat 工程目录运行


21929ee37c224652b506b38979f4492e.png


🍌2.2.6、安装 tomcat(可选)


注意:如果已经使用 mvn spring-boot:run 方式启动 agent,跳过此步


这里使用 tomcat7,jdk 为 java-1.7.0-openjdk


将之前生成的 camel-admin 的 war 包放到 tomcat 项目目录


cp /root/camel-master/camel-agent/target/camel-agent-1.0.0.war /opt/apache-tomcat-7.0.59/webapps/
cd /opt/apache-tomcat-7.0.59/bin
./startup.sh


🍍2.2.7、安装 Dengine


注意:Dengine 默认安装到 /usr/loca/nginx,安装 Dengine 之前,删除系统中安装在 /usr/loca/nginx 目录的 nginx,其他 nginx 不要安装到 /usr/loca/nginx 目录。


cd /root/camel-master/Dengine/
./install_dengine


权限确认,/usr/local/nginx/conf/phoenix-slb/ 权限 777


chmod 777 /usr/local/nginx/conf/phoenix-slb/


访问策略配置


vim /usr/local/nginx/conf/nginx_status.conf
req_status_zone server "$host:$server_addr:$server_port" 10M;
check_shm_size 50M;
req_status server;
server {
  listen 6666;
  server_name aaabbbccc;
  location /status {
    check_status;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  }
  location /degrade{
    upstream_degrade_interface;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  }
  location / {
    return 444;
  }
}
server {
  listen 80 default_server;
  server_name aaabbbccc;
  location /status {
    echo "ok";
    default_type text/plain;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  }
  location /reqstatus {
    req_status_show;
    access_log off;
    allow 192.168.0.210;
    # deny all;
  }
  location / {
    return 444;
  }
  error_page 404 403 =444 @static;
  location @static{
    return 444;
  }
}
cd /root/camel-master/Dengine/
./install_dengine


🥭2.2.8、启动 Dengine


启动 Dengine


/usr/local/nginx/sbin/nginx


开机自启动


echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local


开机自启动 camel-agent


echo " mvn spring-boot:run > /root/camel-agent.out 2>&1 &" >> /etc/rc.local


🤾‍♀3、camel 使用


😀3.1、创建 nginx 集群


6f656c80609c49129bae7d808385279d.png


😃3.2、nginx 集群重命名


9bb5a7dd7d68477b8c9d3d631caf5301.png


😄3.3、nginx 集群添加节点


9c85ef59767c4079ae5f09a5fcbc9e53.png


c75b503b88004a63a65d78de7c95fe1f.png


😁3.4、新增集群


a670ff2380b44f39a9c774385a1ba627.png


😅3.5、集群重命名


7178f80b0b2a42c6bde29135292a838a.png


d23e5bc46c864469ab6e92bdf47278a7.png


0fa370bd9e4541fb82122515dc23f7cd.png


😆3.6、新增站点


25e8c09574de47aea365cb973095028f.png


🤣3.7、站点命名


072695e8c57c4103bfa76ce8c6cb8d0a.png


501be4b0170e46ac9bec76c117d3c377.png


😂3.8、映射规则

编辑


9d57f835a5984e0483f2888084ec3791.png


dfea61351b704ce5b355ea49f6df242f.png


45a1e3a1969f4ff6ad9f70f33277ded1.png


详细


1cd4ff58821c431ebbf8a3b7290eb8f8.png


添加新指令


1e01372f5fa7457ba5a3cfef445043a9.png


保存


209d17da9d26471aa310875380ba375c.png


🙂3.9、预览


8ded31d7ccf6403d8aaa13ef457f35e8.png


8c5b64bb570b4e24b5d23e3fedef0c76.png


9f70e25cc4b34f53ae4f0758836eb48f.png


4324c96120034c57b329943141ec3f87.png


🙃3.10、创建发布版本


22f8d9e3ae7f41f485046af7e2c1f2da.png


a5ca4fabaf524d5bacf5461f6d727c6f.png


😉3.11、发布


2fa813440be547499c235a87c9814dd6.png


选择发布版本


faf1622061c64b1094de01b7fe231bab.png


😊3.12、最终发布页面


cd4f48cd937e413f9533351bedf5f698.png


bef5d1d135854e169a26aeeddfbd42b7.png

                    bd436bd909b5486ab5424a960165c42c.gif

相关文章
|
15天前
|
开发框架 .NET Linux
2024年最全C# 图解教程 第5版 —— 第1章 C# 和 ,2024年最新终于有人把Linux运维程序员必学知识点全整理出来了
2024年最全C# 图解教程 第5版 —— 第1章 C# 和 ,2024年最新终于有人把Linux运维程序员必学知识点全整理出来了
2024年最全C# 图解教程 第5版 —— 第1章 C# 和 ,2024年最新终于有人把Linux运维程序员必学知识点全整理出来了
|
21天前
|
XML Java 数据格式
🚀今天,我们来详细的聊一聊SpringBoot自动配置原理,学了这么久,你学废了吗?
🚀今天,我们来详细的聊一聊SpringBoot自动配置原理,学了这么久,你学废了吗?
78 0
|
21天前
|
存储 算法
刷题专栏(二十七): 找不同
刷题专栏(二十七): 找不同
98 2
|
7月前
|
编译器 C++
《C++避坑神器·十八》运算符重载,小白也能看懂
《C++避坑神器·十八》运算符重载,小白也能看懂
24 0
|
11月前
|
JavaScript 前端开发 Java
【程序员小白入门】这几个宝藏菜鸟教程网站记得收藏!!!
其实菜鸟教程相关的网站内容都大同小异,推荐这几个原因是页面交互比较简单,重要的是没有任何广告。
|
11月前
|
JSON 前端开发 JavaScript
时不我待(第十八课)项目环境搭建
时不我待(第十八课)项目环境搭建
46 0
|
11月前
|
存储 程序员 数据安全/隐私保护
|
12月前
|
存储 测试技术 开发工具
【遇坑记实 二】小坑合集
【遇坑记实 二】小坑合集
57 0
|
XML 应用服务中间件 数据格式
带你吃透Servlet核心编程上篇(完整图文教程)(中)
文章目录 1 走进Servlet 1.1 Servlet简介 1.2 第一个Servlet程序 1.3 Servlet程序如何定位到url地址 1.4 Servlet的生命周期方法 1.5 Servlet请求的分发处理 1.6 通过继承HttpServlet类实现Servlet程序 2 Servlet体系 2.1 Servlet继承体系 2.2 ServletConfig类的使用
带你吃透Servlet核心编程上篇(完整图文教程)(中)
带你吃透Servlet核心编程上篇(完整图文教程)(下)
文章目录 1 走进Servlet 1.1 Servlet简介 1.2 第一个Servlet程序 1.3 Servlet程序如何定位到url地址 1.4 Servlet的生命周期方法 1.5 Servlet请求的分发处理 1.6 通过继承HttpServlet类实现Servlet程序 2 Servlet体系 2.1 Servlet继承体系 2.2 ServletConfig类的使用
带你吃透Servlet核心编程上篇(完整图文教程)(下)

热门文章

最新文章