真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

網(wǎng)頁設(shè)計java代碼 java 網(wǎng)頁制作

設(shè)計一個JAVA程序,下載由URL指定的網(wǎng)頁的源代碼,找出其中所有的超鏈接。

import?java.awt.BorderLayout;

我們擁有10年網(wǎng)頁設(shè)計和網(wǎng)站建設(shè)經(jīng)驗,從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁設(shè)計師為您提供的解決方案。為企業(yè)提供成都做網(wǎng)站、網(wǎng)站制作、微信開發(fā)、小程序開發(fā)、成都手機(jī)網(wǎng)站制作H5技術(shù)、等業(yè)務(wù)。無論您有什么樣的網(wǎng)站設(shè)計或者設(shè)計方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計服務(wù)并滿足您的需求。

import?java.awt.event.ActionEvent;

import?java.awt.event.ActionListener;

import?java.io.BufferedReader;

import?java.io.IOException;

import?java.io.InputStream;

import?java.io.InputStreamReader;

import?java點虐 .HttpURLConnection;

import?java點虐 .MalformedURLException;

import?java點虐 .URL;

import?java.util.regex.Matcher;

import?java.util.regex.Pattern;

import?javax.swing.JFrame;

import?javax.swing.JLabel;

import?javax.swing.JPanel;

import?javax.swing.JScrollPane;

import?javax.swing.JTextArea;

import?javax.swing.JTextField;

public?class?HttpViewer?extends?JFrame?{

private?JTextField?urlInput;

private?JTextArea?viewArea;

public?static?void?main(String[]?args)?{

new?HttpViewer();

}

public?HttpViewer()?{

this.setTitle("Http?Viewer");

this.setSize(800,?600);

this.setResizable(false);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

initPanel();

initAction();

this.setVisible(true);

}

//?這個方法用來設(shè)置窗口布局

private?void?initPanel()?{

JPanel?northPanel?=?new?JPanel();

JLabel?urlInputLabel?=?new?JLabel("URL:");

urlInput?=?new?JTextField(60);

northPanel.add(urlInputLabel);

northPanel.add(urlInput);

this.add(northPanel,?BorderLayout.NORTH);

JPanel?centerPanel?=?new?JPanel();

viewArea?=?new?JTextArea(27,?60);

centerPanel.add(new?JScrollPane(viewArea));

this.add(centerPanel);

}

//?這個方法用來設(shè)置事件

private?void?initAction()?{

urlInput.addActionListener(new?ActionListener()?{

public?void?actionPerformed(ActionEvent?e)?{

String?text?=?urlInput.getText();

if?(text?==?null?||?text.length()?==?0)?{

viewArea.setText("您沒有輸入URL");

return;

}

try?{

URL?url?=?new?URL(text);

配碧??????String?context?=?getContent(url);

if?(context?!=?null)?{

渣賣蔽?searchFromText(context);

}

}?catch?(MalformedURLException?e1)?{

viewArea.setText("您輸入的URL不合法:"?+?text);

}

}

});

}

private?String?getContent(URL?url)?{

StringBuffer?builder?=?new?StringBuffer();

int?responseCode?=?-1;

如州?????HttpURLConnection?con?=?null;

try?{

con?=?(HttpURLConnection)?url.openConnection();

con.setRequestProperty("User-Agent",

"Mozilla/4.0?(compatible;?MSIE?5.0;?Windows?NT;?DigExt)");//?IE代理進(jìn)行下載

con.setConnectTimeout(60000);

con.setReadTimeout(60000);

//?獲得網(wǎng)頁返回信息碼

responseCode?=?con.getResponseCode();

if?(responseCode?==?-1)?{

viewArea.setText("連接失敗:"?+?url.toString());

return?null;

}

if?(responseCode?=?400)?{

viewArea.setText("請求失敗,錯誤碼:"?+?responseCode);

return?null;

}

InputStream?is?=?con.getInputStream();

InputStreamReader?isr?=?new?InputStreamReader(is);

BufferedReader?br?=?new?BufferedReader(isr);

String?str?=?null;

while?((str?=?br.readLine())?!=?null)

builder.append(str);

is.close();

}?catch?(IOException?e)?{

e.printStackTrace();

viewArea.setText("IOException:?"?+?url.toString());

}?finally?{

con.disconnect();

}

return?builder.toString();

}

private?void?searchFromText(String?context)?{

viewArea.setText("查找URL中:\n");

Pattern?pattern?=?Pattern點抗 pile("a(?[^]+)*(.*?)/a");

Matcher?matcher?=?pattern.matcher(context);

while?(matcher.find())?{

for?(String?prop?:?matcher.group(1).split("?"))?{

int?indexOf?=?prop.indexOf('=');

if?(indexOf??0)?{

if?(prop.substring(0,?indexOf).equals("href"))?{

String?url2?=?prop.substring(indexOf?+?2,?prop.length()?-?1);

viewArea.append(url2?+?"\n");

}

}

}

}

}

}

