文档库 最新最全的文档下载
当前位置:文档库 › JAVA网络程序设计实验报告

JAVA网络程序设计实验报告

JAVA网络程序设计实验报告
JAVA网络程序设计实验报告

Java 网络程序设计实验五:JDBC

班级:

姓名:

学号:

日期:2010-6-8

实验五:JDBC

一.实验目的

1.掌握SQL语句和MYSQL数据库操作命令;

2.掌握关系型数据库设计规则;

3.掌握JDBC类库包使用规则。

二.实验内容

1.学习SQL语言基本语法,了解MYSQL数据库,掌握JDBC相关知识;2.利用MYSQL设计个人信息数据库,使用JDBC进行连接和操作;

3.完成以下各内容程序,截存运行结果图,并提交实验报告。

三.基础知识:

1.基础概念

●SQL(Struct Query Language, 结构化查询语句)

是标准的数据库操作命令集合,它允许可以对数据库中的多个对象进行操作,对于表对象存在Insert, Update, Delete, Select, Modify, Truncate, Create, Drop等操作。基础语法如下:

●Select字段1[,字段2,字段3] from 数据表A[,数据表

B] where 条件1 and(or) 条件2 order by

●Insert into 数据表(字段列表)values(值)

●Update 数据表set 字段1=值1[,字段2=值2] where 条

件1 and(or) 条件2

●Delete from 数据表where条件1 and(or) 条件2

●关系型数据库

关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。表与表之间的数据记录有关系。

用户用查询(Query)来检索数据库中的数据。一个Query是一个用于指定数据库中行和列的SELECT语句。关系型数据库通常包含下列组件:客户端应用程序(Client),数据库服务器(Server),数据库(Database)。

SQL(Structured Query Language)Client端和Server端的桥梁,Client 用SQL来象Server端发送请求,Server返回Client端要求的结果。现在流行的大型关系型数据库有IBM DB2、Oracle、SQL Server、SyBase、Informix等。关系型数据库管理系统中储存与管理数据的基本形式是二维表

MYSQL数据库

MYSQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL 关系型数据库于1998年1月发行第一个版本。它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

MySQL开发组于2001年中期公布MySQL4.0版本。在这个版本中将有以下新的特性被提供:新的表定义文件格式、高性能的数据复制功能、更加强大的全文搜索功能。在此之后,MySQL开发着希望提供安全的数据复制机制、在BeOS操作系统上的MySQL实现以及对延时关键字的定期刷新选项。随着时间的推进,MySQL对ANSI 92/ANSI 99标准完全兼容。

由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

2.JDBC

JDBC(Java DataBase Connectivity, Java数据库连接)是由一组Java类和接口组成的API, 相关类包括在java.sql类库包中。JDBC架构如图5-1所示。

图5-1 JBDC架构图

JDBC是由一系列连接(Connection)\SQL语言(Statement)和结果集(ResultSet)构成。通过JDBC URL提供一种标识数据库的方法, 可以使相应的驱动程序识别

该数据库并与之建立连接,JDBC URL由三个部分组成, 之间用”:”间隔。

jdbc:<驱动程序连接机制>:<数据ODBC名>

连接时,首先通过DriverManager类加载数据库设备驱动程序,该类负责选取数据库驱动程序和建立新的数据库连接。注意,驱动管理器只能击活系统已登录的驱动程序。你可以通过自注册方法,添加需要的数据库驱动程序。

1)利用驱动程序列表设置系统属性jdbc.drivers,

Jdbc.drivers = com.pointbase.jdbc.jdbcDriver : com.foo.aDriver

2)当驱动程序注册成功后,就可以用来装入驱动程序类来调用驱动程序,Class.forName(“com.pointbase.jdbc.jdbcDriver”)

当数据库驱动程序已注册,就可以连接指定的数据库设备了,如果要访问一个在WIN32系统中已注册的数据库设备时,步骤如下:

1)加载驱动程序

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

2)创建指定数据库的URL

String url = “jdbc:odbc:fred”;

3)建立数据库连接

DriverManager.getConnection(url, “userID”, “password”);

当数据库连接成功后可执行操作,在Java语言中提供了两种操作方法:分别为根据SQL语句提供查询,并返回一个结果集的executeQuery(String SQL);以及根据SQL语言进行对数据对象的增加、删除和修改等操作,并返回一个操作成功的行好或者行数的executeUpdate(String SQL);

ResultSet executeQuery(String sql) throws SQLException

Int executeUpdate(String sql) throws SQLException

在对数据库进行操作时,可能出现的异常有:

●SQLException,SQL语句有错误;

●BatchUpdateException,批量修改数据对象异常;

●SQLWarning,SQL语句警告;

●DataTruncation,数据清空异常。

查询结果集resultset接口,JA V A的接口定义如图5-2所示。

图5-2 结果集接口

一个数据表代表一个数据结果集合,它通常是一个对数据库查询申明(statement)的执行结果。

一个ResultSet对象维护一个指向数据纪录行的指针,初始情况下是指向第一行之前。ResultSet的next()方法是将结果集指针移动到下一条纪录,当已经是最后移行了,将返回一个false值,这个值可以用来作为判断循环结束的条件,在一般情况下使用while循环来依次列出结果集中所有的纪录,如

Statement stmt = new Statement();

ResultSet rs = stmt.executeQuery();

While(rs.next()){

……

}

A default ResultSet object is not updatable and has a cursor that moves forward only. Thus, you can iterate through it only once and only from the first row to the last row. It is possible to produce ResultSet objects that are scrollable and/or updatable. The following code fragment, in which con is a valid Connection object, illustrates how to make a result set that is scrollable and insensitive to updates by others, and that is updatable. See ResultSet fields for other options. 一个默认的ResultSet 对象是不可以修改的,它有一个单方向,向前移动的游标。所以,你可以在数据集中从前到后浏览一遍数据

