当前位置:文档之家› 简单Web服务器设计与实现课程设计

简单Web服务器设计与实现课程设计

简单Web服务器设计与实现课程设计
简单Web服务器设计与实现课程设计

琼州学院电子信息工程学院

课程设计报告

课程名称:计算机网络

设计题目:简单web服务器设计与实现

专业:软件工程

学生姓名:王永浩(11241056)、宋雨(11241060)

夏成鹏(11241066)、黄兵周(11241007)指导教师:陈德祥

日期: 2014年4月6日

目录

摘要 ..................................................................................................................................... - 2 -1前言 .................................................................................................................................. - 2 -1.1 课程设计前准备 ............................................................................................................ - 2 -1.2课程设计的内容........................................................................................................... - 3 -1.3课程设计要求 ............................................................................................................... - 3 -

1.4课程设计平台 ............................................................................................................... - 3 -

2 Web服务器的工作原理.................................................................................................... - 4 -2.1HTTP协议的作用原理................................................................................................. - 4 -2.2J AVA开发语言相关知识与技术 .................................................................................. - 5 -2.2.1 java中的多线程及实现: ....................................................................................... - 5 -2.2.2 I/O字节流操作...................................................................................................... - 7 -2.2.

3 网络架构: ............................................................................................................... - 9 -3开发环境及套字接编程 .................................................................................................. - 10 -3.1W EB服务器的开发环境............................................................................................. - 10 -3.2W EB服务器的套接字编程......................................................................................... - 10 -

3.2.1 ServerSocket类....................................................................................................... - 11 -

4 WEB服务器的设计与实现 ............................................................................................ - 11 -4.1W EB服务器的程序设计流程..................................................................................... - 11 -4.2用J AVA实现W EB服务器的主要设计步骤及程序................................................ - 12 -5测试运行 .......................................................................................................................... - 19 -5.1调试运行 ..................................................................................................................... - 19 -结束语 ................................................................................................................................. - 20 -参考文献 ............................................................................................................................. - 22 -

摘要

WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信,HTTP协议的作用原理包括四个步骤:连接,请求,应答,关闭应答。在课程设计中,系统开发平台为Win7,程序设计语言采用Java,程序运行平台为Eclipse。在程序设计中,采用了结构化与面向对象两种解决问题的方法。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在商业中解决实际问题。

关键词:Java;HTTP;Web服务器

1前言

Internet是目前世界上最大的计算机互联网络,与大家的生活、学习、工作有着越来越密切的关系,它遍布全球,将世界各地各种规模的网络连接成一个整体,其用户群十分庞大,因此,建设一个好的Web站点对于一个机构的发展十分重要。近年来,随着网络用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术在Internet中的广泛应用,Web站点向用户提供的服务将越来越丰富,越来越人性化。

本课程设计主要解决由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信的Web服务器的程序设计。

1.1 课程设计前准备

以下的工作均是建立在大量的调查基础上的,是Web服务器开发前期准备工作所解决的问题。

(1)Java简介

Java是由sun公司开发的一种新型的面向对象的程序设计语言,主要用于web页面的设计[1]。Java语言的流行除了因为它能够编制嵌入HTML文件中的Applet外,还在于Java语言本身的面向对象、简单、平台无关性、安全性、多线程等特点。Java语言的发展颇具传奇性,它与Internet的WWW的迅猛发展是分不开的。由于其发展迅速,有人将它比喻为Internet上的世界语。前面讲到在Internet上Web页面的设计采用的是HTML语言,用户借助于Web浏览器(如Netscape,HotJava,IE等),可以访问

到远程web服务器上静态的、具有超链接的Web页面[2]。

(2)HTTP协议简介

HTTP 协议是应用层的协议,定义了服务器端和客户端之间文件传输的沟通方式。HTTP协议用于从WWW服务器传输超文本到本地浏览器的传送协议。由于HTTP协议支持的服务不限于WWW,还可以是其它服务,它允许用户在统一的界面下,采用不同的协议访问不同的服务。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等[3]。

1.2课程设计的内容

(1)熟悉WWW服务器和WEB服务器的工作原理;

(2)熟悉套接字编程的相关知识;

(3)完成一个简单的WEB服务器的设计与实现,要求能够通过HTTP GET命令获得一个简单的HTML文件;

(4)运行该服务器,并编写一个简单的HTML文件完成测试。

1.3课程设计要求

(1)按要求编写课程设计报告书,能正确阐述设计结果。

(2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作。

(3)学会文献检索的基本方法和综合运用文献的能力。

(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。

1.4课程设计平台

Windows7系统、Eclipse软件平台。

2 Web服务器的工作原理

2.1HTTP协议的作用原理

WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信。HTTP协议是基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间的应用层协议,是通用的、无状态的、面向对象的协议。HTTP协议的作用原理包括四个步骤:连接,请求,应答,关闭应答。

HTTP协议的作用原理包括四个步骤:

(1) 连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。

(2) 请求:Web浏览器通过socket向Web服务器提交请求。HTTP的请求一般是GET或POST命令(POST用于FORM参数的传递)。GET命令的格式为:GET 路径/文件名HTTP/1.0 。其中文件名指出所访问的文件,HTTP/1.0指出Web浏览器使用的HTTP版本。

(3) 应答:Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到后,进行事务处理,处理结果又通过HTTP传回给Web浏览器,从而在Web浏览器上显示出所请求的页面。

例:假设客户机与建立了连接,就会发送GET命令:GET /mydir/index.html HTTP/1.0。主机名为的Web服务器从它的文档空间中搜索子目录mydir的文件index.html。如果找到该文件,Web服务器把该文件内容传送给相应的Web浏览器。

为了告知Web浏览器传送内容的类型,Web服务器首先传送一些HTTP头信息,然后传送具体内容(即HTTP体信息),HTTP头信息和HTTP体信息之间用一个空行分开。

(4)关闭连接:当应答结束后,Web浏览器与Web服务器必须断开,以保证其它Web浏览器能够与Web服务器建立连接。

2.2J AVA开发语言相关知识与技术

Java主要技术有:多线程,I/O流操作,网络编程。

2.2.1 java中的多线程及实现:

Java是面向对象的程序语言,用Java进行程序设计就是设计和使用类,Java为我们提供了线程类Thread来创建线程,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。下面是一个创建启动一个线程的语句:Thread thread1=new Thread(); 声明一个对象实例,即创建一个线程;

Thread1.run(); 用Thread类中的run()方法启动线程;

从这个例子,我们可以通过Thread()构造方法创建一个线程,并启动该线程。事实上,启动线程,也就是启动线程的run()方法,而Thread类中的run()方法没有任何操作语句,所以这个线程没有任何操作。要使线程实现预定功能,必须定义自己的run()方法。Java中通常有两种方式定义run()方法:

通过定义一个Thread类的子类,在该子类中重写run()方法。Thread子类的实例对象就是一个线程,显然,该线程有我们自己设计的线程体run()方法,启动线程就启动了子类中重写的run()方法。

通过Runnable接口,在该接口中定义run()方法的接口。所谓接口跟类非常类似,主要用来实现特殊功能,如复杂关系的多重继承功能。

线程被实际创建后处于待命状态,激活(启动)线程就是启动线程的run()方法,这是通过调用线程的start()方法来实现的。

线程状态:

1)New

当线程对象被创建时,处于该状态。

2)Runnable:就绪状态,线程满足运行的所有条件但没有正在运行的线程位于该状态,有以下几种情况:

a.处于New状态的线程执行start()。

b.处于Running状态的线程失去CPU。

c.处于Otherwise Block状态的线程阻塞解除。

d.处于Lock Block状态的线程阻塞解除。

3)Running:运行状态

处于运行状态的线程可能发生以下几种情况:

a.线程运行结束,进入Dead状态。

b.CPU被分配给其它线程,进入Runnable状态。

c.满足Otherwise Block的条件,进入Otherwise Block状态。

d.由于锁的原因无法执行,进入Lock Block状态。