java瀏覽器課程設(shè)計

⑴ 怎樣用Java制作一個簡單瀏覽器解決方法

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.*;

importjava.io.*;

importjavax.swing.event.*;

@SuppressWarnings("serial")

,Runnable

{

JButtonbutton;

URLurl;

JTextFieldtext;

JEditorPaneeditPane;

byteb[]=newbyte[118];

Threadthread;

publicWin3()

{

text=newJTextField(20);

editPane=newJEditorPane();

editPane.setEditable(false);

button=newJButton("確定");

button.addActionListener(this);

thread=newThread(this);

JPanelp=newJPanel();

p.add(newJLabel("輸入網(wǎng)址:"));

p.add(text);

p.add(button);

Containercon=getContentPane();

con.add(newJScrollPane(editPane),BorderLayout.CENTER);

con.add(p,BorderLayout.NORTH);

setBounds(60,60,400,300);

setVisible(true);

validate();

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

editPane.addHyperlinkListener(newHyperlinkListener()

{

publicvoidhyperlinkUpdate(HyperlinkEvente)

{

if(e.getEventType()==

HyperlinkEvent.EventType.ACTIVATED)

{

try{

editPane.setPage(e.getURL());

}

catch(IOExceptione1)

{

editPane.setText(""+e1);

}

}

}

}

);

}

publicvoidactionPerformed(ActionEvente)

{

if(!(thread.isAlive()))

thread=newThread(this);

try{

thread.start();

}

catch(Exceptionee)

{

text.setText("我正稿蘆在讀取"+url);

}

}

publicvoidrun()

{

try{

intn=-1;

editPane.setText(null);

url=newURL(text.getText().trim());

editPane.setPage(url);

}

catch(MalformedURLExceptione1)

{

text.setText(""+e1);

return;

}

catch(IOExceptione1)

{

text.setText(""+e1);

return;

}

}

}

publicclassExample3

{

publicstaticvoidmain(Stringargs[])

{

newWin3();

}

}

⑵ 關(guān)于用java自己做一款瀏覽器。其具體的設(shè)計思路是什么,該怎么考慮,從哪方面入手。流程是什么。

你還是先出入門的程序練起吧。。。。

你提到的每一個部件都是一個比較沉重的課題。

⑶ 用java編寫簡易瀏覽器

地址欄如果有變化就不正常了,因為在你的代碼中并沒有執(zhí)行更改地址欄的語句內(nèi):

bol.setSelectedIndex() 或 bol.setSelectedItem();

用 JEditorPane 做一容個類似瀏覽器顯示氏沖的網(wǎng)頁效果很殲敬殲難看。

有很多css,javascript無法正常解析。

如果一個網(wǎng)頁中只含有 div table 這樣的,還好些。

網(wǎng)頁做的越漂亮(因為要做的漂亮就要用到css樣式),顯示出來越難看。

⑷ 用java編寫一個圖片瀏覽器

import java.awt.BorderLayout;

import java.awt.Graphics;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.File;

import java.util.ArrayList;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JPanel;