四.主要方法:

1.resultSet

四.实验实例://数据库访问BEAN import java.sql.*; import java.util.*; import java.io.*;

public class accessDBtest{

String DBDriver = "com.mysql.jdbc.Driver";

String ConnStr = "jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=GBK";

Connection conn = null;

ResultSet rs =null;

public accessDBtest(){

try{Class.forName(DBDriver);

}catch(Exception e){

System.err.println("DBconn():" + e.getMessage());

e.printStackTrace();}}

public ResultSet executeQuery(String sql){

rs = null;

try{conn = DriverManager.getConnection(ConnStr, "root" ,"chengzhen1987");

Statement stmt = conn.createStatement();

rs = stmt.executeQuery(sql);

}catch(SQLException ex){System.err.println("aq.executeQuery:" + ex.getMessage());}

return rs;}

public String executeUpdate(String sql){

try{ conn = DriverManager.getConnection(ConnStr, "root" ,"chengzhen1987");

Statement stmt = conn.createStatement();

stmt.executeUpdate(sql);

rs = stmt.executeQuery("select last_insert_id() as rowId");

int rowId=0;

while(rs.next()){

rowId = rs.getInt("rowId");}

return String.valueOf(rowId);

}catch(SQLException ex){

System.err.println("aq.executeUpdate:" + ex.getMessage());

return ex.toString();}}

public void close(){

rs = null;

try{https://www.wendangku.net/doc/fb11767462.html,mit();

conn.close();

}catch(Exception e){}}

//服务器端

import https://www.wendangku.net/doc/fb11767462.html,.*;

import java.io.*;

import java.sql.*;

public class server{

ServerSocket s = null;

Socket c = null;

accessDBtest adbt = new accessDBtest();

public server(int port){

try{

ServerSocket s = new ServerSocket(port);

System.out.println("Start Listening on port: " + port);

while(true){

c = s.accept();

PrintStream out = new PrintStream(new BufferedOutputStream(c.getOutputStream(), 1024) ,false);

DataInputStream in = new DataInputStream(new BufferedInputStream(c.getInputStream()));

out.println("Welcome to My Chat Server, Please send your ID to me");

out.flush();

String str = in.readLine();

System.out.println(str);

out.println("Please Wait for Login Check");

out.flush();

String [] temp = str.split(":");

ResultSet rs = adbt.executeQuery("select count(*) as a from cheng where name='" + temp[0] +"' and pwd='" + temp[1] +"'");

rs.next();

if(rs.getInt("a") == 1){

System.out.println("Correct User Login");

out.println("Login OK");

out.flush();

}else{

System.out.println("Error User can't Login");

out.println("Error Login");

out.flush();}

out.close();

in.close();}

}catch(Exception e){

e.printStackTrace();

System.err.println("Start can't Listening on port: " + port);}} public static void main(String [] args){

new server(10000);}}

//客户端

import java.awt.*;

import java.awt.event.*;

import https://www.wendangku.net/doc/fb11767462.html,.*;

import java.io.*;

public class client {

TextField name = new TextField("MyName",20);

TextField pwd = new TextField("MyPWD",20);

Label nt = new Label("UserName");

Label nw = new Label("UserPWD");

Label proc = new Label("");

Button ok = new Button("Login");

Frame f = new Frame("登录客户端");

Socket c = null;

Font font = new Font("Serif",Font.BOLD,30);

public client(){

f.setLayout(new GridLayout(3,2));

f.add(nt);

f.add(name);

f.add(nw);

f.add(pwd);

f.add(proc);

f.add(ok);

nt.setFont(font);name.setFont(font);nw.setFont(font);

pwd.setFont(font);proc.setFont(font);ok.setFont(font);

f.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

f.dispose();

System.exit(0);}});

ok.addActionListener(new Listener());

f.pack();

Toolkit tk=Toolkit.getDefaultToolkit();

Dimension screenSize=tk.getScreenSize();

int height=screenSize.height;

int width = screenSize.width;

f.setLocation((width-f.getWidth())/2, (height-f.getHeight())/2);

f.show(); }

public static void main(String [] args){

new client();}

public class Listener implements ActionListener{

public void actionPerformed(ActionEvent e){

if(e.getSource() == ok){

try{

changeProc cp = new changeProc(f, proc);

cp.start();

String na = name.getText().trim();

String pw = pwd.getText().trim();

ok.setLabel("Waiting....");

ok.setEnabled(false);

Thread.sleep(5000);

c = new Socket("localhost", 10000);

DataInputStream in = new DataInputStream(c.getInputStream());//分别对应服务器端的O/I流

PrintStream out = new PrintStream(c.getOutputStream());

String str = in.readLine();

if(str.startsWith("Welcome")){

out.println(name.getText().trim()+":"+pwd.getText().trim());

out.flush();

Thread.sleep(500);

str = in.readLine();

System.out.println(str);

Thread.sleep(500);

str = in.readLine();

System.out.println(str);

cp.stop();

if(str.startsWith("Error")){

ok.setLabel("Login Error");

}else{

ok.setLabel("Login OK");

Frame nf = new Frame("新开启的用户窗口");

nf.setSize(400, 300);

nf.show();

f.hide();}

ok.setEnabled(true);}

}catch(Exception e1){}}}}

class changeProc extends Thread{

Frame f;

Label l;

public changeProc(Frame f, Label l){

this.f = f;

this.l = l;}

public void run(){

int i=0;

String pr = new String("");

while(true){

pr = "";

for(int k=0; k

pr += "■";

l.setText(pr);

i++;

if(i>10)i=0;

try{Thread.sleep(500);

}catch(Exception e){}}} }}

Test数据库中cheng表中存储数据

客户端登陆界面

登陆成功

五.实验题目:

1)管理员管理用户注册信息(增、删、改、查询)

//数据库访问BEAN

import java.sql.*;

import java.util.*;

