黑马程序员 Java练习-自定义图形化界面模拟浏览器访问Tomcat服务器
2013-12-27 16:34
756 查看
----------------------Android培训、Java培训、期待与您交流! ----------------------
前提是打开Tomcat服务,并且保证你的项目已经加载到Tomcat服务器上
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
/*
练习:自定义图形化界面模拟浏览器访问Tomcat服务器
客户端:图形化界面模拟浏览器访问Tomcat服务器
文本框用于输入地址
文本区域用于显示服务器返回的数据
客户端:
1、使用字符串切割方法从输入的地址中获取服务器端点、端口号和要访问的资源
2、创建Socket端点,指定服务器地址和端口号
3、创建打印流,向Socket输出流打印数据,
4、将请求信息打印到Socket输出流,发送到服务器
5、创建输入流,读取服务器返回的信息
返回的数据:
服务器响应信息和客户端请求的数据
*/
class MyIEByGUI {
private Frame f;
private Button but;
private TextField tf;
private TextArea ta;
private Dialog d;
private Button okBut;
public MyIEByGUI() {
init();
}
//初始化窗体
public void init() {
f = new Frame("MyFrame");
but = new Button("转到");
tf = new TextField(30);
ta = new TextArea(20, 40);
d = new Dialog(f, "提示信息", true);
okBut = new Button("确定");
f.setBounds(300, 150, 500, 400);
f.setLayout(new FlowLayout());
f.add(tf);
f.add(but);
f.add(ta);
myEvent();
f.setVisible(true);
}
//为窗体,按钮等添加事件监听
public void myEvent() {
okBut.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == e.VK_ENTER)
;
d.setVisible(false);
}
});
tf.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER)
show();
}
});
d.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
d.setVisible(false);
}
});
okBut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
d.setVisible(false);
}
});
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
but.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
show();
}
});
}
//定义方法,显示获取到的数据
private void show() {
ta.setText("");
// 获取文本框输入的地址
String url = tf.getText();// http://192.168.1.105:8080/myweb/index.html // 获取IP地址的首位置索引
int index1 = url.indexOf("//") + 2;
// 从index1开始获取"/"的索引
int index2 = url.indexOf("/", index1);
// 截取含IP地址和端口号的字符串
String str = url.substring(index1, index2);
// 截取路径
String path = url.substring(index2);
// 分别获取IP地址和端口号
String[] arr = str.split(":");
String host = arr[0];
int port = Integer.parseInt(arr[1]);
Socket sock = null;
try {
// 创建客户端端点,并指定服务器地址和端口号
sock = new Socket(host, port);
} catch (Exception e) {
throw new RuntimeException("连接服务器失败!");
}
try {
// 创建打印流,将请求信息写入Socket输出流 ,发送给服务器
PrintWriter out = new PrintWriter(sock.getOutputStream(), true);
out.println("GET " + path + " HTTP/1.1");
out.println("Accept: */*");
out.println("Accept-Language:zh-cn");
out.println("Host: 192.168.1.105:11000");
out.println("Connetction: Closed");
out.println();
out.println();
// 创建输入流,读取服务器返回的数据
BufferedReader bufr = new BufferedReader(new InputStreamReader(sock
.getInputStream()));
String line = null;
while ((line = bufr.readLine()) != null)
ta.append(line + "\r\n");
} catch (Exception e) {
throw new RuntimeException("请求失败!");
} finally {
try {
sock.close();
} catch (IOException e) {
System.out.println("客户端端点关闭失败!");
}
}
}
public static void main(String[] args) {
new MyIEByGUI();
}
}
----------------------Android培训、Java培训、期待与您交流! ----------------------
前提是打开Tomcat服务,并且保证你的项目已经加载到Tomcat服务器上
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
/*
练习:自定义图形化界面模拟浏览器访问Tomcat服务器
客户端:图形化界面模拟浏览器访问Tomcat服务器
文本框用于输入地址
文本区域用于显示服务器返回的数据
客户端:
1、使用字符串切割方法从输入的地址中获取服务器端点、端口号和要访问的资源
2、创建Socket端点,指定服务器地址和端口号
3、创建打印流,向Socket输出流打印数据,
4、将请求信息打印到Socket输出流,发送到服务器
5、创建输入流,读取服务器返回的信息
返回的数据:
服务器响应信息和客户端请求的数据
*/
class MyIEByGUI {
private Frame f;
private Button but;
private TextField tf;
private TextArea ta;
private Dialog d;
private Button okBut;
public MyIEByGUI() {
init();
}
//初始化窗体
public void init() {
f = new Frame("MyFrame");
but = new Button("转到");
tf = new TextField(30);
ta = new TextArea(20, 40);
d = new Dialog(f, "提示信息", true);
okBut = new Button("确定");
f.setBounds(300, 150, 500, 400);
f.setLayout(new FlowLayout());
f.add(tf);
f.add(but);
f.add(ta);
myEvent();
f.setVisible(true);
}
//为窗体,按钮等添加事件监听
public void myEvent() {
okBut.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == e.VK_ENTER)
;
d.setVisible(false);
}
});
tf.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER)
show();
}
});
d.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
d.setVisible(false);
}
});
okBut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
d.setVisible(false);
}
});
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
but.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
show();
}
});
}
//定义方法,显示获取到的数据
private void show() {
ta.setText("");
// 获取文本框输入的地址
String url = tf.getText();// http://192.168.1.105:8080/myweb/index.html // 获取IP地址的首位置索引
int index1 = url.indexOf("//") + 2;
// 从index1开始获取"/"的索引
int index2 = url.indexOf("/", index1);
// 截取含IP地址和端口号的字符串
String str = url.substring(index1, index2);
// 截取路径
String path = url.substring(index2);
// 分别获取IP地址和端口号
String[] arr = str.split(":");
String host = arr[0];
int port = Integer.parseInt(arr[1]);
Socket sock = null;
try {
// 创建客户端端点,并指定服务器地址和端口号
sock = new Socket(host, port);
} catch (Exception e) {
throw new RuntimeException("连接服务器失败!");
}
try {
// 创建打印流,将请求信息写入Socket输出流 ,发送给服务器
PrintWriter out = new PrintWriter(sock.getOutputStream(), true);
out.println("GET " + path + " HTTP/1.1");
out.println("Accept: */*");
out.println("Accept-Language:zh-cn");
out.println("Host: 192.168.1.105:11000");
out.println("Connetction: Closed");
out.println();
out.println();
// 创建输入流,读取服务器返回的数据
BufferedReader bufr = new BufferedReader(new InputStreamReader(sock
.getInputStream()));
String line = null;
while ((line = bufr.readLine()) != null)
ta.append(line + "\r\n");
} catch (Exception e) {
throw new RuntimeException("请求失败!");
} finally {
try {
sock.close();
} catch (IOException e) {
System.out.println("客户端端点关闭失败!");
}
}
}
public static void main(String[] args) {
new MyIEByGUI();
}
}
----------------------Android培训、Java培训、期待与您交流! ----------------------
相关文章推荐
- 黑马程序员-Java之自定义图形化界面的浏览器访问本地的Tomcat服务器
- Java网络编程(模拟浏览器访问Tomcat服务器)
- TCP-自定义图形界面浏览器访问tomcat服务器
- 黑马程序员_自定义浏览器访问tomcat
- TCP-URL对象方法替换split方法简化代码自定义图形界面浏览器访问tomcat服务器
- java程序模拟浏览器访问Web服务器的处理过程
- 黑马程序员——Java基础---图形化界面编程
- [Jweb] 第一个通过 tomcat 配置,浏览器访问的 web 界面
- linux搭建smb文件共享服务,java上传文件共享服务器,tomcat端口直接访问
- 黑马程序员-Java-图形化界面-day22
- 关于使用nat123软件实现外网访问内网的部署在Tomcat服务器中的Java Web项目
- 黑马程序员----java基础图形化界面GUI
- tomcat正常启动,在服务器本地可以访问,在服务器以外浏览器不能访问
- [Jweb] 第一个通过 tomcat 配置,浏览器访问的 web 界面
- nat123 + tomcat 在内网搭建外网可以访问的java web服务器
- java搭建本地服务器,android客户端访问,tomcat配置详细步骤
- 访问java的tomcat服务器以中文命名的HTML网页报错404
- 黑马程序员--基础--第二篇--网络编程自定义浏览器和服务器
- Java图形化界面GUI-01-----黑马程序员
- 黑马程序员_Java基础_网络编程_客户端服务端数据传输,交互,客户端请求服务原理,自定义浏览器,URL统一资源定位符