public class ImageGallery extends JFrame implements ActionListener {

public static final int G_WIDTH = 400, G_HEIGHT = 620;

public static final int L_WIDTH = 1200, L_HEIGHT = 520;

public static final int MAX_R = 3, MAX_C = 2;

public static final int GRID = 1, LARGE = 2;

private JFileChooser chooser;

private JMenuBar toolBar;

private JMenu menu;

private JMenuItem open;

private ArrayListString paths;

private JPanel showingPanel, buttonPanel;

private int page = 1;

private int count = 0;

private int showType = GRID;

private int pageMax;

private JButton last, next, large, grid;

public ImageGallery() {

.setTitle("Image gallery 0.1");

this.setBounds(100, 100, G_WIDTH, G_HEIGHT);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

toolBar = new JMenuBar();

chooser = new JFileChooser();

chooser.setCurrentDirectory(new java.io.File("."));

chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

menu = new JMenu("File");

toolBar.add(menu);

open = new JMenuItem("open");

open.addActionListener(this);

menu.add(open);

paths = new ArrayListString();

this.setJMenuBar(toolBar);

showingPanel = new JPanel();

buttonPanel = new JPanel();

last = new JButton("last");

last.addActionListener(this);

next = new JButton("next");

next.addActionListener(this);

large = new JButton("large");

large.addActionListener(this);

grid = new JButton("grid");

grid.addActionListener(this);

buttonPanel.add(last);

buttonPanel.add(large);

buttonPanel.add(grid);

buttonPanel.add(next);

this.add(buttonPanel, BorderLayout.SOUTH);

this.add(showingPanel);

this.setVisible(true);

}

public void doOpen() {

int result = chooser.showOpenDialog(null);

if (result == JFileChooser.APPROVE_OPTION) {

String directory = chooser.getSelectedFile().getPath();

this.getAllImage(directory);

for (String s : this.paths) {

System.out.println(s);

}

this.showingImage();

}

}

public void getAllImage(String directory) {

paths.clear();

page = 1;

count = 0;

File file = new File(directory);

if (file.isDirectory()) {

String[] list = file.list();

for (String s : list) {

String path = directory + "\\" + s;

File temp = new File(path);

if (!temp.isDirectory()) {

this.paths.add(path);

}

}

}

}

public void changePage(int page) {

if (!paths.isEmpty()) {

switch (showType) {

case GRID:

this.page += page;

if (this.page == 0) {

this.page = 1;

}

if (this.page pageMax) {

this.page = pageMax;

}

break;

case LARGE:

this.count += page;

if (count 0) {

count = 0;

}

if (count paths.size() - 1) {

count = paths.size() - 1;

}

break;

}

this.showingImage();

}

}

public void showingImage() {

this.remove(showingPanel);

showingPanel = new JPanel();

int size = paths.size();

int max = MAX_R * MAX_C;

pageMax = (size % max == 0 ? size / max : size / max + 1);

switch (showType) {

case GRID:

this.setBounds(100, 100, G_WIDTH, G_HEIGHT);

showingPanel.setLayout(new GridLayout(MAX_R, MAX_C - 1));

int i = (page - 1) * max;

int j = page * max;

for (; i j i size; i++) {

String path = paths.get(i);

showingPanel.add(new ImagePanel(path));

}

break;

case LARGE:

int left = count - 1;

int right = count + 1;

this.setBounds(100, 100, L_WIDTH, L_HEIGHT);

showingPanel.setLayout(new GridLayout(1, 2));

if (left = 0) {

showingPanel.add(new ImagePanel(paths.get(left)));

} else {

showingPanel.add(new ImagePanel(""));

}

showingPanel.add(new ImagePanel(paths.get(count)));

if (right size) {

showingPanel.add(new ImagePanel(paths.get(right)));

} else {

showingPanel.add(new ImagePanel(""));

}

break;

}

this.add(showingPanel, BorderLayout.CENTER);

showingPanel.updateUI();

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

new ImageGallery();

}

class ImagePanel extends JPanel {

private ImageIcon image;

ImagePanel(String path) {

image = new ImageIcon(path);

}

public ImageIcon getImageIcon() {

return this.image;

}

@Override

protected void paintComponent(Graphics g) {

// TODO Auto-generated method stub

g.drawImage(image.getImage(), 0, 0, this.getWidth(), this

.getHeight(), this);

}

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

String key = e.getActionCommand();

System.out.println(key);

if (key.equals("open")) {

doOpen();

} else if (key.endsWith("last")) {

changePage(-1);

} else if (key.endsWith("next")) {

changePage(1);

} else if (key.endsWith("large")) {

if (!paths.isEmpty()) {

count =0;

showType = LARGE;

showingImage();

}

} else if (key.endsWith("grid")) {

if (!paths.isEmpty()) {

page = 1;

showType = GRID;

showingImage();

}

}

}

}