import java.io.*;

public class accessDB{

String DBDriver = "com.mysql.jdbc.Driver";

String ConnStr = "jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=G BK";

Connection conn = null;

ResultSet rs =null;

public accessDB(){

try{Class.forName(DBDriver);

}catch(Exception e){

System.err.println("DBconn():" + e.getMessage());

e.printStackTrace();}}

public ResultSet executeQuery(String sql){

rs = null;

try{conn = DriverManager.getConnection(ConnStr, "root" ,"chengzhen1987");

Statement stmt = conn.createStatement();

rs = stmt.executeQuery(sql);

}catch(SQLException ex){

System.err.println("aq.executeQuery:" + ex.getMessage());}

return rs;}

public String executeUpdate(String sql){

try{conn = DriverManager.getConnection(ConnStr, "root" ,"chengzhen1987");

Statement stmt = conn.createStatement();

stmt.executeUpdate(sql);

rs = stmt.executeQuery("select last_insert_id() as rowId");

int rowId=0;

while(rs.next()){

rowId = rs.getInt("rowId");}

//https://www.wendangku.net/doc/fb11767462.html,mit();

return String.valueOf(rowId);

}catch(SQLException ex){

System.err.println("aq.executeUpdate:" + ex.getMessage());

return ex.toString();}}

public void close(){

rs = null;

try{https://www.wendangku.net/doc/fb11767462.html,mit();

conn.close();

}catch(Exception e){}}

//SQL程序

import java.io.*;

import java.awt.*;

import java.awt.event.*;

import java.sql.*;

public class sqlQuery extends Frame{

TextArea sqlStr = new TextArea(4,40);

List lItems = new List(25);

Button badd = new Button("增加");

Button bdelete = new Button("删除");

Button bQuery = new Button("查询");

Button bOk = new Button("更新");

Font f = new Font("Serif",Font.BOLD,25);

public sqlQuery(){

this.setLayout(new BorderLayout());

this.add(sqlStr, BorderLayout.NORTH);

this.add(lItems, BorderLayout.CENTER);

Panel buttonPane = new Panel();

buttonPane.add(bdelete);

buttonPane.add(badd);

buttonPane.add(bOk);

buttonPane.add(bQuery);

this.add(buttonPane, BorderLayout.SOUTH);

badd.setFont(f);

bdelete.setFont(f);

sqlStr.setFont(f);

lItems.setFont(f);

bOk.setFont(f);

bQuery.setFont(f);

//内部类

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

dispose();

System.exit(0);}});

badd.addActionListener(new Listener());

bdelete.addActionListener(new Listener());

bOk.addActionListener(new Listener());

bQuery.addActionListener(new Listener()); } public static void main(String args[]){

System.out.println("Starting New...");

sqlQuery mainFrame = new sqlQuery();

mainFrame.setSize(400, 400);

mainFrame.setTitle("*管理员操作窗口*");

mainFrame.setVisible(true);}

class Listener implements ActionListener{

public void actionPerformed(ActionEvent e) throws NullPointerException{

accessDB adb = new accessDB();

if(e.getSource().equals(bQuery)){

try{ResultSet rs = adb.executeQuery(sqlStr.getText().trim());

while(rs.next()){

lItems.add("姓名" + rs.getString("name") + ";密码" + rs.getString("pwd"));}

}catch(Exception exc){

lItems.add(exc.toString());

exc.toString();

}finally{}

}else if(e.getSource().equals(badd)){

try{

adb.executeUpdate(sqlStr.getText().trim());

}catch(Exception exc){

lItems.add(exc.toString());

exc.toString();

}finally{}

}else if(e.getSource().equals(bdelete))

{try{

adb.executeUpdate(sqlStr.getText().trim());

}catch(Exception exc){

lItems.add(exc.toString());

exc.toString();}finally{}

}else{try{

adb.executeUpdate(sqlStr.getText().trim());

}catch(Exception exc){

lItems.add(exc.toString());

exc.toString();

}finally{} } }}}

查询操作

增加操作

更新操作

删除操作

java web实验报告

一.实验目的 实现学生信息管理系统,学生登录身份验证,信息的录入和信息的查询。并在实验的过程中熟练掌握网页设计的各种工具,如Dreamwawer,tomcat等,提高网页设计的能力。 二.实验过程 1.实现基本页面的设计,使用的工具:Dreamwawer。 2.实现服务器端程序设计,对页面数据进行处理。 3.与数据库进行连接,实现对学生数据的操作,如查询,存储, 修改等。 4.进一步完善系统,如页面的美化等等。 本系统有三个模块组成,学生登录模块,学生信息数据库模块,出错处理模块,学生登录以后输入相应的学号,密码,登陆学生信息界面,队学生的成绩等基本信息进行查询,若学号或密码出错,或者不符合,弹出相应的出错界面。本系统采用Jsp+JavaBean+SQL2000设计方式,其中JavaBean担当数据库连接以及逻辑控制,这样在Jsp就省去了繁琐的数据库连接,以及复杂的逻辑控制,使Jsp成为表示逻辑。 三.运用软件 Windows环境下的Tomcat7.0,SQL2000。 四.过程截图: 1.学生登录界面的设计:

2.与数据库系统的连接:

3.实现对学生数据的操作:

4.对学生数据的保护的完善。 1,验证学生身份: Student: import java.sql.*; public class student {

private String name; private String password; private String id; private String jiguan; private String sex; private String dep; public void setDep(String s){dep=s;} public String getDep(){return dep;} public void setSex(String s){sex=s;} public String getSex(){return sex;} public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { https://www.wendangku.net/doc/fb11767462.html, = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getJiguan() { return jiguan; } public void setJiguan(String jiguan) { this.jiguan = jiguan; }

javaweb上机实验报告(学生管理系统)

javaweb上机实验报告(学生管理系统)

————————————————————————————————作者:————————————————————————————————日期: 2

一实验题目 在线学生管理系统 二开发背景简介 随着网络技术的发展和普及许多以前基于CS的应用都开始向BS方向发展,而Java在这方面的应用有着许多其他技术不具备的优点,Java开发Web应用的主要技术是Servlet和Jsp技术,其实Jsp 只Servlet的一种进化方便了开发者的使用。它们都具有强大的功能适用于许多大型项目的开发。在未来基于BS的应用也必将得到较好的发展。本实验是在讲完Jsp和Servlet课程后为掌握所学的知识而做的实验。 三开发工具 本次试验是在Windows平台下开发采用的集成开发工具是Myeclipse8.5,数据库使用的是MySql5.5,服务器采用的是Tomcat7.0。 四实验设计 在本实验中模仿的是MVC设计模式,但由于系统比较小所以省略了业务层,在页面层中直接调用了数据层。在做这个在线学生管理系统中业务基本上都是由Jsp页面完成的没有用到Servlet控制器。 五实现的功能 Bro Tomcat 请求的 JSP处 Mysql Mysql 3

六试验截图 1.登陆界面 登录可以选择是身份,可以是学生,老师,和管理员。 登录界面是login.html,它想login.jsp页面传了3个参数来进行页面的验证,其中验证的部分代码是, String uname = request.getParameter("userName"); String pwd = request.getParameter("userPass"); int i =Integer.parseInt(request.getParameter("identity")); String sql = "select * from userManger where username='"+uname+"' and userpassword='"+pwd+"'"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); if(rs.next()){ session.setAttribute("userId",rs.getString("id")); session.setAttribute("userMark",rs.getString("identitymark")); response.sendRedirect("index.jsp"); }else{ response.sendRedirect("2.html"); } 2.其中系统用的学生表是 4

网络程序设计实验报告-Winsock编程接口实验

网络程序设计 实验报告 实验名称: Winsock编程接口实验 实验类型:____验证型实验_____ __ 指导教师:______________________ 专业班级:_____________________ 姓名:_______________________ 学号:_____________________ 电子邮件:____________ 实验地点:______ _______ 实验日期2013 年 3 月29 日 实验成绩:__________________________

一、实验目的 ●掌握Winsock的启动和初始化; ●掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的使用。 二、实验设计 由实验内容可以知道: 1、编写程序能同时实现对多个域名的解析。比如在控制台输入:getip https://www.wendangku.net/doc/fb11767462.html, https://www.wendangku.net/doc/fb11767462.html,,能输出https://www.wendangku.net/doc/fb11767462.html,和https://www.wendangku.net/doc/fb11767462.html,对应的IP地址列表。 2、编写程序获取并输出本地主机的所有适配器的IP地址,子网掩码,默认网关,MAC 地址。 首先要了解一些基本的知识gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的基本知识gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针。结构的声明与gethostaddr()中一致。 之后要根据内容画出函数流程图

三、实验过程(包含实验结果) 1.在实验过程中调用GetAdaptersInfo()时,出现了undeclared identifier的报错,原因是没有包含其头文件,之后进行一些修改解决了问题. 2.实验结果 3.选择查看本机信息 四、讨论与分析 1.Winsock初始化的作用是什么? 答:使用winsock初始化可加载winsock编程的动态链接库。

c++网络编程实例

第1章Visual C++网络编程概述 Visual C++(后面简写为VC)网络编程是指用户使用MFC类库(微软基础类库)在VC编译器中编写程序,以实现网络应用。用户通过VC编程实现的网络软件可以在网络中不同的计算机之间互传文件、图像等信息。本章将向用户介绍基于Windows操作系统的网络编程基础知识,其开发环境是VC。在VC编译器中,使用Windows Socket进行网络程序开发是网络编程中非常重要的一部分。 1.1 网络基础知识 如果用户要进行VC网络编程,则必须首先了解计算机网络通信的基本框架和工作原理。在两台或多台计算机之间进行网络通信时,其通信的双方还必须遵循相同的通信原则和数据格式。本节将向用户介绍OSI七层网络模型、TCP/IP协议以及C/S编程模型。 1.1.1 OSI七层网络模型 OSI网络模型是一个开放式系统互联的参考模型。通过这个参考模型,用户可以非常直观地了解网络通信的基本过程和原理。OSI参考模型如图1.1所示。 图1.1 OSI七层网络模型

·3· 用户从OSI 网络模型可以很直观地看到,网络数据从发送方到达接收方的过程中,数据的流向以及经过的通信层和相应的通信协议。事实上在网络通信的发送端,其通信数据每到一个通信层,都会被该层协议在数据中添加一个包头数据。而在接收方恰好相反,数据通过每一层时都会被该层协议剥去相应的包头数据。用户也可以这样理解,即网络模型中的各层都是对等通信。在OSI 七层网络模型中,各个网络层都具有各自的功能,如表1.1所示。 表1.1 各网络层的功能 注意:在表1.1中列出了OSI 七层网络模型中各层的基本功能概述。用户根据这些基本 的功能概述会对该网络模型有一个比较全面的认识。 1.1.2 TCP/IP 协议 TCP/IP 协议实际上是一个协议簇,其包括了很多协议。 例如,FTP (文本传输协议)、SMTP (邮件传输协议)等应 用层协议。TCP/IP 协议的网络模型只有4层,包括数据链路 层、网络层、数据传输层和应用层,如图1.2所示。 在TCP/IP 网络编程模型中,各层的功能如表1.2所示。 表1.2 TCP/IP 网络协议各层功能 在数据传输层中,包括了TCP 和UDP 协议。其中,TCP 协议是基于面向连接的可靠的通信协议。其具有重发机制,即当数据被破坏或者丢失时,发送方将重发该数据。而UDP 协议是基于用户数据报协议,属于不可靠连接通信的协议。例如,当用户使用UDP 协议发送一条消息时,并不知道该消息是否已经到达接收方,或者在传输过程中数据已经丢失。但是在即时通信中,UDP 协议在对一些对时间要求较高的网络数据传输方面有着重要的 作用。 图1.2 TCP/IP 网络协议模型

Javaweb实验报告材料

Javaweb高级编程实验报告 题目:出版著作登记管理系统的实现 学院:计算机与信息技术 专业:计算机科学与技术(日语强化) 年级:2011级 班级:六班 学号:20111118120018 姓名:李雪飞 完成时间:2014/6/22 1.实验目的 (1)熟练使用Eclipse、Mysql、Navicat、Tomcat等软件的安装、配置和使用。 (2)学会和运用servlet技术、log4j技术、jdom技术、ifreechart技术、struts 技术、OGNL技术、action 对象组织、页面间转接关系、数据分析、用JDBC数据库连接技术、DBCP数据库连接池、TDBC 和c3p0连接池连接数据等。 (3)运用所学软件和技术,实现一个具有增、删、改、查、打印等功能的出版著作信息管理系统。

2.实验环境及软件工具 (1)计算机windows 7系统。 (2)Eclipse、Tomcat7.0.39、Mysql5.5.27、Navicat101等软件。3.实验内容 (1)安装jdk1.7.0_15.和Eclipse,MySQL5.5.27、Navicat、Tomcat7.0并配置好环境变量。 (2)struts的配置,并利用启动服务器验证是否配置成功。 (3)根据需求进行数据分析,构建码表和主表,建立起数据库,对应的建立相应的类。 (4)建立增、删、改、查、打印以及登录、退出、错误等基本jsp 页面,用struts实现各个页面之间的跳转。 (5)连接数据库,实现新增出版著作功能、修改选定出版著作、删除选定出版著作、查看选定著作的详细信息、根据给定条件查询出版著作、打印出版著作汇总表、统计出版著作并打印。 4.实验原理 (1)创建新的动态web项目job120018。先从功能需求的角度出发,实现新增出版著作功能、修改选定出版著作、删除选定出版著作、查看选定著作的详细信息、根据给定条件查询出版著作、打印出版著作汇总表、统计出版著作并打印。再从底层数据库的角度考虑,需要著作编号、著作名称、类别、出版社、出版时间、排名、来源于何项目、项目编号等关键字。

网络编程实验报告

实验一TCP Socket API程序设计 一、预备知识 1.网络编程基本概念 网络上的计算机间的通讯,实质上是网络中不同主机上的程序之间的通讯。在互联网中使用IP地址来标识不同的主机,在网络协议中使用端口号来标识主机上不同进程,即使用(IP地址,端口号)二元组。 套接字(Socket)用于描述IP地址和端口,是一个通信链的句柄,通信时一个网络程序将要传输的一段信息写入它所在主机的Socket中,该Socket通过与网络接口卡相连的传输介质将这段信息发送到另一台主机的Socket中,以供其他程序使用。 图1-1 TCP通信流程 2.TCP通信流程 TCP程序是面向连接的,程序运行后,服务器一直处于监听状态,客户端与

服务器通信之前必须首先发起连接请求,由服务器接收请求并在双方之间建立连接后才可以互相通信。 二、实验目的 1.了解Winsock API编程原理; 2.掌握TCP Socket程序的编写; 3.了解C/S模式的特点; 4.学会解决实验中遇到的问题。 三、实验任务 使用Winsock API相关类实现TCP Socket通信程序,并能成功运行。 四、实验环境及工具 1. Windows2000/XP/7 2. Visual C++开发平台 3. Visual Studio2010 五、实验内容和步骤 参照《Visual C++网络编程教程》书中81页,TCP Socket API程序设计。 连接: void CChatClientDlg::OnConnect() { WSADATA wsd; //WSADATA结构 WSAStartup(MAKEWORD(2,2),&wsd); //加载协议,使用Winsock 2.2版 m_client = socket(AF_INET,SOCK_STREAM,0); //创建流式套接字 //服务器地址 sockaddr_in serveraddr; UpdateData(); if(ServerIP.IsBlank()) { AfxMessageBox("请指定服务器IP!"); return; } if(sPort.IsEmpty()) { AfxMessageBox("请指定端口!"); return; }

VC++网络编程之实例篇

一个简单的论坛灌水工具 我在https://www.wendangku.net/doc/fb11767462.html,/index.php?prog=topic::flat&tid=219030里面回复了这样一个贴: 标题是:Re:啥时候下雪啊 回复内容是:下啊下啊 经过截取后,得到这样的数据包: POST /index.php?prog=topic::reply&tid=219030 HTTP/1.1..Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*..Referer: https://www.wendangku.net/doc/fb11767462.html,/index.php? prog=topic::flat&tid=219030..Accept-Language: zh-cn..Content-Type: application/x-www-form- urlencoded..Accept-Encoding: gzip, https://www.wendangku.net/doc/fb11767462.html,er-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)..Host: https://www.wendangku.net/doc/fb11767462.html,..Content-Length: 509..Connection: Keep-Alive..Cache- Control: no-cache..Cookie: CEFS=56a4967e3f0923cc0b9e361d2599290f.... title=Re%3A%C9%B6%CA%B1%BA%F2%CF%C2%D1%A9%B0% A1&cetag=checked&autoParseURL=checked&smiles=checked&showsign=checked&domai ns=https://www.wendangku.net/doc/fb11767462.html, &q=Google+Site+Search&sitesearch=https://www.wendangku.net/doc/fb11767462.html,&client=pub- 9549696168596987&forid=1&channel=5833732144&ie=GB2312&oe=GB2312&cof=GALT%3A %23008000%3BGL% 3A1%3BDIV%3A%23336699%3BVLC%3A663399%3BAH%3Acenter%3BBGC%3AFFFFFF%3BLBGC%3A 336699%3BALC% 3A0000FF%3BLC%3A0000FF%3BT%3A000000%3BGFNT%3A0000FF%3BGIMP%3A0000FF%3BFORID %3A1%3B&hl=zh- CN&content=%CF%C2%B0%A1%CF%C2%B0%A1&parentid=0

JavaWeb课程设计实验报告

湖南科技大学计算机科学与工程学院 WEB编程课程设计报告 题目:网上购物商店 学号:1111111111 姓名: 1 指导老师: 1 完成时间:111111111

目录 一、设计内容 (3) 二、设计方法 (4) 1、网站的整体结构设计 (4) 2、网站设计的技术方案 (5) 3、网站的界面设计 (6) 三、实现方法 (8) 1、数据库的设计 (8) 2、网站具体的实现过程 (10) 开发环境: (10) 设计思路 (10) 四、心得体会 (11)

随着互联网时代的迅猛发展,人们的生活方式已经发生了翻天覆地的变化,传统的实体店购物方式已经不能满足人们的需求,传统购物方式购物不方便,非得出门才能购物,去到了实体店有不一定有自己满意的商品,有时候会浪费大量的时间和精力。 随着网络的全面覆盖,网上支付系统的逐步完善,物流业的快速兴起,网上购物已经成为了当今购物的潮流。 网上购物商店主要满足人们足不出户就能买到自己想要的物品的需要,同时也为商家省去了昂贵的门面租赁费用,而且商品还可以卖到全国各地,大大的扩大了客源又节省了成本。 网上购物商店主要有以下几个方面的功能: 顾客可以浏览整个网站的商品,可以再网站进行注册,注册之后可以登录并购买商品,同时也可以查看和修改自己的个人信息,为了安全的需求,还可以修改密码。 商家,也就是店主,管理员,可以管理网站所出售的所有商品,同时也可以对在网站进行注册的用户进行管理。 1、用户登录、注册功能 (1)注册功能:用户进入网站,如果有兴趣在该商店购买商品,那么用户就可以注册。 (2)登录功能。已经注册的用户可以登录,登录之后方可购买商品。 (3)查看、修改用户信息功能。 (4)修改密码,为了用户安全的需要,经常更换密码可以保证用户账户的安全。 2、购物功能 (1)物品浏览:顾客进入网站,就可以浏览网站的商品。 (2)商品购买:顾客注册自己的账户,并登录之后就可以在网站购买商品了。购买商品的步骤如下; a)添加商品到购物车 b)确定购买 3、商品管理:管理网站所出售的商品。 4、用户管理:管理员对在网站注册的用户进行管理。 5、订单管理:对用户的订单进行管理。