e.由于等待的原因无法执行,进入Wait Block状态。

4)Dead:死亡状态

线程运行结束,对于主线程main()结束,对于普通用户线程run()结束。

5)Otherwise Block:阻塞状态,阻塞解除后进入Runnable状态

a.调用sleep(),阻塞解除条件为阻塞时间满。

b.调用join(),阻塞解除条件为调用join()的线程执行结束。

注意:线程进入该状态不会释放锁。

6)Lock Block:锁阻塞状态,阻塞解除后进入Runnable状态

由于无法获得需要的锁而阻塞地线程进入该状态,阻塞解除条件为获得所需的锁。

7)Wait Block:等待阻塞状态,阻塞解除后进入Lock Block状态

由于某个资源的原因必须进行等待,则进入该状态。

阻塞解除条件为其它线程调用该资源的notify()或notifyAll()。

下面一个例子实践了如何通过上述两种方法创建线程并启动它们:

// 通过Thread类的子类创建的线程;

class thread1 extends Thread

{ 自定义线程的run()方法;

public void run()

{

System.out.println("Thread1 is running…");

}

}

通过Runnable接口创建的另外一个线程;

class thread2 implements Runnable

{ 自定义线程的run()方法;

public void run()

{

System.out.println("Thread2 is running…");

}

}

程序的主类'

class Multi_Thread 声明主类;

{

plubic static void mail(String args[]) 声明主方法;

{

thread1 threadone=new thread1(); 用Thread类的子类创建线程;

Thread threadtwo=new Thread(new thread2()); 用Runnable接口类的对象创建线程;

threadone.start(); threadtwo.start(); ()方法启动线程;

}

}

运行该程序就可以看出,线程threadone和threadtwo交替占用CPU,处于并行运行状态。可以看出,启动线程的run()方法是通过调用线程的start()方法来实现的(见上例中主类),调用start()方法启动线程的run()方法不同于一般的调用方法,调用一般方法时,必须等到一般方法执行完毕才能够返回start()方法,而启动线程的run()方法后,start()告诉系统该线程准备就绪可以启动run()方法后,就返回start()方法执行调用start()方法语句下面的语句,这时run()方法可能还在运行,这样,线程的启动和运行并行进行,实现了多任务操作。

2.2.2 I/O字节流操作

1)Java中使用流的方式处理数据,基本的处理类为InputStream(字节读入流)和OutputStream(字节输出流)。

2)可以使用各种过滤流对流数据进行过滤,实现各种附加功能。

3)对字节流进行转换和包装可以获得字符流,字符流的基本处理流为Reader(字符读入流)和Writer(字符输出流)。

a.字节流:

InputStream:int read()读入流中的一个字节并返回,数据存放在int的低8位中;int read(byte[])读入流中的若干个字节,存放在byte[]中,返回读入字节的数量;int read(byte[],int,int)读入流中的若干个字节,存放在byte[]中从第一个int参数开始(索引),最大长度为第二个int参数的区间内。

OutputStream:flush()将输出缓冲区中的信息写到真正的输出设备。

调用方法:

①输出缓冲区满:自动调用;

②调用close()时先调用flush():自动调用;

③手动调用flush()

最常见的情况是产生异常时,虽然在finally中会对流执行close(),但在异常条件下,close()能保证对流的关闭,但在调用flush()时会有漏洞。

b.字符流:

优点:操作文本数据时比较直观,读入和写出都以char为基本单位。

缺点:底层依然以字节流方式操作,所以在任何情况下都必须有转换的过程,效率相对较低。操作二进制数据时会存在编码问题,一般不使用字符流操作二进制数据。

InputStreamReader:将字节读入流转为字符读入流。

InputStreamReader(InputStream):使用默认字符集(取决的JVM)将InpustStream转为InputStreamReader。

InputStreamReader(InputStream, String):使用String指定的字符集将InputStream转为InputStreamReader。

OutputStreamWriter:将字符输出流转为字节输出流。

OutputStreamWriter(OutputStream):使用默认字符集(取决于JVM)将OutputStreamWriter转为OutputStream。

OutputStreamWriter(OutputStream, String):使用String指定的字符集将OutputStreamWriter转为OutputStream。

BufferedReader:提供缓冲;readLine()。

BufferedWriter:提供缓冲。

PrintWriter:提供缓冲;print()、println()等方法。

注意:在开发中,一般使用BufferedReader和PrintWriter结合使用完成对字符流的过滤。

2.2.3 网络架构:

1)C/S网络架构

客户端/服务器架构,通常情况下,数据存储在服务器端,客户端和服务器端都有一个独立的应用程序,可以进行独立的操作,通过网络进行数据传输。

常用的传输协议包括:

TCP/IP:基于连接的协议

优点:由于是有连接的传输,对于数据的准确性是有保证的。

缺点:系统资源占用较多。

UDP/IP:无连接的协议(数据报)

优点:系统资源占用少。

缺点:无法保证传输的准确性。

用途:

a.对于数据少量丢失可以接受的应用。

b.存在足够数据冗余的应用。

2)B/S网络架构

浏览器/服务器架构,在服务器端完成几乎所有的功能(包括数据存储),客户端的浏览器只完成和服务器交互和显示服务器传输的信息的功能。

常用的传输协议包括:

http:超文本传输协议。

https:支持多种加密操作的超文本传输协议。

优点:客户端不需要安装任何附加软件,同时整个应用的升级也相对简单。

IP:通过IP Address和Port(端口)定位具体的应用;Port的有效范围是0~65535,通常在开发应用时应避免使用1000以下的端口,1000以下有很多端口被常用应用占用。IP Address在JDK5.0中支持4位或6位两种方式,现在4位的占据主导地位,但将来会逐渐过渡到6位IP地址的模式。

TCP/IP协议的实现:

a.ServerSocket类:服务器端使用,用于监听客户端的请求。

b.Socket类:服务器端和客户端使用,用于完成具体通信的所有功能。

UDP/IP协议的实现:

a.DatagramSocket类:服务器端和客户端使用,用于实现通信的基本功能。

b.DatagramPacket类:服务器端和客户端使用,用于封装通信的内容信息。

3开发环境及套字接编程

3.1W EB服务器的开发环境

该课程设计是基于Java编程语言的设计的Web服务器,开发环境是Eclipse软件和Java Swing。

(1)Eclipse简介

Eclipse 是一个开放源代码的、基于Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件和组件构建开发环境。Eclipse 附带了一个标准的插件集,包括Java 开发工具。Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件,Eclipse 的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能[4]。

(2)Java Swing概述

Swing是不对等基于GUI工具箱的正式名字,它是Java基础类库的一部分。完整的JFC十分庞大,其中包含的内容远远大于Swing GUI工具箱。JFC特性不仅仅包含了Swing组件,而且还包含了一个可访问的API、一个2D API和一个可拖拽的API。Swing拥有一个丰富、便捷的用户界面元素集合,对底层平台依赖的很少,因此与平台相关的bug很少。Swing给予不同平台的用户一致的感官效果[5]。

3.2W EB服务器的套接字编程

Java提供了一个ServerSocket类,程序员可以很方便地用它编写服务器程序。服务器套接字的基本功能类似于坐在电话机旁边等待呼叫到来。从技术上讲,ServerSocket 运行在服务器上并监听到来的TCP连接。

每个ServerSocket都在服务器上的指定端口监听。当远程主机上的客户Socket试图

与指定端口建立连接时,服务器被激活,判定客户程序与服务器的连接,并打开两个主机之间固有的Socket。一旦与服务器套接字建立了连接,则服务器就可以使用固有的Socket对象向客户机发送数据。数据总是通过固有的套接字传递。

3.2.1 ServerSocket类

ServerSocket类包含了用Java编写服务器程序的所有内容。它包括创建新ServerSocket对象的构造器、在指定端口监听连接的方法,以及连接建立后可以发送和接收数据时返回Socket对象的方法。此外,它还有设置不同选项以及各种各样常用的方法,例如toString()方法。