⑸ JAVA編寫瀏覽器

可以看下這個專屬

//blog.csdn/LJLOVELZ/archive/2007/05/04/1596205.aspx

⑹ 用java編寫一個瀏覽器

import java.awt.*;

import java.awt.event.*;

import java.*;

import java.io.*;

import javax.swing.*;

import javax.swing.text.DefaultStyledDocument;

//HTTP連接與瀏覽

public class HTTPBrowser extends JFrame{

JTextField jtfAddress; //輸入文件地址或網(wǎng)址

JTextPane jtpShow; //顯示頁面

JTextArea jtaSource; //顯示HTML源文件

public HTTPBrowser(){

super("HTTP連接與瀏覽"); //調(diào)用父類構(gòu)造函數(shù)

jtfAddress=new JTextField(30); //實例化地址輸入框

jtpShow=new JTextPane(); //實例化顯示內(nèi)容框

jtaSource=new JTextArea();

JPanel p1=new JPanel(); //實例化面板

JSplitPane spane=new JSplitPane(JSplitPane.VERTICAL_SPLIT); //實例化分隔面板

p1.add(new JLabel("地址")); //增加組件到面板上

p1.add(jtfAddress);

spane.add(new JScrollPane(jtpShow),JSplitPane.TOP);

spane.add(new JScrollPane(jtaSource),JSplitPane.BOTTOM);

spane.setDividerLocation(130); //設(shè)置分隔位置

spane.setDividerSize(2); //設(shè)置分隔欄尺寸

Container container=getContentPane(); //得到容器

container.add(p1,BorderLayout.NORTH); //增加組件到容器上

container.add(spane,BorderLayout.CENTER);

jtfAddress.addActionListener(new ShowHTMLListener()); //輸入地址文本域事件處理

setSize(380,300); //設(shè)置窗口尺寸

setVisible(true); //設(shè)置窗口可視

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關(guān)閉窗口時退出程序

}

class ShowHTMLListener implements ActionListener {

public void actionPerformed(ActionEvent event) {

try{

URL address=new URL(jtfAddress.getText()); //得到HTML頁面的URL地址

jtpShow.setContentType("text/"); //設(shè)置內(nèi)容格式

jtpShow.setPage(address); //設(shè)置顯示頁面

BufferedReader in= new BufferedReader(new InputStreamReader(address.openStream())); //獲取輸入流

String line;

StringBuffer content = new StringBuffer(); //文件內(nèi)容

while ((line = in.readLine()) != null) { //讀取文件

content.append(line+"\n");

}

jtaSource.setText(new String(content)); //設(shè)置顯示文本

in.close(); //關(guān)閉輸入流

}

catch (Exception ex){

ex.printStackTrace(); //輸出出錯信息

}

}

}

public static void main(String[] args){

new HTTPBrowser();

}

}

這還有一個

import java.awt.*;

import java.awt.event.*;

import java.URL;

import javax.swing.*;

//瀏覽器