JAVAWEB课程设计实验报告

目录 第一章概述 (2) 【实验目的】 (2) 【需求分析】 (2) 第二章网上商店结构分析与设计 (3) 【前言】 (3) 2.1 系统结构图 (3) 2.2系统功能分析 (4) 第三章详细设计 (4) 3.1数据库设计 (4) 3.2 商品模块实现 (5) 3.2.1 模块功能实现和关键代码说明 (5) 3.3 用户注册/登录模块实现 (9)

3.3.1 模块功能实现和关键代码说明 (9) 3.4 购物车模块实现 (12) 3.4.1 模块功能实现和关键代码说明 (12) 3.5 结算功能模块 (16) 第四章总结 (17) 【技术总结】 (17) 【心得体会】 (18) 第一章概述 【实验目的】 1.掌握java-web网站设计的全过程; 2.进一步熟练Servlet技术、数据库、标签等一般java-web应用技术; 3.掌握整个java-web应用架构、目录结构以及服务器使用。 【需求分析】 1.设计一个较完善的网上军靴商店; 2.账户模块:提供用户注册、登录,考虑用户数量增减,需要用数据库技术; 3.商品显示模块:出于增加销售量考虑,需要有简单广告功能,并提供商品详细参数;推广商品,网站需要对热销商品展示以及商品分类显示、商品查询; 4.订单管理模块、订单详细信息模块:显示已保存的订单的详细信息; 5.购物车模块:添加/删除商品,结帐,显示订单信息。

