tomcat5.0+mysql配置JDBCRealm,DBCP,ssl,及中文乱码解决详解

【微服务篇】深入理解RPC(远程调用)原理 RPC是一种通信机制,它使得在网络中的不同计算机之间可以像本地调用一样简单地进行函数或过程调用。RPC隐藏了底层的网络通信细节,使得开发者可以专注于业务逻辑,而不是处理网络通信的复杂性。RPC框架通常负责打包调用的参数,通过网络传输,然后在远端解包参数,执行函数调用,再将结果返回给调用方。定义:选择或设计一种接口定义语言(IDL)来精确描述服务接口。IDL定义了服务中的方法、参数和返回类型。跨语言支持:确保IDL支持多种编程语言,以便不同语言编写的服务可以相互通信。版本控制和兼容性。 阅读详情
准备环境:
1.j2sdk-1_4_2-windows-i586.exe    //jdk
2.mysql-4.0.20d-win.zip        //mysql数据库
3.mysqlcc-0.9.4-win32.zip    //mysqlGUI控制
4.jakarta-tomcat-5.0.27.exe    //tomcat服务器
5.mysql-connector-java-3.0.14-production.zip //内含mysql驱动

安装步骤:
1.安装jdk
2.安装tomcat
3.安装mysql
4.安装mysqlcc
5.将驱动包解压,拷贝mysql-connector-java-3.0.14-production-bin.jar到tomcat/common/lib下
或者下载mm.mysql-2.0.14-you-must-unjar-me.jar,解压后拷贝其中的mm.mysql-2.0.14-bin.jar

Tomcat5.0配置 本例使用安装密码 198277
1.配置manager 管理应用程序
在conf/server.xml 中
添加如下

<Service name="Catalina">
...

    <Context path="/manager" debug="0" privileged="true"
             docBase="/usr/local/kinetic/tomcat5/server/webapps/manager">
    </Context>

</Service> 

限制ip访问配置
<Context path="/manager" debug="0" privileged="true"
         docBase="/usr/local/kinetic/tomcat5/server/webapps/manager">
         <Valve className="org.apache.catalina.valves.RemoteAddrValve"
                allow="127.0.0.1"/>
</Context>
测试为: http://localhost:8080/manager/html

2.配置JDBCRealm容器管理安全,以mysql-4.0数据库为例
a.拷贝驱动mm.mysql-2.0.14-bin.jar到common/lib/下
b.在数据库ycg中建表
   
 create table users (
  user_name         varchar(15) not null primary key,
  user_pass         varchar(15) not null
);

create table user_roles (
  user_name         varchar(15) not null,
  role_name         varchar(15) not null,
  primary key (user_name, role_name)
);