服务器的基本生命期是:

1. 利用ServerSocket()构造器在指定端口创建一个新的ServerSocket;

2. ServerSocket利用它的accept()方法在指定端口监听到来的连接。accept()方法一直处于阻塞状态,直到有客户机试图建立连接。这时accept()方法返回连接客户机何服务器的Socket;

3. 调用getInputStream()方法、getOutputStream()方法或者两者都调用来得到与客户机通信的输入流和输出流,具体调用哪一个方法还是两者都调用与具体服务器的类型有关;

4. 服务器和客户机根据双方都承认的协议进行交互,直到关闭连接时为止;

5. 服务器、客户机或两者均关闭连接;

6. 服务器返回步骤2,等待下一个连接到来。如果在4步花费的时间很长或时间无限期,则wu-ftpd这样的传统Unix服务器会创建一个新的进程来处理每个连接,从而使服务器在同一时刻可以为多个客户机提供服务。

4 WEB服务器的设计与实现

4.1W EB服务器的程序设计流程

根据上述HTTP协议的作用原理,实现GET请求的Web服务器程序的方法如下:

(1) 创建ServerSocket类对象,监听端口8080。这是为了区别于HTTP的标准TCP/IP

端口80而取的;

(2) 等待、接受客户机连接到端口8080,得到与客户机连接的socket;

(3) 创建与socket字相关联的输入流instream和输出流outstream;

(4) 从与socket关联的输入流instream中读取一行客户机提交的请求信息,请求信息的格式为:GET 路径/文件名HTTP/1.0

(5) 从请求信息中获取请求类型。如果请求类型是GET,则从请求信息中获取所访问的HTML文件名。没有HTML文件名时,则以index.html作为文件名;

(6) 如果HTML文件存在,则打开HTML文件,把HTTP头信息和HTML文件内容通过socket传回给Web浏览器,然后关闭文件。否则发送错误信息给Web浏览器;

(7) 关闭与相应Web浏览器连接的socket字。

可以总结出Web服务器的设计流程并作出其设计流程图,如图4-1所示。

图4-1 Web服务器的程序设计流程

4.2用J AVA实现W EB服务器的主要设计步骤及程序

1.点击开始,打开eclipse软件,在左框内建立Java工程,在工程中分别建立相应的包和类,如图4-2所示。

图4-2在工程中分别建立相应的包和类

2.设计主函数程序

在Java工程中建立包webserver和类HttpServer、Request、Response,在对应框中输入以下程序代码:

-------------------------HttpServer.java-------------------------------

package webserver;

import java.io.File;

import java.io.;

import java.io.;

import java.util.Properties;

import java.io.IOException;

import java.util.Enumeration;

import https://www.doczj.com/doc/8e3212734.html,.ServerSocket;

import https://www.doczj.com/doc/8e3212734.html,.Socket;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.PrintStream;

public class HttpServer

{

private int iPort = 8080; //default port

public static String Basic_Root=System.getProperty("user.dir");

public static String WEB_ROOT = System.getProperty("user.dir") + + "webroot";

public static int count=0;

public HttpServer()

{

System.out.println("欢迎使用Web服务器,本服务器只支持静态网页。");

System.out.println("检查配置文件及网页文件夹...");

getConfig();

start();

}

public static void main(String[] args)

{

HttpServer httpserver = new HttpServer();

}

private void getConfig()

{

,"config.ini");

);

,"index.htm");

if(!())

{

System.out.println("配置文件Config.ini损坏,重建中...");

reBuildConfig();

}

if (!())

{

System.out.println("网页存放文件夹不存在,重建中...");

();

System.out.print("完成!请在");

System.out.println(WEB_ROOT+"中放置网页文件...");

System.out.println("Web服务器将重新初始化...");

getConfig();

}

if (!())

{

reBuildWeb();

}

Properties pps = new Properties();

try

{

pps.load(new ("config.ini"));

Enumeration enumer = pps.propertyNames();

String strKey = (String) enumer.nextElement();

String strValue = pps.getProperty(strKey);

if (strValue.equals("") != true)

{

WEB_ROOT = strValue;

}

System.out.println("网页文件的存放路径为: "+WEB_ROOT);

strKey = (String) enumer.nextElement();

strValue = pps.getProperty(strKey);

if (strValue.equals("") != true)

{

iPort = Integer.parseInt(strValue);

}

System.out.println("Web服务器访问端口为:"+iPort);

System.out.println("您可以修改Config.ini文件重新设定以上配置");

System.out.println("启动检查完成,服务器初始化中...");

}

catch (IOException ex)

{

ex.printStackTrace();

}

}

public void start()

{

System.out.println("Web 服务器启动中...");

ServerSocket serverSocket;

try

{

serverSocket = new ServerSocket(iPort);

System.out.println("Web 启动完成!");

System.out.println("您现在可以在浏览器中访问,以测试服务器是否运行");

while (true)

{

Socket socket = null;

InputStream input = null;

OutputStream output = null;

System.out.println("等待连接...");

socket = serverSocket.accept();

System.out.println(socket.getInetAddress().toString()+"请求连接");

input=socket.getInputStream();

output=socket.getOutputStream();

System.out.println("服务器开始处理第"+(++count)+"次连接");

//开始处理并分析请求信息

Request request=new Request(input);

request.parse();

//开始发送请求资源

Response response=new Response(output);

response.setRequest(request);

response.sendStaticResource();

//关系连接

socket.close();

System.out.println("连接已关闭!");

}

}

catch(Exception ex)

{

ex.printStackTrace();

System.out.println("3");

//continue;

}

}

private void reBuildConfig()

{

try

{

();

fos=new (file);

PrintStream sp=new PrintStream(fos);

sp.println("WEB_ROOT=");

sp.println("PORT=");

sp.close();

System.out.println("配置文件Config.ini创建成功,您可以修改WEB_ROOT的值改变网页文件的存放路径,修改PORT的值改变访问端口!");

}

catch (IOException ex)

{

ex.printStackTrace();

System.out.println("重建配置文件Config.ini失败");

System.out.println("服务器将使用默认配置...");

}

}

private void reBuildWeb()

{

try

{

();

fos=new (file);

PrintStream sp=new PrintStream(fos);

sp.println("");

sp.println("");

sp.println("简单Web服务器");

sp.println("");

sp.println("");

sp.println("

服务器已经成功运行
");

sp.println("");

sp.println("");

sp.close();

}

catch (Exception ex)

{

ex.printStackTrace();

}

}

}

-----------------------Request.java------------------------------------

package webserver;

import java.io.InputStream;

public class Request

{

public Request()

{

}

private InputStream input;

private String uri;

public Request(InputStream input)

{

this.input = input;

}

public void parse()//取得请求信息

{

StringBuffer request = new StringBuffer(2048);

int i;

byte[] buffer = new byte[2048];

try

{

i = input.read(buffer);

}

catch (Exception ex)

{

ex.printStackTrace();

i = -1;

}

for (int j = 0; j < i; j++)

{

request.append((char) buffer[j]);

}

System.out.println(request.toString());

uri = parseUri(request.toString());

System.out.println("用户请求:"+this.getUri());

}

private String parseUri(String requestString)//分析请求信息,并返回 {

int index1, index2;

index1 = requestString.indexOf(" ");

if (index1 != -1)

{

index2 = requestString.indexOf(" ", index1 + 1);

if (index2 > index1)

{

return requestString.substring(index1 + 1, index2);

}

}

return null;

}

public String getUri()

{

if (https://www.doczj.com/doc/8e3212734.html,pareTo("/")==0)

{

uri="/index.htm";

}

if (uri.indexOf(".")==-1)

{

uri+=".htm";

}

return uri;

}

}

----------------------------Response.java------------------------------

package webserver;

import java.io.OutputStream;

import java.io.IOException;

import java.io.;

import java.io.File;

public class Response