第二章网上商店结构分析与设计 【前言】 随着信息化技术在生活中的应用越来越广泛,网上购物也逐渐成为人们的一种生活方式。本系统正是基于这样一种环境下应运而生。本电子商城为前台部分,前台主要实现会员的网上购物业务流程、用户注册、用户资料修改。 本商城主要利用javaservlet技术进行开发,有很强的逻辑性、可扩展性,便于维护。商城界面设计主要实用了CSS,美化了店面。其次本商城设计还使用了JSP技术、JDBC技术、JavaBean技术、css。 2.1 系统结构图 商店前台 用户登录模块新 品 上 市 模 块 商 品 分 类 显 示 模 块 热 销 商 品 模 块 购 物 车 模 块 用 户 注 册 模 块 商 品 查 询 模 块 订 单 显 示 模 块 收 银 台 模 块

javaweb实验报告——MVC

Java Web实验报告 实验要求: 设计一个Web应用程序,判断一个一元二次方程ax2+bx+c=z有几个根。该程序包括两个JSP页面,即root.jsp和result.jsp,以及一个JavaBean和一个Servlet。要求使用MVC模式实现此功能,即用户通过root.jsp输入一元二次方程a、b、c 和z的值;提交该页面后使用JavaBean存储这些值和结果;使用servlet进行判断并将结果显示到result.jsp页面中。 文件与类设计:

.

