当前位置:文档之家› Java HTTP协议编程实验报告

Java HTTP协议编程实验报告

广州大学学生实验报告

开课学院及实验室:电子楼418A 室2014年 11 月 27 日

学院计算机科学与

教育软件学院

年级、专

业、班

网络工程113

姓名小玉学号

实验课程名称网络编程成绩

实验项目名称HTTP协议编程指导

老师

樊志平

一、实验目的

WEB服务器也称为WWW服务器,主要功能是提供网上信息浏览服务,是目前使用最广泛的服务。HTTP协议是万维网中使用最广泛的协议,也是Web 服务消息传递的主要传输协议。本实验通过设计和实现简单的WEB服务器和浏览器,使学生熟练掌握HTTP协议的编程,并对WEB服务器的工作原理有比较深入的了解。此外,本实验需要学生能结合TCP套接字编程、多线程编程、输入输出流编程和面向对象分析与设计技术加以解决实际问题,因此实验能提高学生综合运用所学知识并解决实际问题的能力。

二、使用仪器、器材

微机一台

操作系统:WinXP

编程软件:eclipse

三、实验内容及原理

实现简单的Web浏览器和web服务器。四、实验过程原始数据记录

package experiment03;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.text.EditorKit;

import javax.swing.text.html.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import .*;

import java.util.*;

public class HttpClient extends JFrame {

private JPanel jpNorth = new JPanel();

private JLabel lblAddress = new JLabel("请输入网址:");

private JTextField jtfAddress = new JTextField("http://");

private JButton btnConnect = new JButton("连接"); private JButton btnPrior = new JButton("后退"); private JButton btnNext = new JButton("前进");

private JPanel jpCenter = new JPanel();

private JEditorPane jepContent = new JEditorPane(); private JScrollPane jsp = new JScrollPane(jepContent); //记录历史网址

ArrayList history = new ArrayList(); private int currentIndex = -1;

public HttpClient()

{

this.setLayout(new BorderLayout());

this.add(jpNorth, BorderLayout.NORTH);

jpNorth.setLayout(new FlowLayout());

jpNorth.add(lblAddress);

jtfAddress.setPreferredSize(new Dimension(300,25));

jpNorth.add(jtfAddress);

jpNorth.add(btnConnect);

jpNorth.add(btnPrior);

jpNorth.add(btnNext);

//设置内容区域

this.add(jpCenter,BorderLayout.CENTER);

jpCenter.setLayout(new BorderLayout());

jpCenter.add(jsp,BorderLayout.CENTER);

EditorKit editKit =

jepContent.getEditorKitForContentType("text/html");

jepContent.setEditorKit(editKit);

jepContent.setEditable(false);

//设置事件处理程序

btnConnect.addActionListener(new ActionListener(){ @Override

public void actionPerformed(ActionEvent e) {

try {

if(jtfAddress.getText().trim().isEmpty()) return;

jepContent.setPage(jtfAddress.getText());

history.add(jtfAddress.getText());

currentIndex=history.size()-1;

} catch (IOException e1) {

e1.printStackTrace();

}

}

});

//前进按钮事件

btnNext.addActionListener(new ActionListener(){ @Override

public void actionPerformed(ActionEvent e) {

if(currentIndex == -1 || currentIndex==history.size()-1) return;

currentIndex++;

try {

jepContent.setPage(history.get(currentIndex));

jtfAddress.setText(history.get(currentIndex));

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

});

//后退按钮事件

btnPrior.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e) {

if(currentIndex<=0) return;

相关主题