HTTP客户端的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、实验目的和要求

1、实验目的

HTTP客户端程序的功能是给出一个URL,要求程序能够获得指定URL所指向的内容,对于获得内容不必做进一步的处理,只打印HTML代码即可

●通过HTTP客户端程序使学生掌握网络编程的基本知识和基

本技能;

●使学生掌握HTTP协议的常用命令;

●通过跟踪运行java网络包,使学生了解网络编程实现的细节。

2、实验要求

本实验要求实现一个简单的HTTP客户端,具体内容及要求如下:

●分析HTTP客户端程序的功能,要求能根据给定的URL,获

得URL指向的资源,对于资源的内容可以不做任何的处理,

直接打印即可;

●实现HTTP客户端程序;

●跟踪运行java网络包。

二、系统技术路线和运行环境

1、技术路线:

本系统采用Java语言开发,可以适应几乎所有支持JVM的操作系统。同时Java语言在网络领域的特殊优势,使得它所提供的类库中包含了较为丰富的网络编程API,可以使开发人员方便地开发网络通信类应用程序。

其次还采用了Tomcat6.0与jsp相结合的web建设、使得该系统能够更好的符合实验的要求和标准。

2、系统运行环境:

●硬件环境:

PC机一台

●软件环境:

操作系统:Windows XP、Tomcat6.0、jdk6.0、eclipse等

三、程序的逻辑框图

程序流逻辑框图能够帮助我们更好的熟悉和了解该系统的运行过程,本系统的一些逻辑框图如下所示:

四、程序源代码

1、基于URL的HttpClient.java程序代码如下:import java.awt.*;

import java.awt.event.*;

import java.io.*;

import .*;

import javax.swing.*;

public class HttpClient extends JApplet

implements ActionListener {

//创建一个按钮来点击事件

private JButton jbtView = new JButton("View");

//文本字段来接收文件的名字

private JTextField jtfURL = new JTextField(12);

//文本区域来存储文件

private JTextArea jtaFile = new JTextArea();

//标签来显示状态

private JLabel jlblStatus = new JLabel();

/**初始化applet **/

public void init() {

//创建一个面板来保存一个标签、文本字段和一个按钮JPanel p1 = new JPanel();

p1.setLayout(new BorderLayout());

p1.add(new JLabel("address"), BorderLayout.WEST);

p1.add(jtfURL, BorderLayout.CENTER);

p1.add(jbtView, BorderLayout.EAST);

//放置文本区域和面板

getContentPane().setLayout(new BorderLayout());

getContentPane().add(new JScrollPane(jtaFile),

BorderLayout.CENTER);

getContentPane().add(p1, BorderLayout.NORTH);

getContentPane().add(jlblStatus, BorderLayout.SOUTH);

//登记侦听器

jbtView.addActionListener(this);

}

/**处理“视图”按钮**/

public void actionPerformed(ActionEvent e) {

if (e.getSource() == jbtView)

showFile();

}

private void showFile() {

//声明为阅读文本缓冲流的URL

BufferedReader infile = null;

URL url = null;

try {

//获取URL从文本字段

url = new URL(jtfURL.getText().trim());

//创建一个缓冲流

InputStream is = url.openStream();

infile = new BufferedReader(new InputStreamReader(is));

//获得文件的名字从文本字段

String inLine;

//读取一行,即可将行文本区域

while ((inLine = infile.readLine()) != null) {

jtaFile.append(inLine + '\n');

}

jlblStatus.setText("File loaded successfully");

}

catch (FileNotFoundException e) {

jlblStatus.setText("URL " + url + " not found.");

}

catch (IOException e) {

jlblStatus.setText(e.getMessage());

}

finally {

try {

if (infile != null) infile.close();

}

catch (IOException ex) {}

}

}

/**主要方法**/

public static void main(String[] args) {

//创建一个框架

JFrame frame = new JFrame("HttpClient");

// HttpClient实例创建

HttpClient applet = new HttpClient();

//添加applet实例框架

frame.getContentPane().add(applet, BorderLayout.CENTER);

//调用init()和start()

applet.init();

applet.start();

相关文档
最新文档