关键代码: Equation.java:(javabean设计,封装计算根数量和根的逻辑) // public int getRootcount() { double disk=b*b-4*a*(c-z);//判断有多少个根 if(disk<0)//如果没有实根 rootcount=0; else if(disk==0)//如果只有一个实根 rootcount=1; else//如果有两个实根 rootcount=2; return rootcount; } public String getRootAdd() { double disk=b*b-4*a*(c-z);//判断有多少个根 if(disk<0)//如果没有实根 rootAdd="。"; else if(disk==0)//如果只有一个实根 { double Add=(-b+Math.sqrt(disk))/(2*a); rootAdd=(":"+Add); } else//如果有两个实根 { double root1=(-b+Math.sqrt(disk))/(2*a), root2=(-b-Math.sqrt(disk))/(2*a); rootAdd=(":"+root1+" 和"+root2); } return rootAdd; }

完整word版,Javaweb项目实验报告

Javaweb项目编写 -----留言板的设计 指导教师:庄凯 小组成员:hx20090412 田磊 hx20090429 宋昭辉 hx20090430孔席超

1.归纳项目的功能(宏观)--UML的UseCase(用例图) 在本项目中,共有8个模块,小组成员分配如下: 孔席超:注册,登录,浏览; 田磊:发表主题,分页查看; 宋昭辉:删除主题,修改主题,发表评论。 2.根据用例图,确定功能所需要的信息(确定数据字典) 信息数据类型 用户编号Uid int 用户名username String 性别sex String 密码Password String 昵称Lovername String 创建时间Regtime Timestape 信息数据类型 主题编号tid Int 主题名称Tname String 主题内容Tcontext Text 发表时间Ttime Timestape

Context表 信息数据类型评论内容Ccontext Text 评论时间Ctime Timestape 评论编号cid Int 数据建模 数据模型之间的关系 将其转换成为真实的表

生成sql脚本 /*==================================================*/ /* DBMS name: MySQL 5.0 */ /* Created on: 2010/11/28 14:48:07 */ /*===================================================*/ drop table if exists Context; /如果存在context表将它删除 drop table if exists Topic; //如果存在topic表将它删除 drop table if exists User; //如果存在user表将它删除 /*======================================================*/ /* Table: Context */ /*======================================================*/ create table Context ( cid int auto_increment not null, //定义整形变量cid,非空tid int, //定义整形变量tid uid int, //定义整型变量uid ccontext text not null, //定义文本区ccontext,非空 ctime timestamp not null, //定义一个时间戳,非空 primary key (cid) //主键为cid ); /*====================================================*/ /* Table: Topic */ /*===================================================*/ create table Topic ( tid int auto_increment not null, //定义整形变量tid,非空uid int, //定义整型变量uid tname varchar(20) not null,//定义字符串tname,非空 tcontext text not null, //定义文本区,非空 ttime timestamp not null, //定义一个时间戳,非空 primary key (tid) //主键为tid ); /*====================================================*/ /* Table: User */ /*====================================================*/ create table User ( uid int auto_increment not null, //定义整形变量uid,非空username varchar(10) not null,//定义字符串username,非空 sex varchar(4) not null, //定义字符串sex,非空 password varchar(20) not null, //定义字符串password,非空 lovername varchar(10) not null, //定义字符串password,非空 regtime timestamp not null, //定义一个时间戳,非空 primary key (uid) //主键为uid );

算法程序设计实验报告

程序设计》课程设计 姓名:王 学号:20100034 班级:软件工程00 班 指导教师:王会青 成绩: 2010年 6 月 实验一.构造可以使n 个城市连接的最小生成树 专业:__软件工程___ 班级:__软件姓名:_王___ 学号:_20100034 完成日期:_2010/6/26 ________ 一、【问题描述】给定一个地区的n 个城市间的距离网,用Prim 算法或Kruskal 算法建立最小生成树,并计算得到的最小生成树的代价。 1 城市间的道路网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道

路,则将相应边的权值设为自己定义的无穷大值。 2 显示出城市间道路网的邻接矩阵。 3 最小生成树中包括的边及其权值,并显示得到的最小生成树的总代价。 4 输入城市数、道路数→输入城市名→输入道路信息→执行Kruskal 算法→执行Prim 算法→输出最小生成树 二、【问题分析】 1. 抽象数据类型结构体数组的定义: #ifnd ef ADJACENCYMATRIXED// 防止该头文件被重复引用 #define ADJACENCYMATRIXED // 而引起的数据重复定义 #define INFINITY 32767 // 最大值∞ #define MAX_VERTEX_NUM 20 // 最大顶点个数 typedef int VRType; // 权值,即边的值 typedef char InfoType; // 附加信息的类型,后面使用时会定义成一个指针 typedef char VertexType[MAX_VERTEX_NUM]; // 顶点类型 typedef enum {DG=1, DN, UDG, UDN} GraphKind; //{ 有向图,有向网,无向图,无向网} typedef struct ArcCell { VRType adj; //VRType 是顶点关系类型。对无权图,用1 或0 表示相邻否;对带权图,则为权值类型。 InfoType*info; // 该弧关系信息的指针

socket网络编程小例子

服务器端程序: #include #include #include #include #include #include #include #include #include #include #define PORT 2370 #define BACKLOG 2 #define IP "127.0.0.1" void process_conn_server(int s,char * ip); int main(int argc,char *argv[]) { int ss,sc; struct sockaddr_in server_addr; struct sockaddr_in client_addr; int err; pid_t pid; //创建套接字 ss=socket(AF_INET,SOCK_STREAM,0); if(ss<0) { printf("socket error\n"); return -1; } //设置服务器端的地址,端口等 server_addr.sin_family = AF_INET; server_addr.sin_port = htons(PORT); server_addr.sin_addr.s_addr = INADDR_ANY; bzero(&(server_addr.sin_zero), 8); //将创建的套接字绑定到服务器端 err = bind(ss, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)); if(err<0) { printf("bind error\n"); return -1; }

JAVA WEB实验报告

沈阳工学院 综合实验验收报告题目:论坛系统的设计与实现 院系:信息与控制学院 专业:计算机科学与技术 班级学号:11301105、11301121、11301122学生姓名:李媛媛、金鑫、李福林 指导教师:靳新 成绩: 2013年12月13日