{

private static final int BUFFER_SIZE = 1024;

Request request;

OutputStream output;

public Response(OutputStream output)

{

this.output = output;

}

public void setRequest(Request request)

{

this.request = request;

}

public void sendStaticResource()//发送请求资源

throws IOException

{

byte[] bytes = new byte[BUFFER_SIZE];

fis = null;

try

{

= new , request.getUri());

if (())

{

System.out.println("开始发送用户请求资源...");

fis = new (file);

int ch = fis.read(bytes, 0, BUFFER_SIZE);

while (ch != -1)

{

output.write(bytes, 0, ch);

ch = fis.read(bytes, 0, BUFFER_SIZE);

}

System.out.println("发送完毕!");

}

else

{

System.out.println("用户请求的资源不存在");

String errorMessage = "HTTP/1.1 404 Found\r\n" +

"Content-Type:text/html\r\n" + "\r\n" +

" Found";

output.write(errorMessage.getBytes());

}

}

catch (Exception ex)

{

ex.printStackTrace();

System.out.println("获取请求资源错误,请检查本地资源设置!");

System.exit(1);

}

if (fis != null)

{

fis.close();

}

}

}

5测试运行

5.1调试运行

为了确保上述程序的正确性,进行调试运行,在工程文件的webroot中建立html

web课程设计的个人总结

web课程设计的个人总结 web课程设计的个人总结一----在线测试系统 这次课程设计我做的是章节自测系统,主要是服务于学生进行阶段性自测和练习。系统分为练习和测试两部分,每一部分又各分若干专题。系统中采用的技术主要有:JDBC 数据库连接技术、和MVC三层架构利用MyEclipse集成开发环境。 虽然系统的基本功能都已实现,但还是存在系统不稳定等多个问题尚待解决。这个系统主要是我自己开发的,但也得到了老师和同学的很大帮助。我正在做系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,之所以能够顺利实现基本功功能,离不开老师和同学的大力相助。事实证明,只靠自己是不能顺利完成一套功能完整的系统的,必须充分利用团队的力量。 开发一套系统,最重要的是细心,并不是一定要做到面面俱到,但也要充分考虑到客户的需求和现实意义,不管什么系统,只用运用到实际应用中,才具 有先现实意义。所以在准备工作中要正确分析社会需求了解现实应用,画出流程图,把大体框架做好,然后再逐一细化。我们不可能做到面面俱到,但一定要做到步步扎实,作为一个程序编程人员,要保持清醒的头脑,以现实为依据,让自己的每一行代码都能实现自己的意义。

通过这次课程设计,我收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。 主要功能及规格分析 登录系统的主要功能要求 欢迎页面 系统安全登录 管理员或普通用户功能选择 在线考试系统的主要实现功能要求 用户修改登录密码 让用户选择考试科目 从试题库中随机出题给用户 根据随机出的题做出用户的考试页面保存用户的答案给用户的试卷评分 查询用户成绩 在线管理系统的主要功能要求 浏览整个系统中的各种用户 添加管理员和普通用户 浏览并添加考试科目 浏览并添加题库 管理员修改登录密码 在线阅卷系统的主要功能要求

简单Web服务器设计与实现课程设计

计算机网络课程设计报告 题目:简单Web服务器设计与实现 专业: 学号: 学生姓名: 指导教师:

摘要 (2) 关键词 (2) 1. 前言 (3) 1.1 课程设计前准备 (4) 1.2 课程设计的内容 (5) 1.3 课程设计要求 (5) 1.4 课程设计平台 (5) 2. Web服务器的工作原理 (5) 2.1 HTTP协议的作用原理 (5) 2.2 Java开发语言相关知识与技术 (6) 3. 开发环境及套字接编程 (11) 3.1 Web服务器的开发环境 (11) 3.2 Web服务器的套接字编程 (12) 4. WEB服务器的设计与实现 (13) 4.1 Web服务器的程序设计流程 (13) 4.2 用Java实现Web服务器的主要设计步骤及程序 (14) 5. 测试运行 (21) 5.1 调试运行 (21) 6.结束语 (23) 参考文献 (24)

WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信,HTTP协议的作用原理包括四个步骤:连接,请求,应答,关闭应答。在课程设计中,系统开发平台为Win7,程序设计语言采用Java,程序运行平台为Eclipse。在程序设计中,采用了结构化与面向对象两种解决问题的方法。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在商业中解决实际问题。 关键词Java;HTTP;Web服务器

Internet是目前世界上最大的计算机互联网络,与大家的生活、学习、工作有着越来越密切的关系,它遍布全球,将世界各地各种规模的网络连接成一个整体,其用户群十分庞大,因此,建设一个好的Web站点对于一个机构的发展十分重要。近年来,随着网络用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术在Internet中的广泛应用,Web站点向用户提供的服务将越来越丰富,越来越人性化。 本课程设计主要解决由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用超文本传送协议(HTTP)进行通信的Web服务器的程序设计。 1.1 课程设计前准备 以下的工作均是建立在大量的调查基础上的,是Web服务器开发前期准备工作所解决的问题。 (1)Java简介 Java是由sun公司开发的一种新型的面向对象的程序设计语言,主要用于web页面的设计[1]。Java语言的流行除了因为它能够编制嵌入HTML文件中的Applet外,还在于Java语言本身的面向对象、简单、平台无关性、安全性、多线程等特点。Java语言的发展颇具传奇性,它与Internet的WWW的迅猛发展是分不开的。由于其发展迅速,有人将它比喻为Internet上的世界语。前面讲到在Internet上Web页面的设计采用的是HTML语言,用户借助于Web浏览器(如Netscape,HotJava,IE等),可以访问到远程web服务器上静态的、具有超链接的Web页面[2]。 (2)HTTP协议简介 HTTP 协议是应用层的协议,定义了服务器端和客户端之间文件传输的沟通方式。HTTP协议用于从WWW服务器传输超文本到本地浏览器的传送协议。由于HTTP协议支持的服务不限于WWW,还可以是其它服务,它允许用户在统一的界面下,采用不同的协议访问不同的服务。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等[3]。

WEB课程设计报告

第一章需求分析 随着网络的飞速发展和普及,越来越多的用户习惯上网浏览新闻。本系统的主要目的就是为用户提供一个方便、及时的网上新闻发布、浏览平台。利用本系统,用户可以直接在网上发布新闻信息并根据自己的需要对新闻进行浏览、检索、增加、或修改。本系统遵循软件工程标准,并按照软件工程规定的流程进行项目的开发。 1.1 安全需求 由于使用JSP编写的程序代码隐蔽,在客户端仅可以看到由JSP输出的动态HTML 文件,因此只要编写程序时注意严谨性,防止SQL注入和cookies欺骗,整个系统的 安全就能得到保障,同时也能防止别人抄袭源代码。本系统的管理员可以有多名,为防止暴力猜解密码,在设计后台登陆模块时需考虑验证码的设计。使用Tomacat6.0 为系统地发布平台,发布方便,安全可靠性比较高。 1.2 性能需求 Tomacat 可以免安装,体积小,运行效率高。能很方便的在Windows 和Linux 系统下发布。同时使用MySql5.0 数据库,安装方便,而且免费使用,MySql 在Windows XP以及Linux下都能被良好的支持。而JSP不但可以用Eclipse,也可以用Dreamweaver 编辑,甚至记事本等文本编辑工具即可编写,因此对系统运行环境非常低,小型服务器和家用电脑均可作为本系统运行环境。 1.3 功能需求 本新闻发布系统将实现以下几个功能 (1)查看新闻功能:任何用户均可以使用查看新闻功能。查看新闻功能在首页显示最新新闻,用户可点击文章标题查看新闻的详细内容,可以点击新闻的类别进入分类列表。 (2)站内新闻检索功能:任何用户均可以使用新闻搜索功能。在新闻查看页面上,用户可以通过在单选按钮中选择检索方式,如新闻标题,关键字,或者正文,然后输入检索条件搜索符合新闻。这里

WEB课程设计报告

