JSP and Java coding principles

Source: Internet
Author: User
Tags ultraedit

When opening a file, the file encoding is determined by the file header.

 

 

Streamreader sr = new streamreader (@ "F:/cym/temp/1.txt ");
Sr. currentencoding // return code


 

 

All regions in the world have local languages. Regional differences directly result in differences in the language environment. In the process of developing an international program, it is very important to solve the language problem.

This is a problem in the world, so Java
Provides a global solution. The method described in this article is used to process Chinese characters. However, to put it bluntly, it is also applicable to languages used to process other countries and regions in the world.

The Chinese character is dubyte. The so-called double byte means that a double character occupies two bytes (that is, 16 bytes), which are called high and low. Chinese characters are encoded as gb2312.
It is mandatory. Currently, almost all applications that can process Chinese characters support gb2312. Gb2312 includes level 1 and level 2 Chinese characters and Zone 9 characters. The height ranges from 0xa1 to 0xfe
0xa1 to 0xfe. The encoding range of Chinese characters is 0xb0a1 to 0xf7fe.

There is another encoding called GBK, but this is a specification, not mandatory. GBK provides 20902 Chinese characters. It is compatible with gb2312 and the encoding range is 0x8140 to 0 xfefe. All characters in GBK can be mapped to Unicode 2.0 one by one.

In the near future, China will adopt another standard: GB18030-2000 (gbk2k ). It contains fonts of ethnic minorities such as Tibet and Mongolia, and fundamentally solves the problems of insufficient characters.
Problem. Note: It is no longer a fixed length. The second part is compatible with GBK, and the four parts are expanded characters and fonts. Its first and third bytes are from 0x81 to 0xfe, and the second and fourth bytes are from
0x30 to 0x39.

This article does not describe Unicode. If you are interested, you can view "http://www.unicode.org/##more information. Unicode has a feature: it includes all the character fonts in the world. Therefore, the language in each region can establish a unicode ing relationship with Unicode, while Java
It is the use of this point to achieve conversion between different languages.

In JDK, the Chinese encoding is as follows:

Table 1 List of Chinese-related codes in JDK

Encoding Name Description

ASCII 7-bit, same as ascii7

ISO8859-1 8-bit, same as 8859_1, ISO-8859-1, ISO_8859-1, latin1. ..

GB2312-80 16 bits, same as gb2312, gb2312-1980, euc_cn, euccn, 1381, cp1381, 1383, cp1383, iso2022cn, iso2022cn_gb...

GBK is the same as ms936. Note: Case Sensitive

Utf8 is the same as UTF-8

Gb18030 is the same as cp1392 and 1392. Currently, few JDK instances are supported.

In actual programming, more exposure is gb2312 (GBK) and ISO8859-1.

Why is there "?"? No.

As mentioned above, conversion between different languages is done through Unicode. Assume that there are two different languages A and B. The conversion procedure is: convert a to Unicode first, and then convert Unicode to B.

Examples. There is a Chinese character "Li" in gb2312, its encoding is "c0ee", to convert to ISO8859-1 encoding. Step: first convert "Li"
Unicode, if the high byte is not 00, it indicates that it is Chinese/uxxxx), get "674e", and then convert "674e" to ISO8859-1 characters. Of course, this ing won't succeed, because the root in the ISO8859-1 is not
The character corresponding to "674e.

When the ing fails, the problem occurs! When converting from a language to Unicode, if this character is not found in a language, the Unicode code is obtained.
"/Uffffd" ("/u" indicates unicode encoding ,). When converting from Unicode to a language, if a language does not have the corresponding characters
"0x3f" ("?"). This is "?" .

For example


GBK


Starting stream Buf = "0x80 0x40 (0xb0 0xa1 -- Ah)" for new string (BUF,
"Gb2312") the result is "/ufffd/u554a", and then println. The result is "? Ah ", because" 0x80"
0x40 "is a character in GBK, which is not in gb2312 (


0x80 0x40


).

