- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、实验目的和要求
实验目的
HTTP客户端程序的功能是给出一个URL,要求程序能够获得指定URL所指向的内容,对于获得内容不必做进一步的处理,只打印HTML代码即可
通过HTTP客户端程序使学生掌握网络编程的基本知识和基本技能;
使学生掌握HTTP协议的常用命令;
通过跟踪运行java网络包,使学生了解网络编程实现的细节。
实验要求
本实验要求实现一个简单的HTTP客户端,具体内容及要求如下:
分析HTTP客户端程序的功能,要求能根据给定的URL,获得URL指向的资源,对于资源的内容可以不做任何的处理,直接打印即可;
实现HTTP客户端程序;
跟踪运行java网络包。
二、系统技术路线和运行环境
1、技术路线:
本系统采用Java语言开发,可以适应几乎所有支持JVM的操作系统。同时Java语言在网络领域的特殊优势,使得它所提供的类库中包含了较为丰富的网络编程API,可以使开发人员方便地开发网络通信类应用程序。
其次还采用了Tomcat6.0与jsp相结合的web建设、使得该系统能够更好的符合实验的要求和标准。
2、系统运行环境:
硬件环境:
PC机一台
软件环境:
操作系统:Windows XP、Tomcat6.0、jdk6.0、eclipse等
程序的逻辑框图
程序流逻辑框图能够帮助我们更好的熟悉和了解该系统的运行过程,本系统的一些逻辑框图如下所示:
W
Web服务器
互联网
独立的应用程序
Web浏览器
客户端读取文件
本地文件
客户端从web服务器读取文件
接受URL请求进行域名解析
接受URL请求进行域名解析
向目标Web服务器发送连接请求
域名解析返回IP地址
返回出错信息
调用ipv6协议栈,与web服务器建立TCP6连接
IP地址
域名
Ipv4地址
Ipv6地址
通信并在Web服务器和客户端之间转发数据
是
是
是
否否
否否
否否
URL与地址之间的处理过程
开始
开始
返回
接收HTTP方法并设定方法标志
计算URL
接收HTTP方法并设定方法标志
接收并处理控制数据
存在网页?
HTTP方法?
GET
N
Y
POST
HTTP解析流程
程序源代码
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)
您可能关注的文档
最近下载
- 最新最完整的的厂房设施确认实施方案.pdf
- 工程造价专业大学生职业生涯规划书.docx VIP
- 档案管理10号令解读(网).ppt
- 重庆《轻质隔墙条板应用技术标准》DBJ50T 338-2019.pdf
- (冀人版)科学五年级上册全册知识点.docx
- 电子工业版信息科技七年级上册3-1 “互联网+”在学习中的应用 教案.pdf VIP
- 2024-2025学年高中生物 第4章 种群和群落 第4节 群落的演替说课稿 新人教版必修3.docx
- 10 数学史问题与一元一次方程(含答案析) -七年级数学之专攻一元一次方程各种类型题的解法(人教版).docx
- 锅炉本体焊接作业指导书.pdf
- 钣金加工:折弯工艺手册.doc VIP
文档评论(0)