Web开发技术课程设计题目:学生信息管理系统 院系:软件工程 班级学号:软件13 -1(21,19) 姓名:唐波 同组成员:史伟良 指导教师:王双利 2014 年12 月12 日

Web开发技术课程设计任务书 一、题目:学生信息管理系统 二、设计要求 (1)史伟良负责设计与实现管理系统登陆界面;唐波负责设计与实现管理系统增删改查界面。 (2)查阅相关资料,自学具体课题中涉及到的新知识。 (3)采用结构化、模块化程序设计方法,功能要完善,具有一定的创新。 (4)所设计的程序有输入、输出。 (5)按要求写出了课程设计报告,于设计结束后2天提交了。其主要内容包括:封皮、课程设计任务书,指导教师评语与成绩、目录、概述、软件总体设计、详细设计、软件的调试、总结、致谢、附录(带中文注释的程序清单)、参考文献。总体设计应配合软件总体模块结构图来说明软件应具有的功能;详细设计应用传统或N-S流程图和屏幕抓图说明;调试的叙述应配合出错场景的抓图来说明出现了哪些错误,如何解决的。 三、课程设计工作量 一般每人的程序量在200行有效程序行左右,不得抄袭。 四、课程设计工作计划 2014年12月8日,指导教师讲解布置题目,学生根据题目准备资料; 2014年12月8日,进行总体方案设计; 2014年12月8日~2014年12月10日,完成程序模块并通过独立编译; 2014年12月10日~2014年12月11日,将各模块集成为一完整的系统, 并录入足够数据进行调试运行; 2014年12月11日~2014年12月12日,验收、撰写课程设计报告。 指导教师签章: 专业主任签章:

Web开发技术课程设计指导教师评语与成绩

Web教务管理系统课程设计报告书

课程设计报告书设计名称: 课程名称: 学生姓名: 专业: 班别: 学号: 指导老师: 日期:年月日

目录 1.开发背景 (1) 2.系统分析 (2) 2.1 需求分析 (2) 2.1.1功能需求 (2) 2.1.2基于ASP.NET的教务管理系统的设计与实现 (2) 2.1.3基于ASP.NET的教务管理系统的设计与实现 (3) 2.2 可行性分析 (3) 2.2.1需求可行性分析 (3) 3.系统设计 (4) 3.1系统目标 (4) 3.2 系统功能结构 (4) 3.2.2教师功能块 (5) 3.2.3管理员功能模块 (6) 3.3 开发环境 (6) 3.4 详细设计 (6) 3.4.1设计数据表 (6) 3.4.2 功能E-R图 (9) 3.4.3设计步骤 (10) 3.4.4关键代码 (11) 3.4.5运行结果 (13) 4.总结 (16)

1.开发背景 近年来随着教育普及,高校教育体制改革,各高校扩大招生规模,使得在校学生人数有了突飞猛进的发展,办学规模逐步增大,专业设置日趋多样化,招生人数逐年增加,教学计划不断更新,这使得高校教务管理的工作量大幅度增加。并且,随着教育改革的深化,教学管理模式也在发生变化,如学分制的逐步实行、学生可以自主选课等。这就对原有的教学管理模式提出了更高的要求。另一方面,随着计算机网络技术的发展,校园网引进各个高校,为无纸化办公提供了有利条件。在这样的形势下,开发一个集成化的教务管理系统不仅势在必行,而且成为一个紧迫的任务。 由于国内各高校的教务管理模式不尽相同,不同学校的实际教务管理情况各有自己的特点,因而个高校需要针对自己的教务管理模式和特点建立自己的教务管理系统。教务管理包括对教学资源——如新生注册和学籍的管理、各学期学生成绩的管理、教学培养方案的执行、教学计划的安排、学生考试的管理、教室评教以及工作量的计算等大量信息。如何高效率的进行管理,并且有序的存放和处理这些巨大的信息,并使之成为教学管理分析和决策的手段,为教学活动产生更好的促进作用,是教务管理信息系统主要功能。 教务管理系统是以管理信息系统为理论依据的。管理信息系统的发展伴随着软件工程的发展而日趋成熟。不断增长的复杂性、多样性和相互关联性是当今管理信息系统的共同特征。而开发一个管理信息系统往往要结合软件工程的理念,使用系统化的方法进行管理信息系统的开发,从而更能有效地控制程序复杂性,减少系统的不合理,减轻维护成本。 在总结原有的管理信息系统优缺点的基础上,结合怀化学院教务工作的实际情况,以校园网为依托,规划设计了怀化学院教务信息管理系统的组成结构,利用目前流行的开发工具和技术,开发基于C/S模式的网站教务管理系统,设计了教务管理系统的各个功能模块、数据库和系统安全等,力求使该系统功能完善、高效适用、安全可靠,更好地为高校教务、教学管理工作服务。

web程序设计课程设计--文件管理系统

目录 一.项目背景 (2) 二.需求分析 (2) 1.系统需求分析 (2) 2.系统分析 (3) 三.后台数据库Microsoft SQL Server 2008 (4) 四.https://www.doczj.com/doc/8e3212734.html, 2010 (4) 五.数据库设计 (4) 1.数据库设计 (4) 2.功能模块设计 (6) 3.系统功能流程 (7) 六.详细功能设计 (7) 七. 课程设计总结 (8) 八.问题与解答 (9)

一.项目背景 文件管理系统是信息技术在公司里管理中最典型的应用。传统文件管理模式是由人工去管理的,效率低下,无法适用于当前对文件管理的需求。文件管理系统基于网络技术,使办公室对文件的管理工作逐步信息化,从而形成由办公室人员与办公室设备共同构成服务于某种目标的人机文件处理系统,因而可以将跨地区的各个部门紧密连接在一起,从而达到对文件的实时共享,可以最大程度地发挥各级人员的工作效率。 通过以上分析,得出总结:文件管理是一个过程,因为网络化的文件管理系统并不局限于办公室,具有广泛的应用范畴。从领导各个业务部门乃至单位的所有工作人员,几乎人人都可能成为使用文件管理系统的用户。随着社会的发展与信息技术的进步,全球信息化的直拨越来越明显,任何单位与企业不再是局限于某一个地区,都在自觉不自觉在参与到了全球化的竞争中。在这个全球化的竞争中,政府机关企事业单位对信息的掌握程序,信息获取是否及果,信息能否得到充分的利用、对信息的瓜刘否敏感准确,已越来越成为徇其竞争能力的最重要因素。综上所述,文件管理系统的前景是非常广阔的。 二.需求分析 1.系统需求分析 随着国家信息基础建设的深入,规划用网络构建文件管理系统以实现管理员对文档的管理,同时实现了对文档的上传,下载,浏览共享文件和删除文件,同时每个用户还有不同的权限。在此让不同用户方便的实现了对文件的有效管理与其它相关信息的有效管理,为人们提供更广泛的、更便捷的信息及服务。 随着各个学校规模的不断扩大,学校内部对文件处理急剧增加。如果通过网络文件管理系统工作,就可以抛弃以入往传统的模式,发文件的一级一级传达的烦琐。用户只要上网就以查看上级添加而存放在数据库中的文件与相互交流信息的目的。因而根据学校对文件管理

Web程序设计课程设计报告模板

Web程序设计课程设计报告课程设计题目:某电子杂志网站 姓名:肖琴霞 专业:软件工程(国际教育) 班级:10211133 学号:1021113321 指导教师:吴光明 2013 年 3 月 10 日