For another example, set string = "/u00d6/u00ec/u00e9/u0046/u00bb/u00f9" to New String
(BUF. getbytes ("GBK") operation, the result is "3fa8aca8a6463fa8b4", where "/u00d6" is not in "GBK"
The corresponding character is "3f", "/u00ec" corresponds to "a8ac", "/u00e9" corresponds to "a8a6 ", "0046" corresponds to "46" (because it is ASCII
"/U00bb" is not found, and "3f" is obtained. Finally, "/u00f9" corresponds to "a8b4 ". The result of println is as follows:
"? Ì é f? ". See? It is not all question marks, because there are characters in the content mapped by GBK and Unicode in addition to Chinese characters. This example is the best example.

Therefore, if a problem occurs during Chinese Character transcoding, it may not always be a question mark! However, after all, there is no quality difference between step 50 and step 100.

You may also ask: What will happen if the source character set does not exist in Unicode? The answer is unknown. Because I have no source character set for this test. However, the source character set is not standardized. In Java
If this happens, an exception is thrown.

Wwww. Chin aitpower. coma8gs7izj14ufuemhnttielclr

What is UTF?

UTF, short for Unicode text format, stands for the Unicode text format. UTF is defined as follows:

(1) If the first nine digits of the Unicode 16-bit character are 0, a byte is used to indicate that the first byte is "0 ", the remaining 7 digits are the same as the last 7 digits of the original character, as shown in figure
"/U0034" (0000 0000 0011 0100), expressed in "34" (0011 0100); (same as the source UNICODE character );

(2) If the first five digits of the Unicode 16-bit character are 0, they are expressed in two bytes. The first byte starts with 110, the top five digits after the first five digits are removed from the source character.
The fifth character is the same. The second byte starts with "10", and the next six digits are the same as the lower six digits in the source character. For example, "/u025d" (0000 0010 0101
1101), converted to "c99d" (1100 1001 1001 1101 );

(3) If the two rules are not met, they are represented in three bytes. The first byte starts with "1110", and the last four digits are the four-byte height of the source character. The second byte starts with "10" and the last six
The third byte starts with "10" and the last six are the lower six digits of the source character. For example, "/u9da7" (1001 1101 1010
0111), converted to "e9b6a7" (1110 1001 1011 0110 1010 );

Java
The relationship between Unicode and UTF in the program, although not absolute: When the string is running in memory, it is represented as Unicode code, while UTF is used to save it to a file or other media. This conversion process is completed by writeutf and readutf.

Well, the basic discussion is almost done. Let's start with the topic below.

Think of this problem as a black box first. First look at the first-level representation of the black box:

Input (charseta)-> process (UNICODE)-> output (charsetb)

Simple: This is an IPO model, that is, input, processing, and output. The same content must be converted from charseta to Unicode to charsetb.

Let's look at the second-level representation:

Sourcefile (JSP, Java
)-> Class
-> Output

In this figure, we can see that the input is JSP and Java
Source file.
The file is the carrier and then output. Further refined to three levels:

JSP-> Temp File-> class
-> Browser, OS console, DB

APP, servlet-> class
-> Browser, OS console, DB

This figure is more clear. The JSP file is in the middle of Java
File, and then generate the class
. While Servlet and common app directly compile and generate class
. Then
Then output to the browser, console, or database.

JSP: from source file to class
Process

The source file of JSP is a text file ending with ". jsp. This section describes the JSP file interpretation and compilation process, and tracks Chinese changes.

1. the JSP Conversion Tool (jspc) provided by the JSP/servlet engine searches for the <% @ page contenttype
= "Text/html;
Charset = charset specified in <JSP-charset> "%>. If <JSP-charset> is not specified in the JSP file, the default settings in JVM are used.
Set file. encoding, in general, this value is a ISO8859-1;

2. jspc uses the command "javac-encoding <JSP-charset>" to explain all the characters in the JSP file, including Chinese and ASCII characters, convert these characters into Unicode characters, convert them to UTF format, and save them as Java
File. When converting an ASCII character to a Unicode character, simply add "00" before it, for example, "a" and convert it to "/u0041" (no reason is required, unicode code table ). Then, after the conversion to UTF, it is changed back to "41! This means that you can use the common text editor to view the Java
File reason;

3. The engine uses commands equivalent to "javac-encoding Unicode"
Compile the file into a class
File;

Let's take a look at the conversion of Chinese Characters in these processes. The source code is as follows:

<% @ Page contenttype = "text/html; charset = gb2312" %>

<HTML> <body>

<%

String A = "Chinese ";

Out. println ();

%>

</Body>

This code is written on ultraedit for Windows. After saving, the hexadecimal encoding of the word "Chinese" is "D6 D0 CE
C4 "(gb2312 encoding ). According to the table, the Unicode code of the Chinese character is "/u4e2d/u6587", which is "E4 B8 ad E6" in UTF.
96 87 ". Open the Java
File, and found that the word "Chinese" is indeed replaced by "E4 B8 ad E6 96 87 ".
Class generated by file Compilation
File.
File.

Look at the JSP specified charset for the ISO-8859-1, you can imagine the GBK file inside the mark iso-8859-1 encoding mark.

<% @ Page contenttype = "text/html; charset = ISO-8859-1" %>

<HTML> <body>

<%

String A = "Chinese ";

Out. println ();

%>

</Body>

Similarly, this file is written using ultraedit, and the word "Chinese" is also saved as gb2312 encoded "D6 D0 ce C4 ". First simulate the generated Java
Files and Classes
Text
The process of the component: jspc uses a ISO-8859-1 to explain "Chinese" and maps it to Unicode. Since the ISO-8859-1 is 8-bit and Latin, its ing rules are
"00" is added before each byte. Therefore, the ing unicode encoding should be "/u00d6/u00d0/u00ce/u00c4". After conversion to UTF, it should be "C3
96 C3 90 C3 8e C3 84 ". Okay. Open the file and check that Java
Files and Classes
In the file, "Chinese" is actually expressed as "C3 96 C3 90 C3 8e C3 84 ".

If <JSP-charset> is not specified in the above Code, the first line is written as "<% @ page contenttype =" text/html"
%> ", Jspc will use the file. Encoding settings to interpret the JSP file. In RedHat
6.2, the processing result is exactly the same as that specified for the ISO-8859-1.

So far, I have explained the process from JSP files to class
The ing process of Chinese Characters During file transformation. One sentence: From "jspcharset to Unicode to UTF ". The following table summarizes the process:

Table 2 "Chinese" from JSP to class
Conversion process

Java in JSP-charset JSP file
Class in the file
File

Gb2312 D6 D0 ce C4 (gb2312) from/u4e2d/u6587 (UNICODE) to E4 B8 ad E6 96 87 (UTF) E4 B8 ad E6 96 87 (UTF)

ISO-8859-1 D6 D0 ce C4

(Gb2312) from/u00d6/u00d0/u00ce/u00c4 (UNICODE) to C3 96 C3 90 C3 8e C3 84 (UTF) C3 96 C3 90 C3 8e C3 84 (UTF)

None (default = file. Encoding) Same ISO-8859-1 with ISO-8859-1 same ISO-8859-1

In the next section, we will first discuss servlet from Java
File to class
File conversion process, and then explain from the class
File output to the client. The reason for this arrangement is that JSP and Servlet have the same processing method in output.

Servlet: from source file to class
Process

The Servlet Source file is ". Java"
. This section describes the servlet compilation process and tracks Chinese changes.

Use "javac" to compile the servlet source file. Javac can contain the "-encoding <compile-charset>" parameter, which means "interpreting the Serlvet source file with the encoding specified in <compile-charset> ".

When the source file is compiled, <compile-charset> is used to interpret all characters, including Chinese and ASCII characters. Then convert the character constant to the Unicode character, and finally convert the Unicode to UTF.

In servlet, you can also set the charset of the output stream. Before the output result
The setcontenttype method achieves the same effect as setting <JSP-charset> in JSP, which is called <servlet-charset>.

Note: three variables are mentioned in this article: <JSP-charset>, <compile-charset>, and <servlet-charset>. Its
.
Off.

See the following example:

Import javax. servlet .*;

Import javax. servlet. http .*;

Class
Testservlet extends httpservlet

{

Public void doget (httpservletrequest req, httpservletresponse resp)

Throws servletexception, Java
. Io. ioexception

{

Resp. setcontenttype ("text/html; charset = gb2312 ");

Java
. Io. printwriter out = resp. getwriter ();

Out. println ("<HTML> ");

Out. println ("# Chinese #");

Out. println ("
}

}

This file is also written in ultraedit for Windows, where the word "Chinese" is saved as "D6 D0 ce C4" (gb2312 encoding ).

Start compilation. The following table shows the differences between <compile-charset> and class
The hexadecimal code of the Chinese character in the file. <Servlet-charset> does not play any role during compilation. <Servlet-charset> only for class
The output of the file is actually <servlet-charset> and <compile-charset> together to achieve the same effect as <JSP-charset> In the JSP file, because <JSP-charset>
File output will be affected.

Table 3 "Chinese" from Servlet Source file to class
Transformation Process

Compile-charset Servlet Source File class
Equivalent Unicode code in the file

Gb2312 D6 D0 ce C4

(Gb2312) E4 B8 ad E6 96 87 (UTF)/u4e2d/u6587 (= "Chinese" in UNICODE ")

ISO-8859-1 D6 D0 ce C4

(Gb2312) C3 96 C3 90 C3 8e C3 84 (UTF)/u00d6/u00d0/u00ce/u00c4 (one 00 each added before D6 D0 ce C4)

None (default) D6 D0 ce C4 (gb2312) Same ISO-8859-1 with ISO-8859-1

Common Java
The compilation process of the program is exactly the same as that of the servlet.

Class
Is the Chinese Representation in the file explicit? OK. Let's take a look at the class.
How does one output Chinese characters?

Class
: Output string

As mentioned above, strings are encoded in Unicode in memory. As for what unicode encoding represents, it depends on the character set from which it maps, that is, its ancestor. This is like when I checked my luggage, it looked like a paper box. What is contained in it depends on what is actually mailed by the mail recipient.

Take a look at the example above. If you encode a string of Unicode codes "00d6 00d0 00ce
00c4 ", if not converted, directly compare it with the Unicode code table, is four characters (and special characters); if it is mapped to the" ISO8859-1 ", directly remove
The previous "00" will get "D6 D0 CE
C4 ", which is four characters in the ASCII code table. If we map it as gb2312, the result may be a lot of garbled characters, because it may not exist in gb2312 (or
It may be) the character corresponds to characters such as 00d6 (if it does not match, it will get 0x3f, that is, the question mark. If it is matched, because the characters such as 00d6 are too high, it is estimated that they are also some special characters, real
The encoding of Chinese Characters in Unicode starts from 4e00 ).

As you can see, the same UNICODE character can be interpreted as different. Of course, one of these is the expected result. In the above example, "D6 D0 CE
C4 should be what we want.
When C4 is output to IE, you can view the word "Chinese" in simplified Chinese. (Of course, if you must use the "Western European character", you will not be able to get any
Why? Because "00d6 00d0 00ce 00c4" was originally converted from the ISO8859-1.

The following conclusions are given:

In the class
Before outputting a string, the Unicode string is re-generated to the byte stream according to a certain internal code, and then the byte stream is input, which is equivalent to a step of "string. getbytes (???)" Operation .??? Represents a character set.

For servlet, this internal code is the internal code specified in the httpservletresponse. setcontenttype () method, that is, the <servlet-charset> defined above.

For JSP, this internal code is the internal code specified in <% @ page contenttype = "" %>, that is, the <JSP-charset> defined above.

For Java
Program, then, this internal code is the internal code specified in file. encoding, the default is the ISO8859-1.

When the output object is a browser

Take the popular Browser IE as an example. Internet Explorer supports multiple internal codes. If IE receives a byte stream "D6 D0 ce C4", you can try to view it with various internal codes. You will find that you can get the correct results when using "simplified Chinese. Because "D6 D0 ce C4" is originally the encoding of "Chinese" in simplified Chinese.

OK, read it completely.

JSP: the source file is a text file in gb2312 format, and the JSP source file contains the Chinese characters "Chinese ".

If <JSP-charset> is set to gb2312, the conversion process is as follows.

Table 4 Changes in JSP-charset = gb2312

Sequence Number step description result

1. Compile the JSP source file and save it in gb2312 format D6 D0 ce C4

(D6d0 = medium cec4 = text)

2. jspc converts JSP source files to temporary Java
File, map the string to Unicode according to gb2312, and write the string to Java in UTF format
E4 B8 ad E6 96 87 in the file

3. Set the temporary Java
Compile the file into a class
File E4 B8 ad E6 96 87

4.
Read the string with readutf in the file, and the Unicode code 44e 2D 65 87 in the memory (4e2d = medium 6587 = text in UNICODE)

5 convert Unicode to byte stream D6 D0 ce C4 Based on JSP-charset = gb2312

6. output the byte stream to IE and set the IE encoding to gb2312 (the author presses: This information is hidden in the HTTP header) D6 D0 ce C4

7. Use "simplified Chinese" in IE to view the result "Chinese" (displayed correctly)

If you specify <JSP-charset> as the ISO8859-1, the conversion process is as follows.

Table 5 process of change when JSP-charset = ISO8859-1

Sequence Number step description result

1. Compile the JSP source file and save it in gb2312 format D6 D0 ce C4

(D6d0 = medium cec4 = text)

2. jspc converts JSP source files to temporary Java
File, map the string to Unicode according to the ISO8859-1, and write the string to Java in UTF format
File C3 96 C3 90 C3 8e C3 84

3. Set the temporary Java
Compile the file into a class
File C3 96 C3 90 C3 8e C3 84

4.
Read the string with readutf in the file, and the Unicode code 00 D6 00 D0 00 ce 00 C4 in the memory

(Nothing !!!)

5 convert Unicode to byte stream D6 D0 ce C4 according to JSP-charset = ISO8859-1

6 output the byte stream to IE and set ie encoding to ISO8859-1 (by: This information is hidden in the HTTP header) D6 D0 ce C4

7 ie uses the "Western European character" to check the garbled result. It is actually four ASCII characters, but it is a strange display because it is greater than 128.

8. Change the Page code of IE to "simplified Chinese" and "Chinese" (displayed correctly)

Strange! Why the <JSP-charset> set to gb2312 and ISO8859-1 is a sample, can be correctly displayed? Because steps 2nd and 5th in table 4 and table 5 are mutually "offset. It is inconvenient to add Step 1 when you specify it as a ISO8859-1.

Check whether <JSP-charset> is specified.

Table 6 changes when JSP-charset is not specified

Sequence Number step description result

1. Compile the JSP source file and save it in gb2312 format D6 D0 ce C4

(D6d0 = medium cec4 = text)

2. jspc converts JSP source files to temporary Java
File, map the string to Unicode according to the ISO8859-1, and write the string to Java in UTF format
File C3 96 C3 90 C3 8e C3 84

3. Set the temporary Java
Compile the file into a class
File C3 96 C3 90 C3 8e C3 84

4.
Read the string with readutf in the file, and the Unicode code 00 D6 00 D0 00 ce 00 C4 in the memory

5 convert Unicode to byte stream D6 D0 ce C4 according to JSP-charset = ISO8859-1

6. output the byte stream to IE, D6 D0 ce C4

7. ie uses the page encoding when sending the request to view the results based on the situation. If it is in simplified Chinese, it will be correctly displayed. Otherwise, you need to execute Step 5 in table 5.

Servlet: the source file is Java
File in the format of gb2312. The source file contains the Chinese characters "Chinese ".

If <compile-charset> = gb2312, <servlet-charset> = gb2312

Table 7 Changes in compile-charset = servlet-charset = gb2312

Sequence Number step description result

1. Write the Servlet Source file and save it in gb2312 format D6 D0 ce C4

(D6d0 = medium cec4 = text)

2 Use javac-encoding gb2312
Compile the source file into a class
File E4 B8 ad E6 96 87 (UTF)

3.
Read the string with readutf in the file, and the Unicode code 44e 2D 65 87 (UNICODE) in the memory)

4 convert Unicode to byte stream D6 D0 ce C4 (gb2312) based on servlet-charset = gb2312)

5. output the byte stream to IE and set the IE encoding attribute to servlet-charset = gb2312 D6 D0 ce C4 (gb2312)

6. Use "simplified Chinese" in IE to view the result "Chinese" (displayed correctly)

If <compile-charset> = ISO8859-1, <servlet-charset> = ISO8859-1

Table 8 changes in compile-charset = servlet-charset = ISO8859-1

Sequence Number step description result

1. Write the Servlet Source file and save it in gb2312 format D6 D0 ce C4

(D6d0 = medium cec4 = text)

2 Use javac-encoding ISO8859-1
Compile the source file into a class
File C3 96 C3 90 C3 8e C3 84 (UTF)

3.
Read the string with readutf in the file, and the Unicode code 00 D6 00 D0 00 ce 00 C4 in the memory

4 convert Unicode to byte stream D6 D0 ce C4 according to servlet-charset = ISO8859-1

5 output the byte stream to IE and set the IE encoding attribute to servlet-charset = ISO8859-1 D6 D0 ce C4 (gb2312)

6. Use the "Western European character" in IE to view the garbled characters (the reason is the same as table 5)

7. Change the Page code of IE to "simplified Chinese" and "Chinese" (displayed correctly)

If you do not specify compile-charset or servlet-charset, the default value is ISO8859-1.

When compile-charset = servlet-charset, steps 1 and 2 can be reversed and offset, and the results are correct. You can try to write compile-charset <> servlet-charset, which is definitely incorrect.

When the output object is a database

When outputting data to a database, the principle is the same as when outputting data to a browser. This section uses Servlet as an example. You can deduce the JSP information by yourself.

Suppose there is a servlet that can receive a Chinese character string from the client (ie, simplified Chinese), and then write it into the database where the internal code is ISO8859-1, then retrieve the string from the database and display it to the client.

Table 9 the output object is the change process in the database (1)

Sequence Number step description result Field

1. Enter "Chinese" in IE D6 D0 ce C4 IE

2 ie converts the string into UTF and sends it to the transmission stream E4 B8 ad E6 96 87

3 servlet receives the input stream and reads 4E 2D 65 87 (UNICODE) servlet with readutf

4 In servlet, the programmer must restore the string to the byte stream D6 D0 ce C4 Based on gb2312.

5 programmers generate new string 00 D6 00 D0 00 ce 00 C4 based on the database internal code ISO8859-1

6. submit the new string to JDBC 00 D6 00 D0 00 ce 00 C4.

7 JDBC detected that the database code is ISO8859-1 00 D6 00 D0 00 ce 00 C4 JDBC

8 JDBC generates byte streams D6 D0 ce C4 Based on the received string according to the ISO8859-1

9 JDBC writes the byte stream to the database D6 D0 ce C4

10 complete data storage D6 D0 ce C4 Database

The following process is used to retrieve data from the database:

11 JDBC extracts byte streams from the database D6 D0 ce C4 JDBC

12 JDBC generates a string according to the character set ISO8859-1 of the database and submits it to servlet 00 D6 00 D0 00 ce 00 C4 (UNICODE)

13 servlet get string 00 D6 00 D0 00 ce 00 C4 (UNICODE) Servlet

14 programmers must follow the database's internal code ISO8859-1 to restore the original byte stream D6 D0 ce C4

15 programmers must generate a new 4E 2D 65 87 String Based on the client Character Set gb2312

(UNICODE)

Servlet is going to output the string to the client

16 servlet: Generate byte stream d6d0 ce C4 servlet Based on <servlet-charset>

17 servlet outputs the byte stream to IE. If <servlet-charset> is specified, it also sets the IE encoding to <servlet-charset> D6 D0 ce C4

18 ie: view the result "Chinese" based on the specified encoding or default encoding (displayed correctly) IE

To explain, steps 4th and 5th in the table are marked in red, indicating that the conversion is performed by the coders. The two steps 4th and 5 are actually one sentence: "New
String (source. getbytes ("gb2312"), "ISO8859-1 ")". The two steps 15th and 16 are also a sentence: "New
String (source. getbytes ("ISO8859-1 "),
"Gb2312 ")". Dear reader, do you realize every detail in this code?

When the client internal code and database internal code are other values, and the output object is the process in the system console, please think for yourself. I understand the principles of the above process and believe you can easily write it out.

So far, it is time to come to an end. The end point is back to the start point, which has almost no effect on programmers.

Because we have long been accused of doing this.

The following is a conclusion.

1,
In the JSP file, you must specify the contenttype. The charset value must be the same as the character set used by the client browser. For the character string constants, no internal code is required to be transferred.
For string variables, you must restore the data to a byte stream that the client can recognize Based on the character set specified in contenttype. Simply put, the string variable is based on <JSP-
Charset> Character Set ";

2,
In servlet, you must use httpservletresponse. setcontenttype () to set charset and set it to be consistent with the client internal code;
For the string constants, you must specify encoding during javac compilation. This encoding must be the same as the character set of the platform for compiling source files. Generally
Gb2312 or GBK; for string variables, like JSP, must be "based on the <servlet-charset> character set ".

 

 

From: http://lei-1021.javaeye.com/blog/218600


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.