您的位置:首页 > 运维架构 > Tomcat

黑马程序员 Java练习-自定义图形化界面模拟浏览器访问Tomcat服务器

2013-12-27 16:34 921 查看
----------------------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培训、期待与您交流! ----------------------



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息