一、设计目的 《Web应用开发课程设计》是实践性教学环节之一,是《Web程序设计》课程的辅助教学课程。通过课程设计,使学生掌握Web网站的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握软件开发的基本概念、原理和技术,将理论与实际相结合,应用现有的开发工具,规范、科学地完成一个完整地应用软件的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。 当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正使得计算机被广泛的应用于信息管理系统。计算机的最大好处在于利用它能够进行信息管理和查询。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。制作电子杂志网站可以方便读者阅读,且可以扩大读者的视野以及提高阅历。 二、设计解决方案 问题解决方案: 经过分析,我们决定利用ASP编程,使用Dreamweaver MX作前端开发工具,利用SQLServer2000作后台数据库管理,数据库驱动使用ADO。 前台功能模块:系统主界面与登录程序设计,杂志查询及订阅,读者服务模块,杂志分类设计等。 后台功能模块:管理主界面与登录程序设计,最新杂志信息管理模块,杂志订阅管理模块,在留言管理模块设计等。后台管理的建立,使管理员可以通过后台很容易的对杂志城进行管理,比如:对最畅销杂志,公告和杂志城注册用户进行添加,删除等管理工作,还可以对读者在线留言的处理。 三、电子杂志网需求分析 3.1 需求分析 需求分析是整个设计过程的基础,最困难、最消耗时间的一步。它的最终结果是提供

web课程设计报告

目录 一、设计任务说明 (2) 1.页面的设计、布局与美化 (2) 2.登录页面的Login.aspx设计 (3) 二、需求分析 (3) 1.安全需求 (4) 2.性能需求 (4) 三、详细设计 (5) 1.数据库设计 (5) 2.模块设计 (7) 四、测试分析 (8) 五、总结 (9)

一、设计任务说明 1.页面的设计、布局与美化 (1)网站主题 本网站致力于构建一个个人展示风采的平台,我们每个大学生都有的自己在学校里面的小小家,那就是我们的个人网站。所以网站的名字“象牙小筑”顾名思义,网站作为在校大学生在校交流的平台,立足于大学文化,力求通过以学校为单位的交流共享达到丰富学生课余生活的目的。 (2)网站规划 网站共有四个个板块,分别为主页,新闻,图片,论坛,小筑论坛和小筑留言。共19个网页,分为两大模块,主要使用了两套css,其中窝窝论坛共9张网页,共用一套css,而其他包括窝窝主页在内的10张网页公用一套css,在其他个别网页还加入了一些css元素。 JavaScript在本网站的应用主要包括两个方面,一是编写了调用文件的方法,二是网站的特效,特效部分主要通过游戏区的几个js小游戏来实现,随鼠标浮动的文字来实现的。 小筑主页的风格以蓝色为主色调,符合现代大学生青春动感的特点。包括简介区,菜单区,和链接区三大部分。分别对应相关页面。并加入背景音乐,没当回到主页,则播放背景音乐。小筑故事在主css中加入了自己的一套css元素,凸显的是一种淡雅轻松的气氛。共分为五个板块,分别是小筑娱乐故事,小筑八卦故事,小筑情感故事,小筑劲爆故事以及一个展示区。 小筑留言本与刚才的网页同样适用的是一套css,主要是利用table标签来实现的简单留言的功能。小筑图片网页一套为单独的一套css小筑论坛是网站的另一大模块,共包括9个页面。以黑白色为基准色,凸显一种自由和谐的氛围。该网页主要分为三大板块:链接区,简介区和消息区。链接区分别实现对游戏区,讨论区和留言板的链接;简介区主要是以简介游戏区和讨论

Javawebapp课程设计报告

《电子商务网站》课程设计报告 项目题目电子拍卖平台系统分析与设计 学生姓名 班级/ 学号 专业\ 指导教师 2011年10月制

1、系统概述 本系统实现的是一个网上拍卖系统,可以实现在线登录,注册;卖家上货,买家出价竞拍;拍卖商品列表、商品拍卖信息和商品搜索等功能,普通的Internet用户可以通过该系统注册成为会员后可以上传自己拍卖的产品和竞拍卖价的商品。 2、网站结构分析与设计 2.1目标设计 竞拍网站所要实现的功能如下。 会员注册:会员注册信息和会员登录验证 会员管理:会员资金管理 买家信息管理 卖家信息管理 2.2系统功能分析设计 竞拍网共分为三个模块:会员注册模块、会员个人管理模块和商品列表和搜索模块。其功能模块划分如图所示:

2.3数据库结构设计 根据系统功能的设计要求和模块划分,表结构设计如下:

2.4 数据库需求分析 数据项和数据结构如下。 会员信息表:自动编号、用户名、密码和身份证号码、资金、日期 商品信息表:自动编号、商品名、上传人、商品详情 卖家信息表:会员编号、商品编号、商品价格、截止时间 商品竞拍成功信息列表:商品名、用户名、竞拍时间、起初价格、最终价格、最成交时间 2.5、开发环境 开发工具:myeclipse 服务器软件:tomcat 数据库:MySQL 3.网站详细设计. 3.1网站流程设计

3.2数据库功能设计 三个存储过程: Onsell:展示拍卖信息,返回当时拍卖的所有信息; Buyingshow:展示某个商品详细信息 Buying:当用户竟拍是执行. 3.3 JA VA控制层设置 POJO包:与每一项功能相对应,设置对象类 DAO包:所有连接数据库的代码 Servlet:所有前台页面的操作过程. 3.4前台设计 以JSP为主,辅助以JS的主流技术,实现网页的动态效果和数据的动态接收,这里是项目最困难的地方. 4.网站的实施 前台\后台\控制分布实施: 4.1,初步软件结构实施 其中DAO包里全部是与数据库有关的连接数据库模式。 POJO包里全部是业务需要的数据结构类。 SERVLET包里全部是逻辑控制的控制模式。

课程设计JavaWeb图书管理系统

信息系统工程与实践 ---- Java Web图书管理系统 班级:文计081-2 姓名:邓森 学号:3

一、题目的选择 Java Web图书管理系统 二、系统分析 系统的可行性分析 可行性分析是在进行初步调查后所进行的对系统开发必要性和可能性的研究,所以也称为可行性研究。信息系统也应从技术可行性,经济可行性和社会可行性三方面来论证。通过长时间的观察与实践,我认为图书馆管理系统的可行性分析如下: 2.1.1经济可行性分析 作为图书馆这样的商业性质较小的场所,其经济成分比重相对较少,主要是支出的费用:其中包括设备购置费、软件开发费用、管理和维护费、人员工资和培训费等。由于各个图书馆实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少,前期的资金投入主要集中于购置图书上。建立信息中心,可将来自各方面的信息集中管理,提高图书管理的计划性和预见性,快速地反馈市场信息。 2.1.2技术可行性分析 技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。 2.1.3社会可行性分析 社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是图书馆完全有可能也有能力采用这样先进的管理技术。它对图书馆带来的影响可以看到: (a)对传统管理理念的冲击,可能引起管理层的变动和人员的调整。 (b)对图书馆工作人员的要求提高,使图书馆在一定的可能下进行机构精简,迫使工作人员继续学习新知识,拓宽图书馆在市场环境下的生存空间。 (c)对图书馆与读者之间业务方式的转变和扩充。 最后,针对用户对图书资源进行有效利用和管理的功能需求,用建模技术对图书管理资源采用面向对象的描述方式,在具体系统功能实现之前,建立起系统模型是很必要的,这里采用具有可视化、能够柔性实现分析、设计和开发系统的统一建模语言实现系统模型构建。同时,结合最流行的基于浏览器的数据管理模式,建议采用基于组件技术的B/S(brower/server)系统结构。 从技术的角度来考虑,随着计算机技术的深入发展,相关的应用软件、技术已经很成熟了,各种信息系统的开发工具也很完善了。运用现在软件行业中流行的开发工具JAVA以及MySQL,借鉴别人成功开发的宝贵经验,可成功开发一个功能基本完善的、符合中小型生产企业生产管理所需的生产管理信息系统。 综上所述,实施生产管理系统在技术上、经济上、运行上以及社会环境上都是可行的,因此,开发生产管理信息系统是可行的。

javaweb课设报告

洛阳理工学院 课程设计报告 课程名称 Java web程序开发入门 专业计算机应用技术 _ 班级 _ 学号 _ 姓名 完成日期 _