当今社会正处在网络时代,信息化大潮席卷全球,网络正以前所未有的速度在我国普及开来。网站以其独特的优势在信息化的过程中占有重要的一席。 论坛在Struts2+Hibernate框架的基础上,用当今主流的网站开发技术jsp语言进行开发。论坛将采用B/S体系结构,人们通过浏览器就可以访问论坛的主页,保证的服务器的安全。数据库采用免费,小巧,易用的SQL Server数据库。 开发BBS论坛的目的是提供一个用户交流的平台,为广大用户提供交流经验,探讨问题的网上社区。因此,BBS论坛的最基本功能是发表帖子,其次是其他人根据帖子发表自己的看法和贴主回帖等功能。此外论坛还提供用户登录和注册功能。 本网站严格按照软件项目开发的流程进行开发,对于网站开发的可行性分析、需求分析、概要设计、详细设计以及实现过程。 本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛! 关键词:BBS,Struts,Hibernate,SQL Server

随着Internet技术的不断发展,以及用户群爆炸性地增长,网络不再仅仅是信息的被动获取来源,更成为人们探讨间题、交换观点的场所,其中,网上论坛扮演了极其重要的角色,随着时间的推移,论坛站点中积存了丰富的信息资源,不但有各类技术资料和新闻文档,还包含着用户的判断和评论,论坛站点己成为Web信息库的重要组成部分,自网上论坛诞生20多年以来,随着Web技术的发展,己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式。各种论坛随着网络迅速发展,几乎充实着生活工作的每一个方面,无论是商界、政界,还是娱乐界,都有各种论坛。 本文分为两章,第一章为系统分析与设计,包括需求分析、系统功能设计、数据库设计。第二章为系统设计,包括系统框架和各功能模块。

javaweb图书借阅管理系统课程设计实验报告

《Java Web 应用开发》课程设计 课程名称: 《JAVA Web 应用开发》课程设计 设计题目: 图书管理系统 指导教师: 刘荣辉 苏靖枫 班 级: 0844131 学 号: 0 学生姓名: 刘攀辉 2016年6月12日 目录 第一章.系统概述 ............................................. 错误!未定义书签。 开发背景 ................................................. 错误!未定义书签。 开发环境 ................................................. 错误!未定义书签。 成 绩: 评 语:

第二章.可行性分析........................................... 错误!未定义书签。 技术可行性.............................................. 错误!未定义书签。 操作可行性.............................................. 错误!未定义书签。 经济可行性............................................... 错误!未定义书签。第三章.需求分析............................................. 错误!未定义书签。 系统功能................................................ 错误!未定义书签。 系统功能描述............................................ 错误!未定义书签。第四章.系统分析与设计....................................... 错误!未定义书签。 系统分析................................................ 错误!未定义书签。 组织结构分析........................................ 错误!未定义书签。 业务流程分析........................................ 错误!未定义书签。 数据字典............................................ 错误!未定义书签。 系统设计................................................ 错误!未定义书签。第五章.代码设计............................................. 错误!未定义书签。 代码块设计.............................................. 错误!未定义书签。 代码结构设计............................................ 错误!未定义书签。第六章.输入设计............................................. 错误!未定义书签。 输入界面设计............................................ 错误!未定义书签。 菜单设计................................................ 错误!未定义书签。第七章.输出设计............................................. 错误!未定义书签。 系统输出内容设计........................................ 错误!未定义书签。 输出界面设计............................................ 错误!未定义书签。第八章.心得体会............................................. 错误!未定义书签。第九章.参考文献............................................. 错误!未定义书签。

网络编程实验报告

网络编程技术实验报告 一实验目的: 网络编程技术是计算机科学与技术专业、网络工程专业、软件工程专业的一门专业基础课程。本课程以Java技术为主讲授,Java语言是当前最流行的网络编程语言。本课程是一门实用性和综合运用性都很强的课程,实践教学环节是教学过程中必不可少的重要内容。通过实验,让学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JA V A中的基本方法和技术,能够熟练使用JA V A设计、编写程序,特别是基于TCP/IP的Socket 编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。通过实验,提高学生使用Java语言程序设计开发的能力,提高应用面向对象技术分析和解决实际问题的能力,并在此基础上强化学生的实践意识、提高其分析问题、解决问题的能力以及动手能力和创新能力。 二实验要求 要求学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JAVA中的基本方法和技术,能够熟练使用JAVA设计、编写程序,特别是基于TCP/IP的Socket编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。要注意培养学生良好的编程习惯,自始至终贯彻课程中所介绍的程序设计风格。为保证尽量在统一安排的上机时间内完成程序设计任务,学生应事先做问题分析,并做静态检查。学生应记录实验中所遇到的问题,并写出详细的实验报告。课前准备上机程序,上机认真调试,课后撰写实验报告,实验报告包括实验目的、实验内容、源程序、实验结果及分析。

. 实验一java基本语法 实验目的: 了解Java的数据类型,掌握各种变量的声明方式,理解运算符的优先级,掌握Java基本数据类型、运算符与表达式,掌握顺序结构、选择结构和循环结构语法的程序设计方法。 实验要求: 1、编写一个声明Java不同数据类型变量的程序。 2、编写使用不同选择结构的程序。 3、编写使用不同循环结构结构的程序。 实验内容: 1、编写一个声明Java不同数据类型变量的程序。 public class DataTypes { public static void main(String args[]) { byte b=127; short s=32767; int i=2147483647; long l=9223372036l;//为什么long表示的数比Int还小? char c='c'; float f=1.23F; double d=0.9E-3; boolean bool=true; System.out.println(" b="+b); System.out.println(" s="+s); System.out.println(" i="+i); System.out.println(" l="+l); System.out.println(" c="+c); System.out.println(" f="+f); System.out.println(" d="+d); System.out.println(" bool="+bool); }

相关文档
相关文档 最新文档