c.修改server.xml如下(默认数据库为root,无密码,如果有形如:connectionURL="jdbc:mysql://localhost/authority?

user=dbuser&password=dbpass")
      <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
             driverName="org.gjt.mm.mysql.Driver"
          connectionURL="jdbc:mysql://localhost/ycg?user=root"
         connectionName="" connectionPassword=""
              userTable="users" userNameCol="user_name" userCredCol="user_pass"
          userRoleTable="user_roles" roleNameCol="role_name" />

d.在数据库中添加入tomcat的默认配置数据:

+-----------+-----------+
| user_name | role_name |
+-----------+-----------+
| admin     | admin     |
| admin     | manager   |
| both      | role1     |
| both      | tomcat    |
| role1     | role1     |
| tomcat    | tomcat    |
+-----------+-----------+
+-----------+-----------+
| user_name | user_pass |
+-----------+-----------+
| tomcat    | tomcat    |
| both      | tomcat    |
| role1     | tomcat    |
| admin     | 198277    |
+-----------+-----------+

e.启动mysql,启动tomcat,此后tomcat将从数据库中读用户规则认证.默认的conf/tomcat-users.xml失效

3.DBCP的配置
a.设置
             <parameter>
              <name>removeAbandoned</name>
              <value>true</value>
            </parameter>

 可使失效的数据连接重新启用.
配套设置
   
             <parameter>
              <name>removeAbandonedTimeout</name>
              <value>60</value>
            </parameter>
失效时间
如果要写入日志
设置
            <parameter>
              <name>logAbandoned</name>
              <value>true</value>
            </parameter>
以上三个默认都是false
b.以mysql为例,配置数据连接池
c.配置新的用户与数据库,必须设定密码,空密码将导致连接失败
e.
指定root密码:mysqladmin -u root -h localhost password "198277"
(需修改上面的jdbcrealm设置connectionURL="jdbc:mysql://localhost/ycg?user=root&password=198277")
命令mysql进入匿名连接到服务器
密码访问
shell> mysql -h host -u user -p
Enter password: ********

//如果root没有密码,以下是不成功的.(试过了)
 mysql> GRANT ALL PRIVILEGES ON *.* TO javauser@localhost 
    ->   IDENTIFIED BY 'javadude' WITH GRANT OPTION;
mysql> create database javatest;
mysql> use javatest;
mysql> create table testdata (
    ->   id int not null auto_increment primary key,
    ->   foo varchar(25), 
    ->   bar int);

在conf/server.xml中<host></host>中添加
<Context path="/DBTest" docBase="DBTest"
        debug="5" reloadable="true" crossContext="true">

  <Logger className="org.apache.catalina.logger.FileLogger"
             prefix="localhost_DBTest_log." suffix=".txt"
             timestamp="true"/>

  <Resource name="jdbc/TestDB"
               auth="Container"
               type="javax.sql.DataSource"/>

  <ResourceParams name="jdbc/TestDB">
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>

    <!-- Maximum number of dB connections in pool. Make sure you
         configure your mysqld max_connections large enough to handle
         all of your db connections. Set to 0 for no limit.
         -->
    <parameter>
      <name>maxActive</name>
      <value>100</value>
    </parameter>

    <!-- Maximum number of idle dB connections to retain in pool.
         Set to 0 for no limit.
         -->
    <parameter>
      <name>maxIdle</name>
      <value>30</value>
    </parameter>

    <!-- Maximum time to wait for a dB connection to become available
         in ms, in this example 10 seconds. An Exception is thrown if
         this timeout is exceeded.  Set to -1 to wait indefinitely.
         -->
    <parameter>
      <name>maxWait</name>
      <value>10000</value>
    </parameter>

    <!-- MySQL dB username and password for dB connections  -->
    <parameter>
     <name>username</name>
     <value>javauser</value>
    </parameter>
    <parameter>
     <name>password</name>
     <value>javadude</value>
    </parameter>

    <!-- Class name for the old mm.mysql JDBC driver - uncomment this entry and comment next
         if you want to use this driver - we recommend using Connector/J though
    <parameter>
       <name>driverClassName</name>
       <value>org.gjt.mm.mysql.Driver</value>
    </parameter>
     -->
    
    <!-- Class name for the official MySQL Connector/J driver -->
    <parameter>
       <name>driverClassName</name>
       <value>com.mysql.jdbc.Driver</value>
    </parameter>
    
    <!-- The JDBC connection url for connecting to your MySQL dB.
         The autoReconnect=true argument to the url makes sure that the
         mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
         connection.  mysqld by default closes idle connections after 8 hours.
         -->
    <parameter>
      <name>url</name>
      <value>jdbc:mysql://localhost:3306/javatest?autoReconnect=true</value>
    </parameter>


            <parameter>
              <name>removeAbandoned</name>
              <value>true</value>
            </parameter>

             <parameter>
              <name>removeAbandonedTimeout</name>
              <value>60</value>
            </parameter>
            <parameter>
              <name>logAbandoned</name>
              <value>true</value>
            </parameter>
  </ResourceParams>
</Context>

f.在web服务中调用.配置web.xml 如:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
  <description>MySQL Test App</description>
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
</web-app>
g.测试用test.jsp 
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/TestDB">
select id, foo, bar from testdata
</sql:query>

<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>

  <h2>Results</h2>
  
<c:forEach var="row" items="${rs.rows}">
    Foo ${row.foo}<br/>
    Bar ${row.bar}<br/>
</c:forEach>

  </body>
</html>

h.新建web应用
下载jakarta-taglibs-standard-1.1.0
copy jstl.jar and standard.jar to your web app's WEB-INF/lib 

DBTest/
    WEB-INF/
        web.xml
        lib/
            jstl.jar
            standard.jar
    test.jsp
拷贝到webapps/ 下
i.启动mysql,tomcat 
访问:
http://localhost:8080/DBTest/test.jsp
显示:
    Results
    Foo hello
    Bar 12345

4.ssl的配置,以jdk1.4.2为例
a.进入%JAVA_HOME%/bin
运行命令:keytool -genkey -alias tomcat -keyalg RSA
以tomcat 安装密码为198277,ketool设置密码为198277为例
输入keystore密码:  198277
您的名字与姓氏是什么?
  [Unknown]:  ycg
您的组织单位名称是什么?
  [Unknown]:  nju
您的组织名称是什么?
  [Unknown]:  nju
您所在的城市或区域名称是什么?
  [Unknown]:  nanjing
您所在的州或省份名称是什么?
  [Unknown]:  jiangsu
该单位的两字母国家代码是什么
  [Unknown]:  nd
CN=ycg, OU=nju, O=nju, L=nanjing, ST=jiangsu, C=nd 正确吗?
  [否]:  y

输入<tomcat>的主密码
        (如果和 keystore 密码相同,按回车):  198277
b.在你的D:/Documents and Settings/的当前用户目录下可以找到.keystore文件.将其拷贝到conf/文件夹下.
c.在server.xml 中找到

    <!--
    <Connector port="8443" 
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" debug="0" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->
    去掉注释

添加配置字段:keystoreFile="/conf/.keystore" keystorePass="198277"
如: <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
   
    <Connector port="8443" 
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" debug="0" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="/conf/.keystore"
               keystorePass="198277"/>
d.测试为:
https://localhost:8443
e.在自己的程序中添加ssl认证方式为:
在web.xml 中<web-app></web-app>添加
<security-constraint>
<web-resource-collection>
<web-resource-name>Success</web-resource-name>
<url-pattern>/</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
f.用上提为例就是
修改web.xml 为
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

    <description>MySQL Test App</description>

<security-constraint>
<web-resource-collection>
<web-resource-name>Success</web-resource-name>
<url-pattern>/</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

  
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
</web-app>
访问:
https://localhost:8443/DBTest/test.jsp

g.如果与2配置的jdbcRealm结合起来进行表单认证
先在user_roles表中添加user_name:ycg role_name:web-user
在users表中添加user_name:ycg user_pass:198277

然后在web.xml中添加
<auth-constraint>
<role-name>web-user</role-name>
</auth-constraint>

<login-config>
 <auth-method>BASIC</auth-method>
 <realm-name>My Member Area</realm-name>
</login-config>

修改后的web.xml如:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

    <description>MySQL Test App</description>

<security-constraint>
<web-resource-collection>
<web-resource-name>Success</web-resource-name>
<url-pattern>/</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>web-user</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
 <auth-method>BASIC</auth-method>
 <realm-name>My Member Area</realm-name>
</login-config>
  
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
</web-app>

测试:
http://localhost:8080/DBTest/test.jsp
将通过ssl连接,并进行表单认证.用户密码可在user_roles,和users中添加.

5.中文乱码问题:
mysql 默认编码 iso
tomcat request 传输编码 iso 
如果要显示中文
在*.jsp中添加
<head>
<%@ page 
language="java"
contentType="text/html; charset=GB18030"
pageEncoding="GB18030"
%>
</head>
如果是数据传输中的乱码(如用servlet从mysql数据库读出的数据)
用以下两个转码函数转码,如果不清楚由哪种编码转成哪种编码,就多尝试.
    //转码GBK转ISO
    public String toISO(String input) {
        try {
                byte[] bytes = input.getBytes("GBK");
                return new String(bytes,"ISO8859-1");
        }catch(Exception ex) {
        }
        return input;

    }
    
    //转码IS0转GBK
    public String toGBK(String input) {
        try {
            byte[] bytes = input.getBytes("ISO8859-1");
            return new String(bytes,"GBK");
        }catch(Exception ex) {
        }
        return input;
    }


以上配置都测试通过.主要参考tomcat5.0的帮助文档.将过程写出来与大家共享.如果发现其中错误,请指出.
欢迎给我来信ycg01@software.nju.edu.cn共同探讨.

3D Slicer:从入门到精通——数据模块之DICOM 该模块允许导入、导出和网络传输DICOM数据。Slicer支持DICOM功能的常用子集,其特定功能由临床研究的需求驱动:从磁盘读取和写入数据集,并通过DIMSE和DICOMweb网络协议进行网络传输——查询检索发送和接收数据集。医学数字成像和通信(DICOM)是信息交换数字放射学的广泛使用标准。在大多数情况下,医院使用的成像设备(CT和MR扫描仪)将生成保存为DICOM对象的图像。DICOM按以下层次结构组织数据患者… 可以有1个或多个研究(单次成像检查) … 可以有1个或多个系列。 阅读详情

相关推荐

Erocool是一个编程项目 - 实现一个基于Python的简单游戏

在本文中,我们介绍了Erocool编程项目,它是一个基于Python的简单游戏。我们讨论了该项目的目标、功能和实现细节,并提供了一个简单的代码示例来说明玩家输入和答案验证的过程。此外,我们提到了故事情节和关卡设计以及图形界面的重要性,以增强游戏的乐趣和可视化效果。通过实现这个项目,你可以锻炼自己的编程技能,并创造出一个有趣的游戏来娱乐自己和其他人。

TechCraze的博客 4396

EroCoolSpider:EroCool漫画图集网站爬虫

EroCoolSpider 爬虫 支持列表页爬取和详情页爬取 所有爬取的图集将位于Gallery文件夹下的对应名称的文件夹内, meta.json中保存的是图集的元信息,如标签,图片数,图片源链接等 支持链接输入或通过启动参数预设爬取链接 BatchDownload.py可以自动多进程批量下载列表页内容 CollectCover.py可以CollectCover.py已下载图集的封面至Cover文件夹(默认为图集已下载图片的第一张) OpenGallery.py可以打开指定名称的图集(而避免使用让人厌烦的Windows搜索功能) .bat文件为已封装的启动命令,各文件和对应功能见于预期的: 文件名 功能 start.bat 无参数启动爬虫 start_batch.bat 启动列表批量下载 start_language_Chinese.bat 爬取中文图集 start_language

冠层分析法提取叶面积指数及其应用

冠层分析法是利用植物冠层空间结构分析LAI的方法。其基本原理是通过相机或扫描仪对植物冠层垂直方向的照片或图像进行获取,再运用图像处理方法实现植被的自动识别和覆盖度计算,以此推算LAI。假设有一块田地,需测量其LAI,首先在田地中央设置一杆高度为3米、朝向田地中心、覆盖角度为50度的相机。利用上述函数,对相机采集到的图像进行处理,即可得到田地的LAI。在Matlab中,读取图片可以使用imread函数,对图片进行预处理可以使用imadjust函数调整灰度,使用imbinarize函数进行二值化处理。

m0_47037246的博客 715

博客已迁移到新地址https://github.com/Devinwon

为便于与大家更好的交流学习,已迁移到https://github.com/Devinwon cnblogs同时停止更新~~~ 转载于:https://www.cnblogs.com/reaptem/p/8282512.html

weixin_30770783的博客 1万+

【Accelerated C++】重点回顾(续)

看了刘未鹏推荐过的C++入门经典《Accelerated C++》,读此书的过程中一再感叹“大师就是大师,他可以很轻松的把东西的本质呈现在你面前”,这本书采用了现实中与我们很接近的学生成绩信息管理这一例子,层层推进,一步一步引出C++中的知识点,根据任务提出解决方案,让你感受到C++中一些设计的比要性。 一下是我读此书时做的笔记,谨用于记忆。 ps:这篇是第二篇,之前的笔记

AutoVision (by 仙道菜) 9487

Windows下安装mongodb

1.1下载 mongodb的官网: http://www.mongodb.org 我下载的是:mongodb-win32-x86_64-2.4.9.zip 1.2 解压   把mongodb-win32-x86_64-2.4.9.zip放到某个位置,解压。我放的是D:\ Program Files目录。   解压后的路径为D:\ Program Files\mongodb\mong

Ero~Cool 7万+

那个时候的我(漫画连载)

原作者:画龙 出处:5D多媒体【那个时候的我】——画龙系列漫画选 亲切!可爱!有意思!仿佛看到了自己,今天在5D看到,作者用随性的画笔,幽默诙谐的言语为我们勾勒了一个纯真年代。在这里,你总能找到自己童年的影子。这是作者的童年回忆,也是我们的童年回忆。作者很巧妙得把过去和现在联系在一起,给人一种微妙的感觉,产生共鸣,不信你看看…… 转自:http://blog.csdn.net/zgyatou/ar

ξσ Dicky's Blog σξ 7783

tomcat5.0+mysql配置JDBCRealm,DBCP,ssl,及中文乱码解决详解资料

作者:未知 来源:http://www.54r.cn 加入时间:2006-10-24 准备环境:1.j2sdk-1_4_2-windows-i586.exe //jdk2.mysql-4.0.20d-win.zip /

rain的专栏 961

Tomcat5.0+mysql配置JDBCRealm,DBCP,ssl,中文乱码处理

准备环境:1.j2sdk-1_4_2-windows-i586.exe //jdk2.mysql-4.0.20d-win.zip  //mysql数据库3.mysqlcc-0.9.4-win32.zip //mysqlGUI控制4.jakarta-tomcat-5.0.27.exe //tomcat服务器5.mysql-connector-java-3.0.14-production.zip //

ycg01的专栏 1888

rpc简介及原理

1.RPC简介及原理介绍 RPC技术内部原理是通过两种技术的组合来实现的:本地方法调用 和 网络通信技术。 1.1 RPC简介 在上述本地过程调用的例子中,我们是在一台计算机上执行了计算机上的程序,完成调用。随着计算机技术的发展和需求场景的变化,有时就需要从一台计算机上执行另外一台计算机上的程序的需求,因此后来又发展出来了RPC技术。特别是目前随着互联网技术的快速迭代和发展,用户和需求几乎都是以指数式的方式在高速增长,这个时候绝大多数情况下程序都是部署在多台机器上,就需要在调用其他物理机器上的程序的情况。

weixin_44911248的博客 6160

RPC 原理详解

RPC(Remote Procedure Call),即远程过程调用,它允许像调用本地服务一样调用远程服务。是一种服务器-客户端(Client/Server)模式。远程:指的是需要经过网络的,而不是应用内部、机器内部进行的。过程:也就是方法。可以跨过一段网络,调用另外一个网络节点上的方法。以上就是对远程过程调用的简单理解。同步调用:客户方等待调用执行完成并返回结果。异步调用:客户方调用后不用等待执行结果返回,但依然可以通过回调通知等方式获取返回结果。

氷的博客 3809

我的github网址链接

my github link 转载于:https://www.cnblogs.com/somnus-chen/p/10449673.html

weixin_30920597的博客 2827

2. Implicitly Typed Local Variables(隐式类型)与Implicitly Typed Array(隐式类型数组)

写过JavaScript的朋友或许早就一眼盯住了上文中提到的新关键字“var”,是啊,多么熟悉的字眼儿,如今竟然也在C#当中出现了!如何使用呢?让我们来看一段很简短的代码吧: 1: static void Main(string[] args) 2: { 3: var name = "ZeroCool"; 4: var age = 24;

Autumoon 1万+

值类型和引用类型的区别

似乎“值类型和引用类型的区别”是今年面试的流行趋势,我已然是连续三次(目前总共也就三次)面试第一个问题就遇到这个了,这是多大的概率啊,100%,哈哈,我该买彩票去! 言归正传,咱还是先来探讨探讨这二者之间有什么区别吧。记得有一次电话面试中,我直接跟面试官说:“值类型是现金,引用类型是存折”,后来想想当时说这话虽是有点儿冲动地脱口而出,但也没什么不妥。我这人不善于背理论的教条,喜欢把书本上那些生硬的话跟现实生活中常见的事物联系起来理解和记忆。 直白点儿说:值类型就是现金,要用直接用;引用类型是存折,要用还

5936

一文搞懂RPC原理

了解RPC: RPC(Remote Procedure Call Protocol)——远程过程调用协议: 一般用于实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地资源一样,通过网络传输去访问远端系统资源。 描述: 通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OS...

抛弃幻想,准备斗争 1994

利用selenium和python 爬虫网站代码

利用selenium和python写的程序: from selenium import webdriver import os br = webdriver.Chrome() br.get("https://www.zymk.cn/2/") br.maximize_window() def clear():     global br     try:         br.execute_sc...

环游的博客 467

RPC 原理与实现

文章目录1. RPC 简介1.1 什么是RPCReference: LPC & IPC (本地过程调用)1.2 为什么要用RPC1.2.1 系统架构的演进1.2.2 Web 服务的技术结构1.2.2 SOAP ( Simple Object Access Protocol)1.2.2 REST(REpresentational State Transfort)SOAP & REST......

谈谈1974 5388

分享74个Python爬虫源码总有一个是你想要的

分享74个Python爬虫源码总有一个是你想要的

adendean的博客 1291

zeroCool书签

链接:http://space.itpub.net/13804621 ...

congyuji4066的博客 1671

中国对世界各国的进出口面板数据(2000-2022年).xlsx

中国作为全球最大的贸易国之一,其对各国的进出口数据不仅量级庞大,而且蕴含着丰富的经济信息与趋势动向,对于研究全球经济互动、国际贸易格局、产业链分布以及中国自身经济的发展策略具有一定价值。例如,近年来的数据表明,中国对外出口持续增长,贸易顺差显著,特别是在美元计价下,显示出中国商品在全球市场的竞争力及出口结构的优化升级。同时,中国与RCEP成员国、欧盟、美国、日本等主要贸易伙伴的进出口情况,反映了多边贸易协议下的合作动态与地缘经济关系的变化。一、数据介绍数据名称:中国对世界各国的进出口面板数据数据年份:2000-2022年样本数量:9793条数据格式:面板数据二、指标说明主要包括:年份、报告国家编码、报告国家ISO编码、报告国家、进出口类别编码、进出口类别、合作伙伴国家编码、合作伙伴国家iso代码、合作伙伴国家、商品编码、商品描述、贸易金额三、数据文件中国对世界各国的进出口面板数据(2000-2022年).xlsx

上一篇: 熟练掌握JDK1.5枚举类型
下一篇: 20分钟熟悉猛虎脾气-JDK1.5新特性介绍
dzeng81
博客等级 码龄23年 117粉丝 436原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值