目录 第一总体设计 (4) 1.1、设计目的: (4) 1.2设计题目: (4) 1.3.设计要求: (4) 第二设计容: (5) 2.1 题目一 (5) 2.1.1Tomcat服务器启动 (5) 2.1.2下载安装JDK (6) 2.1.3下载Eclipse安装包 (7) 2.2题目二 (8) 2.2.1分析 (8) 2.2.2用户注册设计思想 (9) 2.2.3用户注册功能实现 (9) 2.3题目三 (15) 2.3.1聊天室设计思想 (15) 2.3.2聊天室模块划分 (15)

2.3.3系统功能结构图 (18) 2.3.4 chatroom的模块设计分析 (16) 2.3.5ChatRoom 的关键技术 (19) 2.3.6 代码设计 (17) 2.3.7 聊天室功能实现 (20) 2.4题目四 (21) 2.4.1开发环境: (21) 2.4.2 系统分析: (25) 2.4.3功能实现: (26) 第三实训心得 (29)

第一总体设计 1.1、设计目的: 1、培养学生运用所学课程《Web程序设计(Java)》的理论知识和技能解决实际问题的能力,使学生在系统开发中得到Java Web编程方法及技能的综合训练。 2、培养学生调查研究、查阅技术文献以及编写技术报告的能力。 1.2设计题目: 1.下载并安装JDK、Tomcat、MySQL和Eclipse,完成Java Web应用程序开发环境的搭建。 2.使用JSP Model2模型,开发一个用户注册模块,要求:使用Servlet、JSP和Java Bean技术;界面友好;具有用户输入校验功能,并且在用户输入错误时给出出错信息。 3.使用JSP和JavaScript技术实现一个网络聊天室,功能要求具备一个使用用户昵称登录的页面,在聊天主窗口左侧有当时在线成员列表(建议采用AJAX技术),通过鼠标可以选择说话的对象(不允许自己对自己说话),在聊天时可以设置说话时表情,输入说话的容,单击发送按钮完成会话的发送,会话容实时显示在聊天主窗口,包括发言人、聊天对象、聊天容和会话发起的时间,选作的功能是将会话容保存在数据库中。

web管理系统课程设计

湖北第二师范学院 《Web程序设计》 课程设计报告书 班级:12级计算机应用技术(1)班学号: 姓名: 指导老师:王海军 成绩: 设计时间:2014 年 6 月12 日

简单的Web应用系统设计、开发一.登录页面: 登录页面的设计与代码: 主要以不同的角色进去就会跳进不同的页面就会有不同的权限 源代码: 后台代码: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public partial class login1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Label7.Text = "当前时间是:" + DateTime.Now.ToString() ;

} protected void Button1_Click(object sender, EventArgs e) { if (rbtstudent.Checked == false && rbtteacher.Checked == false) { Response.Write(""); } else { if ( rbtstudent.Checked == true) { SqlConnection con = new SqlConnection("server=.;database=school;integrated security=SSPI"); con.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; https://www.doczj.com/doc/8e3212734.html,mandText = "select * from student where stdid='" + username.Text + "'and stdmm='" + userpwd.Text + "'"; //https://www.doczj.com/doc/8e3212734.html,mandText = "select * from achievement where stdid='" + username.Text + "'"; SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { Session["stdid"] = dr[0]; Session["stdmm"] = dr["stdmm"]; Session["stdxb"]=dr["stdxb"]; Session["stdsfz"] = dr["stdsfz"]; Session["stdrxsj"] = dr["stdrxsj"]; Session["stdbj"] = dr["stdbj"]; Session["stddz"] = dr["stddz"]; Session["stddh"] = dr["stddh"]; Session["stdxm"] = dr["stdxm"]; username.Text= Session["stdid"].ToString(); userpwd.Text= Session["stdmm"].ToString(); Label4.Text = "登陆成功"; username.Text = "";//userID为textbox1 username.Enabled = false; userpwd.Text = "";//userPWD为textbox2

Web课程设计

通信软件开发基础课程设计报告 学院: 班级: 学号: 姓名: 2015年1月14日

目录 作业一 课程设计目的……………………………………………………………课程设计要求……………………………………………………………开发运行的软件……………………………………………………….设计步骤……………………………………………………………………运行结果截图……………………………………………………………总结…………………………………………………………………………… 作业二 课程设计目的……………………………………………………………. 课程设计要求……………………………………………………………. 开发运行的软件…………………………………………………………设计步骤………………………………………………………………...... 运行结果截图……………………………………………………………. 总结…………………………………………………………………………….

作业一:一个显示系统时间的时钟 一.课程设计目的 本课程设计的目的就是要通过一次集中的强化训练,使学生能及时巩固已学的知识,补充未学的但又必要的内容。进行课程设计目的在于加深对程序设计基础中基础理论和基本知识的理解,促进理论与实践的结合,进一步提高程序设计的能力。具体目的如下: 1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。 2.培养学生综合运用所学知识独立完成课题的能力。 3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。 5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。 二.课程设计要求 A.具有显示时钟,“开始”,“停止”按钮的图形界面。 B.点击“开始”按钮,显示时钟;点击“停止”按钮,清除屏幕。 C.时钟界面有12个小时的点,三根不同的指针。短粗指针为时针,长粗指针为分针,长细指针为秒针。可以以不同颜色来区分三根指针。 D.秒针以一秒为单位进行旋转,分和时针要进行近似不停的旋转针。例如,分针每十秒旋转一次,时针每两分钟旋转一次。 三.开发运行的软件 支持Java语言的Eclipse开发软件。 四.设计步骤 导入的类

Web教务管理系统课程设计报告书

设计名称: 课程名称: 学生姓名: 专业: 班别: 学号: 指导老师: 日期:年月日

目录 1.开发背景 (1) 2.系统分析 (2) 2.1 需求分析 (2) 2.1.1功能需求 (2) 2.1.2基于ASP.NET的教务管理系统的设计与实现 (2) 2.1.3基于ASP.NET的教务管理系统的设计与实现 (3) 2.2 可行性分析 (3) 2.2.1需求可行性分析 (3) 3.系统设计 (4) 3.1系统目标 (4) 3.2 系统功能结构 (4) 3.2.2教师功能块 (5) 3.2.3管理员功能模块 (6) 3.3 开发环境 (6) 3.4 详细设计 (6) 3.4.1设计数据表 (6) 3.4.2 功能E-R图 (9) 3.4.3设计步骤 (10) 3.4.4关键代码 (11) 3.4.5运行结果 (13) 4.总结 (16)

1.开发背景 近年来随着教育普及,高校教育体制改革,各高校扩大招生规模,使得在校学生人数有了突飞猛进的发展,办学规模逐步增大,专业设置日趋多样化,招生人数逐年增加,教学计划不断更新,这使得高校教务管理的工作量大幅度增加。并且,随着教育改革的深化,教学管理模式也在发生变化,如学分制的逐步实行、学生可以自主选课等。这就对原有的教学管理模式提出了更高的要求。另一方面,随着计算机网络技术的发展,校园网引进各个高校,为无纸化办公提供了有利条件。在这样的形势下,开发一个集成化的教务管理系统不仅势在必行,而且成为一个紧迫的任务。 由于国内各高校的教务管理模式不尽相同,不同学校的实际教务管理情况各有自己的特点,因而个高校需要针对自己的教务管理模式和特点建立自己的教务管理系统。教务管理包括对教学资源——如新生注册和学籍的管理、各学期学生成绩的管理、教学培养方案的执行、教学计划的安排、学生考试的管理、教室评教以及工作量的计算等大量信息。如何高效率的进行管理,并且有序的存放和处理这些巨大的信息,并使之成为教学管理分析和决策的手段,为教学活动产生更好的促进作用,是教务管理信息系统主要功能。 教务管理系统是以管理信息系统为理论依据的。管理信息系统的发展伴随着软件工程的发展而日趋成熟。不断增长的复杂性、多样性和相互关联性是当今管理信息系统的共同特征。而开发一个管理信息系统往往要结合软件工程的理念,使用系统化的方法进行管理信息系统的开发,从而更能有效地控制程序复杂性,减少系统的不合理,减轻维护成本。 在总结原有的管理信息系统优缺点的基础上,结合怀化学院教务工作的实际情况,以校园网为依托,规划设计了怀化学院教务信息管理系统的组成结构,利用目前流行的开发工具和技术,开发基于C/S模式的网站教务管理系统,设计了教务管理系统的各个功能模块、数据库和系统安全等,力求使该系统功能完善、高效适用、安全可靠,更好地为高校教务、教学管理工作服务。

湖南工程学院 Web java课程设计

课程设计报告 课程名称《JAVAWEB程序设计》 课题名称学生信息管理系统 专业计算机科学与技术 班级 学号 学号 指导教师李远辉陈多 年月日

湖南工程学院 课程设计任务书 课程名称《JAVAWEB程序设计》课题学生信息管理系统 专业班级 学生姓名 学号 指导老师李远辉陈多 审批李远辉陈多 任务书下达日期 任务完成日期

目录 一.设计说明 (1) 1.功能结构 (1) 2. 数据库设计................. 错误!未定义书签。二.功能实现 (2) 1.系统主界面 (2) 2. 添加学生信息 (2) 3. 查看学生信息 (2) 4. 修改学生信息 (2) 三.心得体会 (3) 四.附录 (4) 1. 源代码 (4) 1)Index.jsp (4) 2)addStudent.jsp (7) 3)updateStudent.jsp (8) 4)viewStudent.jsp (10) 5)Student.java (11) 6)StudentManager.java (13) 7)StudentServlet.java (16) 8)Web.xml (18) 五.评分表 (20)