public class HTTPBrowserDemo extends JFrame{

JTextField jtfAddress; //輸入文件地址或網(wǎng)址

JButton jbGo; //轉(zhuǎn)到文件按鈕

JTextPane jtpShow; //顯示文件

JLabel jlInfo; //提示信息

public HTTPBrowserDemo(){

super("瀏覽器"); //調(diào)用父類構(gòu)造函數(shù)

jtfAddress=new JTextField(20); //實例化地址輸入框

jbGo=new JButton("轉(zhuǎn)到"); //實例化轉(zhuǎn)向按鈕

jtpShow=new JTextPane(); //實例化顯示內(nèi)容框

jlInfo=new JLabel(); //實例化信息提示標(biāo)簽

JPanel panel=new JPanel(); //實例化面板

panel.add(new JLabel("地址")); //增加組件到面板上

panel.add(jtfAddress);

panel.add(jbGo);

JScrollPane jsp=new JScrollPane(jtpShow); //實例化滾動窗體

Container container=getContentPane(); //得到容器

container.add(panel,BorderLayout.NORTH); //增加組件到容器上

container.add(jsp,BorderLayout.CENTER);

container.add(jlInfo,BorderLayout.SOUTH);

jbGo.addActionListener(new ShowHTMLListener()); //事件處理,發(fā)生按鈕點擊時顯示頁面內(nèi)容

jtfAddress.addActionListener(new ShowHTMLListener());

setSize(350,280); //設(shè)置窗口尺寸

setVisible(true); //設(shè)置窗口可視

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關(guān)閉窗口時退出程序

}

class ShowHTMLListener implements ActionListener { //顯示頁面內(nèi)容事件處理

public void actionPerformed(ActionEvent event) {

try{

jlInfo.setText("正在連接..."); //顯示提示信息

URL address=new URL(jtfAddress.getText()); //得到HTML頁面的URL地址

jtpShow.setPage(address); //設(shè)置顯示頁面

jlInfo.setText("完成");

}

catch (Exception ex){

jlInfo.setText("連接出錯");

ex.printStackTrace(); //輸出出錯信息

}

}

}

public static void main(String[] args){

new HTTPBrowserDemo();

}

}

⑺ 用Java代碼怎么在瀏覽器中顯示一個網(wǎng)頁

package .test;

import java.lang.reflect.Method;

//實現(xiàn)打開瀏覽器并跳到指定網(wǎng)址的類

public class BareBonesBrowserLaunch {

public static void openURL(String url) {

try {

browse(url);

} catch (Exception e) {

}

}

private static void browse(String url) throws Exception {

//獲取操作系統(tǒng)的名字

String osName = System.getProperty("os.name", "");

if (osName.startsWith("Mac OS")) {

//蘋果的打開方式

Class fileMgr = Class.forName(".apple.eio.FileManager");

Method openURL = fileMgr.getDeclaredMethod("openURL", new Class[] { String.class });

openURL.invoke(null, new Object[] { url });

} else if (osName.startsWith("Windows")) {

//windows的打開方式。

Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);

} else {

// Unix or Linux的打開方式

String[] browsers = { "firefox", "opera", "konqueror", "epiphany", "mozilla", "scape" };

String browser = null;

for (int count = 0; count browsers.length browser == null; count++)

//執(zhí)行代碼,在brower有值后跳出,

//這里是如果進(jìn)程創(chuàng)建成功了,==0是表示正常結(jié)束。

if (Runtime.getRuntime().exec(new String[] { "which", browsers[count] }).waitFor() == 0)

browser = browsers[count];

if (browser == null)

throw new Exception("Could not find web browser");

else

//這個值在上面已經(jīng)成功的得到了一個進(jìn)程。

Runtime.getRuntime().exec(new String[] { browser, url });

}

}

}

⑻ 如何用java編寫瀏覽器

正好我前幾天做了一來個自瀏覽器實例,挺容易的其實。就用到了:

1.awtswing編界面和響應(yīng)。

2.網(wǎng)頁顯示區(qū)域是用JEditPane來顯示的。通過在上方設(shè)置一個JTextField輸入url以后,這里獲得url,然后直接setPage到url就行了。也不是太難。

其他沒啥如果樓主要代碼的話留下郵箱。

樓主編瀏覽器大概需要以下知識:

1.javase基礎(chǔ)

2.協(xié)議大致傳輸過程

3.基礎(chǔ)的awtswing,以及窗口響應(yīng)布局等

4.淺顯的多線程知識

⑼ 超簡單的web瀏覽器用java實現(xiàn)

截圖:

進(jìn)入 //網(wǎng)頁:

訪問硬盤上的Html文件:file:盤符://文件名 (如果滿意就采納吧。。)

import java.awt.*;

import java.awt.event.*;

import java.URL;

import javax.swing.*;

public class HTTPBrowserDemo extends JFrame{

JTextField jtfAddress; //輸入文件地址或網(wǎng)址

JButton jbGo; //轉(zhuǎn)到文件按鈕

JTextPane jtpShow; //顯示文件

JLabel jlInfo; //提示信息

public HTTPBrowserDemo(){

super("瀏覽器"); //調(diào)用父類構(gòu)造函數(shù)

jtfAddress=new JTextField(20); //實例化地址輸入框

jbGo=new JButton("轉(zhuǎn)到"); //實例化轉(zhuǎn)向按鈕

jtpShow=new JTextPane(); //實例化顯示內(nèi)容框

jlInfo=new JLabel(); //實例化信息提示標(biāo)簽

JPanel panel=new JPanel(); //實例化面板

panel.add(new JLabel("地址")); //增加組件到面板上

panel.add(jtfAddress);

panel.add(jbGo);

JScrollPane jsp=new JScrollPane(jtpShow); //實例化滾動窗體

Container container=getContentPane(); //得到容器

container.add(panel,BorderLayout.NORTH); //增加組件到容器上

container.add(jsp,BorderLayout.CENTER);

container.add(jlInfo,BorderLayout.SOUTH);

jbGo.addActionListener(new ShowHTMLListener()); //事件處理,發(fā)生按鈕點擊時顯示頁面內(nèi)容

jtfAddress.addActionListener(new ShowHTMLListener());

setSize(350,280); //設(shè)置窗口尺寸

setVisible(true); //設(shè)置窗口可視

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關(guān)閉窗口時退出程序

}

class ShowHTMLListener implements ActionListener { //顯示頁面內(nèi)容事件處理

public void actionPerformed(ActionEvent event) {

try{

jlInfo.setText("正在連接..."); //顯示提示信息

URL address=new URL(jtfAddress.getText()); //得到HTML頁面的URL地址

jtpShow.setPage(address); //設(shè)置顯示頁面

jlInfo.setText("完成");

}

catch (Exception ex){

jlInfo.setText("連接出錯");

ex.printStackTrace(); //輸出出錯信息

}

}

}

public static void main(String[] args){

new HTTPBrowserDemo();

}

}

⑽ 怎樣用Java制作一個簡單瀏覽器

java制作瀏覽器的話,可以考慮使用android來制作一個,簡單實現(xiàn)加載網(wǎng)頁資源等等。

如何用java制作網(wǎng)頁?

怎么用java來編寫網(wǎng)頁,目前比較流行的是SSH(純塌告struts2+spring+hibernate)框架。其實只要有servlet和JSP基礎(chǔ)就可以實現(xiàn),框架只是高效的開發(fā)和管理。

推薦使用SSH框架進(jìn)行開發(fā)。

使用struts2來實現(xiàn)頁面跳轉(zhuǎn),他的標(biāo)簽也可以寫JSP界面。

使用hibernate來進(jìn)行數(shù)據(jù)庫操作的封裝,進(jìn)行自動管理。

使用spring可以整合以上兩個,使控制權(quán)轉(zhuǎn)移給spring,這個就是控制反轉(zhuǎn)。

具體頁面怎么衫渣寫,這個多看下工具書不難。前臺做明頁面可以使用HTML來寫,解析速度快,并且頁面開發(fā)難度低,排版效果好。


分享名稱:網(wǎng)頁設(shè)計java代碼 java 網(wǎng)頁制作
當(dāng)前鏈接:http://weahome.cn/article/ddpesei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部