一.设计说明 1.功能结构 图1-1 2.数据库设计 图1-2

二.功能实现 1.系统主界面 图2-1 2.添加学生信息 图2-2 3.查看学生信息 图2-3 4.修改学生信息 图2-4

三.心得体会 经过一个星期的课程设计,收获颇多。也明白了自己在java语言上自己存在的一些问题,也解决了一些一直困恼我的问题。以前自己觉得程序很简单,不放在心上。经过课程设计才使我明白做程序需要的东西是很多的,你既要懂程序而且还要有耐心和恒心。课程设计是对我的一次全面的测试,它既锻炼了我的动手的能力也磨练了我的心理素质。 设计这个系统,我们复习巩固java语言的基础知识,进一步加深对java 语言编程的理解和掌握。了解深入java语言编程的方法和环境。利用所学知识,把理论和实际结合,利用资源,采用模块化的结构,学会使用模仿、修改、自主设计相结合的方法。通过设计学生成绩管理系统,掌握结构化的程序设计思想,实现系统的正常运行,并且提高学生综合分析问题的素质和解决实际问题的编程能力。培养学生在项目开发中的求知精神、团队合作精神、创新意识以及实战能力。 作为java语言课程结课设计,验证自身的学习效果,同时希望利用所学的基本知识和技能,进行简单数据库应用程序设计。在这一个星期的课程设计中,也让我看到了一些java方面薄弱的地方,在接下来的时间里我要好好的巩固这些方面的知识,争取学好这一门课程,熟练掌握java。

Web课程设计报告

课程设计名称: Web课程设计 课程设计时间: 2013.11-2014.1 专业 班级 学生姓名 学号 指导老师

课程设计报告(附页) 《简单小说在线阅读》网站设计 一、目的 通过实践课程的学习,加强对基本理论知识的理解,巩固理论知识并将其应用于实际系统开发中。经过该门课程的学习后,能基本掌握应用 https://www.doczj.com/doc/8e3212734.html,进行Web开发的原理、方法和工具,并且能够巩固C#语言基础,养成按规范编写代码的习惯,逐步培养分析、解决问题的能力以及团队合作、与人沟通能力,为将来进一步学习和深造打下良好的基础。 通过实践主要巩固XHTML、CSS、JavaScript以及.NET框架下开发 Web应用等基本知识;掌握网页设计制作、Web服务器控件的使用、数据绑定及动态网页开发以及各种设计工具使用方法等基本技能;培养分析问题、解决问题的能力,并能够独立自主使用https://www.doczj.com/doc/8e3212734.html,开发Web应用程序。 二、目标 初级目标: 1、熟悉XHTML的各种基本标签; 2、熟练掌握CSS的设计以及在页面中的使用; 3、熟练使用https://www.doczj.com/doc/8e3212734.html,的各种服务器控件; 4、熟练使用DataList、GrideView、SqlDataSource等控件实现数据绑定。 中级目标: 除完成初级目标,还应该: 1、熟练应用各种验证控件,自定义控件及用户控件; 2、掌握使用https://www.doczj.com/doc/8e3212734.html,对象访问数据库; 3、掌握常用的数据绑定控件; 4、掌握https://www.doczj.com/doc/8e3212734.html,应用程序的调试和IIS配置。 高级目标: 除完成初级目标和中级目标,还应该: 1、理解并熟练应用三层架构技术进行系统开发; 2、掌握并熟练应用AJAX; 3、掌握https://www.doczj.com/doc/8e3212734.html,安全性策略。 三、设计背景

Web课程设计报告

《WEB开发技术课程设计》报告员工工资管理系统 班级: 姓名: 学号: 指导教师: 时间:

摘要 工资管理系统是一个企业单位不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以人事工资管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对人事,工资信息进行管理,具有手工管理所无法比拟优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极地提高人事,工资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 关键词:数据库;SQL Server2012;工资管理

目录 第一章开发环境和开发工具 (4) 1.1 开发背景 (4) 1.2 开发环境 (4) 第二章工资管理信息系统的分析与设计 (5) 2.1 系统需求分析 (5) 2.2 系统总体设计 (7) 2.2.1系统设计目标 (7) 2.2.2 开发设计思想 (8) 2.2.3 系统功能模块设计 (8) 第三章数据库设计 (10) 3.1 引入背景 (10) 3.2 数据库需求分析 (10) 3.3 数据库概念结构设计 (11) 3.4 数据库逻辑结构设计 (13) 第四章系统详细设计与实现 (15) 4.1 公共类设计与实现 (15) 4.2 数据访问层内设计与实现 (17) 结论 (24) 参考文献 (25)

web网站个人主页课程设计

引言 目录 第一章概述 (1) 1.1 本课题的研究背景 (1) 1.2 本课题的研究意义 (1) 1.3 现行研究存在的问题及解决办法 (1) 1.3.1 需求分析问题 (1) 1.3.2 代码实现问题 (2) 第二章系统分析 (2) 2.1系统需求分析 (2) 2.2 采用的关键技术介绍 (2) 2.2.1 https://www.doczj.com/doc/8e3212734.html,简介 (2) 2.2.2 Access数据库简介 (3) 2.3 可行性分析 (3) 2.3.1 技术可行性 (3) 2.3.2 操作可行性 (3)

第三章系统概要设计 (5) 3.1 系统总体设计 (5) 3.1.1 运行环境 (5) 3.1.2 系统流程 (5) 3.1.3 系统结构 (6) 3.2 系统接口的概要设计 (7) 3.2.1 用户接口 (7) 3.3 数据库概要设计 (8) 3.3.1 逻辑结构设计 (8) 3.3.2 物理结构设计 (9) 第四章系统详细设计 (10) 4.1 系统界面的详细设计 (10) 4.1.1 普通用户首页的详细设计 (10) 4.1.2 留言界面的详细设计 (11) 4.1.3 后台首页的详细设计 (11) 4.2 数据库详细设计 (12) 4.2.1 表的详细设计 (12) 第五章系统实现 (15) 5.1 系统开发环境 (15) 5.2 系统实现 (15) 5.2.1 客户端系统实现 (15) 5.2.2 后台管理系统实现 (17) 5.3 系统部署 (17) 5.3.1数据库设置 (17) 5.3.2 服务器端运行设置步骤 (18) 第六章性能测试与分析 (19) 参考文献 (20)

相关主题
文本预览
相关文档 最新文档