版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java语言程序设计实践报告PAGE PAGE 21 大连理工大学城市学院JAVA语言编程实践报告 实践题目: 组长姓名: 组员姓名: 完成日期: 目 录 TOC o 1-3 h z HYPERLINK l _Toc269202533 1 摘要 PAGEREF _Toc269202533 h 1 HYPERLINK l _Toc269202534 2 系统设计与实现 PAGEREF _Toc269202534 h 2 HYPERLINK l _Toc269202535 2.1 系统分析 PAGEREF _Toc269202535 h 2 HYPERLINK l _Toc269202536 2.
2、1.1 需求分析 PAGEREF _Toc269202536 h 2 HYPERLINK l _Toc269202537 2.1.2 可行性分析 PAGEREF _Toc269202537 h 2 HYPERLINK l _Toc269202538 2.1.3开发及运行环境分析 PAGEREF _Toc269202538 h 2 HYPERLINK l _Toc269202539 2.2 系统总体设计 PAGEREF _Toc269202539 h 3 HYPERLINK l _Toc269202540 2.2.1 系统总体功能描述 PAGEREF _Toc269202540 h 3 HYPE
3、RLINK l _Toc269202541 2.2.2 系统总体流程 PAGEREF _Toc269202541 h 3 HYPERLINK l _Toc269202542 2.2.3 系统功能模块图 PAGEREF _Toc269202542 h 4 HYPERLINK l _Toc269202543 2.3 数据库设计 PAGEREF _Toc269202543 h 5 HYPERLINK l _Toc269202544 2.3.1 E-R图 PAGEREF _Toc269202544 h 5 HYPERLINK l _Toc269202545 2.3.2 数据表 PAGEREF _Toc
4、269202545 h 6 HYPERLINK l _Toc269202546 2.3.3 连接数据库模块 PAGEREF _Toc269202546 h 7 HYPERLINK l _Toc269202547 2.4 系统详细设计 PAGEREF _Toc269202547 h 9 HYPERLINK l _Toc269202548 2.4.1 系统功能实现小组分工描述 PAGEREF _Toc269202548 h 9 HYPERLINK l _Toc269202549 2.4.2 管理员登录模块 PAGEREF _Toc269202549 h 9 HYPERLINK l _Toc2692
5、02550 2.4.3 系统主界面模块 PAGEREF _Toc269202550 h 10 HYPERLINK l _Toc269202551 2.4.4 用户管理模块 PAGEREF _Toc269202551 h 11 HYPERLINK l _Toc269202552 2.4.5 图书信息管理模块 PAGEREF _Toc269202552 h 14 HYPERLINK l _Toc269202553 2.4.6 图书借阅模块 PAGEREF _Toc269202553 h 17 HYPERLINK l _Toc269202554 2.4.7服务器端处理过程 PAGEREF _Toc2
6、69202554 h 19 HYPERLINK l _Toc269202555 2.5 系统测试设计 PAGEREF _Toc269202555 h 20 HYPERLINK l _Toc269202556 2.5.1测试过程描述 PAGEREF _Toc269202556 h 20 HYPERLINK l _Toc269202557 2.5.2 测试结果分析 PAGEREF _Toc269202557 h 20 HYPERLINK l _Toc269202558 3 结 论 PAGEREF _Toc269202558 h 211 摘要为了巩固Java语言程序设计课程的主要知识,提高编程实际的
7、开发能力,基于课程的技术要求和作业标准,设计并实现了 MiniQQ通讯 系统。 该系统的主要功能是 实现局域网内部个单位的通信 ,系统的开发语言是 JAVA ,开发环境是 eclipse ,数据库是 JAVADB 。本系统具有的特点是: 程序小巧、操作简单 ,优点是: 界面美观 、灵活、实用、安全 2 系统设计与实现2.1 系统分析2.1.1 需求分析根据一些大、中、小型企业和商业公司的实际需要,要求本系统具有以下功能。1 统一美观的操作界面,能保证系统的易用性。2 规范、完善的通信列表维护功能。3 全方位、多功能信息通信功能。4程序缩放到系统任务栏中,提供最大的可用屏幕空间。2.1.2 可行
8、性分析计算机技术的飞速发展,使计算机应用技术在企业管理中也得到了迅速的普及,人们开始通过计算机对实务工作中的各项信息进行管理,以帮助企业提高生产、运作的效率。企业员工之间的沟通也是信息化管理的一部分,利用计算机实现工作中各种问题的沟通,例如工作任务通知、技术资料传递等。本系统根据企业工作中可能遇到的各种沟通问题开发而成,能够很好的避免工作中的错误,真正实现了企业的信息化管理。2.1.3开发及运行环境分析1.硬件平台CPU:P1.60GHZ内存:128MB以上2.软件平台操作系统:Windows2000/Windows xp/Windows Vista/Window 7/Linux/Mac 等数
9、据库:JAVADB开发工具:JDK 6.0 Eclipse+WindowsBuilder 2.2 系统总体设计2.2.1 系统总体功能描述miniQQ软件使用了JDK6新增的JAVADB数据库,系统主要有通信列表维护、系统操作、系统设置、任务栏操作等4部分组成。1通信列表维护 通信列表维护包括用户更名、添加用户、删除用户、显示列表访问主机和信使群发等6部分。2系统操作 系统操作包括搜索用户。3系统设置系统设置包括IP搜索范围设置。4任务栏操作任务栏操作包括打开窗体、访问服务器、退出。 另外,miniQQ系统通过内部网络处理和交换信息,C/S模式采用开放结构、解决数据库共享问题,本系统就采用C/
10、S模式,其中客户端运行Java客户端程序,服务器端运行Java服务器端程序,如图2-1所示。图2-1 系统运行总体结构2.2.2 系统总体流程过程如下:打开miniQQ系统,系统自动生成本机用户,本机可右键本机用户图标,对本机用户进行基本设置。点击IP搜索按钮,对当前局域网内的可操作IP进行设置,设定可添加的IP范围。点击搜索用户列表,单机搜索新用户按钮,对当前局域网内的用户进行搜索,进行好友添加。对以添加的好友,可以在好友列表中建立图标,双击好友图标,即可进行会话。右键好友图标,可对好友进行操作。系统图书借阅流程如图2-2所示。图2-2 系统图书借阅流程图2.2.3 系统功能模块图根据系统的
11、设计要求,MiniQQ系统实现了四个完整的功能。根据这些功能要求,设计的系统功能模块如图2-3所示。. MiniQQ 通讯列表维护 系统操作 系统设置 任务栏操作显示列表更名添加用户删除用户搜索用户IP搜索范围打开窗体退出访问主机访问服务器图2-3 系统功能模块图书信息管理系统各模块功能要求分析如下:1. 用户登录要求实现对管理员用户登录的验证、标识,为用户对系统的操作提供授权依据,在这一模块中,首先要求管理员输入自己的登录用户名和登录密码,然后系统对用户名和密码进行验证,判断用户的身份。2. 用户管理要求由于用户众多,为了方便每个用户借阅,该系统需要存储每个用户的基本信息,以便用户借书时候通
12、过用户名从数据库中快速调出用户信息,用户的基本信息包括用户名、姓名、密码、学院、专业和年级等,管理员可以添加新用户、查询用户、修改用户和删除用户。3. 图书管理要求为了方便图书的管理,需要把每本书的相关信息添加到数据库中,以便通过书号从数据库中快速调出图书信息,图书基本信息包括书号、作者、出版社、出版年月等,管理员可以添加图书、查询图书、修改图书和删除图书。4. 借阅管理要求 通过本系统,图书管理员可以进行图书借阅登记和图书归还登记,并可以查询图书被借阅的情况。2.3 数据库设计本系统数据库采用JAVADB数据库,系统数据库名称为db_EQ,共包含两张表。下面将给出数据表概要说明及数据表的结构
13、。数据表概要说明如图8.2所示,该数据表树形结构图包含系统所有数据表。数据表的结构内部通信系统的数据表结构如下。a.tb_location(定位信息表)2.3.1 E-R图本系统的数据库表的E-R图如图2-4至2-7所示:(1)用户实体的E-R图本机IP 本级用户User本机名称用户名称图2-4 用户实体(2)对话交互实体的E-R图图2-5 借阅实体(3)图书实体的E-R图图2-6 图书实体(4)各实体之间的联系图图2-7 实体联系图2.3.2 数据表本系统数据库采用javadb数据库,系统数据库名称为db_EQ,共包含2张表,结构如下。tb_user(用户信息表)用户信息表主要用来保存企业内
14、部的通信用户列表,结构如表2-1所示。表2-1 字段名称数据类型 长度 是否主键说明IpVarchar 16 是主键,用户IP地址hostVarchar 30主机名称NameVarchar 20姓名tooltipVarchar 50提示文本iconVarchar 50头像2. tb_location(定位信息表)定位信息表主要用来保存通信窗体的位置和窗体大小,结构如表2-2所示。表2-2 字段名称数据类型是否为空是否主键说明xLocation Int Yes X坐标轴yLocation Int Yes Y坐标轴width Int Yes 窗体宽度heigth Int Yes 窗体高度2.3.3
15、 连接数据库模块 编写访问数据库的DAO类,该公共类包含在com,lzw.dao包中,用来实现对数据库的各种操作,包括数据的插入、更新和查询。省去每次操作都要编写连接数据库程序的步骤,把连接数据库操作封装到一个类DAO中,在不同的模块中调用这个类就可以对数据库进行连接,执行相应的数据库操作,这样就使得连接数据库安全高效,程序代码简洁清晰,也符合Java面向对象的思想整个系统的数据库访问工作全部由该类完成。连接数据库类dao.java的代码如下:package com.lzw.dao;import java.awt.Rectangle;import java.io.File;import .*;
16、import java.sql.*;import java.util.*;import javax.swing.JOptionPane;import com.lzw.userList.User;public class Dao / 数据库驱动private static final String driver = org.apache.derby.jdbc.EmbeddedDriver;private static String url = jdbc:derby:db_EQ;/ 数据库URLprivate static Connection conn = null;/ 数据库连接private
17、 static Dao dao = null;private Dao() try Class.forName(driver);if (!dbExists() conn = DriverManager.getConnection(url + ;create=true);createTable(); elseconn = DriverManager.getConnection(url);addDefUser(); catch (Exception e) e.printStackTrace();JOptionPane.showMessageDialog(null, 数据库连接异常,或者本软件已经运行
18、。);System.exit(0);private boolean dbExists() / 测试数据库是否存在boolean bExists = false;File dbFileDir = new File(db_EQ);if (dbFileDir.exists() bExists = true;return bExists;public static Dao getDao() / 获取DAO实例if (dao = null)dao = new Dao();return dao;public List getUsers() / 获取所有用户List users = new ArrayLis
19、t();try String sql = select * from tb_users;Statement stm = conn.createStatement();ResultSet rs = stm.executeQuery(sql);while (rs.next() User user = new User();user.setIp(rs.getString(1);user.setHost(rs.getString(2);user.setName(rs.getString(3);user.setTipText(rs.getString(4);user.setIcon(rs.getStri
20、ng(5);users.add(user);rs.close(); catch (SQLException e) e.printStackTrace();return users;public User getUser(String ip) / 获取指定IP的用户String sql = select * from tb_users where ip=?;User user = null;try PreparedStatement pst = conn.prepareStatement(sql);pst.setString(1, ip);ResultSet rs = pst.executeQu
21、ery();if (rs.next() user = new User();user.setIcon(1.gif);user.setIp(rs.getString(1);user.setHost(rs.getString(2);user.setName(rs.getString(3);user.setTipText(rs.getString(4);user.setIcon(rs.getString(5);rs.close(); catch (SQLException e) e.printStackTrace();return user;public void addUser(User user
22、) / 添加用户try String sql = insert into tb_users values(?,?,?,?,?);PreparedStatement ps = null;ps = conn.prepareStatement(sql);ps.setString(1, user.getIp();ps.setString(2, user.getHost();ps.setString(3, user.getName();ps.setString(4, user.getTipText();ps.setString(5, user.getIcon();ps.execute();ps.clos
23、e(); catch (SQLException e) e.printStackTrace();public void updateUser(User user) / 修改用户try String sql = update tb_users set host=?,name=?,tooltip=?,icon=? where ip=+ user.getIp() + ;PreparedStatement ps = null;ps = conn.prepareStatement(sql);ps.setString(1, user.getHost();ps.setString(2, user.getNa
24、me();ps.setString(3, user.getTipText();ps.setString(4, user.getIcon();ps.executeUpdate();ps.close(); catch (SQLException e) e.printStackTrace();public void delUser(User user) / 删除用户try String sql = delete from tb_users where ip=?;PreparedStatement ps = null;ps = conn.prepareStatement(sql);ps.setStri
25、ng(1, user.getIp();ps.executeUpdate();ps.close(); catch (SQLException e) e.printStackTrace();public void updateLocation(Rectangle location) / 更新窗体位置String sql = update tb_location set xLocation=?,yLocation=?,width=?,height=?;try PreparedStatement pst = conn.prepareStatement(sql);pst.setInt(1, locati
26、on.x);pst.setInt(2, location.y);pst.setInt(3, location.width);pst.setInt(4, location.height);pst.executeUpdate();pst.close(); catch (SQLException e) e.printStackTrace();public Rectangle getLocation() / 获取窗体位置Rectangle rec = new Rectangle(100, 0, 240, 500);String sql = select * from tb_location;try S
27、tatement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sql);if (rs.next() rec.x = rs.getInt(1);rec.y = rs.getInt(2);rec.width = rs.getInt(3);rec.height = rs.getInt(4);rs.close();stmt.close(); catch (SQLException e) e.printStackTrace();return rec;public void createTable() / 创建数据表格Str
28、ing createUserSql = CREATE TABLE tb_users (+ ip varchar(16) primary key, + host varchar(30),+ name varchar(20), + tooltip varchar(50),+ icon varchar(50);String createLocationSql = CREATE TABLE tb_location (+ xLocation int, + yLocation int, + width int,+ height int);try Statement stmt = conn.createSt
29、atement();stmt.execute(createUserSql);stmt.execute(createLocationSql);addDefLocation();stmt.close(); catch (SQLException e) e.printStackTrace();public void addDefUser() / 创建本机用户try InetAddress local = InetAddress.getLocalHost();User user = new User();user.setIp(local.getHostAddress();user.setHost(lo
30、cal.getHostName();user.setName(local.getHostName();user.setTipText(local.getHostAddress();user.setIcon(1.gif);if (getUser(user.getIp() = null) addUser(user); catch (UnknownHostException e) e.printStackTrace();public void addDefLocation() / 添加默认窗体位置String sql = insert into tb_location values(?,?,?,?)
31、;try PreparedStatement pst = conn.prepareStatement(sql);pst.setInt(1, 100);pst.setInt(2, 0);pst.setInt(3, 280);pst.setInt(4, 650);pst.executeUpdate();pst.close(); catch (SQLException e) e.printStackTrace();public static void main(String args) Dao dao = new Dao();List users = dao.getUsers();for (User
32、 user : users) System.out.println(user.getIp() + t + user.getName();2.4 系统详细设计2.4.1 系统功能实现小组分工描述序号姓名 实现模块及功能备注 1葛正阳 2商 亮 3栾丽颖 4李 艳2.4.2 主窗体设计模块用户启动MiniQQ软件后,将启动程序主窗体和系统托盘界面,其中主窗口体包括系统的所有功能模块,例如用户列表、系统工具面板和系统设置面板等。主窗体运行结果图技术实现主要代码(详见源程序) 3. 开发说明管理员登录由Login类继承了Jframe类,首先声明了标签、按钮、文本框、密码框和一个Jframe窗口,然后通
33、过构造方法创建标签、按钮、文本框、密码框,并添加到窗口容器中,最后设置窗口的大小和可见行; 然后为按钮增加事件监听,实现AciontListener接口完成用户名、密码的检测并登录。2.4.3 用户列表模块通信软件也需要一个类似电话本的功能,用户列表模块就是用来实现记录用户信息、更改用户姓名、删除通信用户等与电话本功能类似的模块,他是主窗口最先显示的模块界面,包含了当前系统数据库中记录的所有通信用户信息并且以列表的形式显示到界面中。用户列表界面技术实现主要代码(详见源程序) 3. 开发说明Bookmain类继承了Jframe类,定义了一个菜单栏、4个菜单和12个菜单项,然后定义了一个方法go(
34、),通过该方法设置窗口的布局、窗口的大小和标题,将菜单项加入到各自的菜单中,把菜单加入到菜单栏中,并将菜单栏加入到窗口中;当单击菜单项时候产生单击实践,传递给监听者,实现接口并处理监听到的事件。2.4.4 用户通讯模块在用户列表中选择并双击用户头像,将启动该用户的通讯窗体,通过该窗体可以和对方互通文本信息和信使信息,在窗体右侧会显示通信对方的用户信息,例如对方的主机名、用户名和IP地址。1. 用户通讯模块(1)用户通讯界面(2)技术实现主要代码(详见源程序) (3)开发说明 在系统主界面中,单击“用户管理”-“添加用户”菜单命令,打开添加用户界面,该界面包含6个标签、5个文本框、1个密码框和两
35、个按钮,在文本框中输入用户信息,单击“添加”按钮就可以把数据信息添加到数据库中; 单击按钮进行用户添加,添加用户信息要求每项信息都不能为空,如果某一项为空则弹出消息提示对话框,否则调用方法connect()把数据流信息传输到服务器端。2. 用户信息删除模块(1)用户信息删除界面(2)技术实现主要代码(详见源代码) (3)开发说明 在系统主界面中,单击“用户管理”-“删除用户”菜单命令,打开删除用户信息界面,界面包含6个标签、5个文本框、1个密码框和两个按钮,在最上面的文本框中输入学号,单击“查询”按钮用于查询用户是否存在,如果存在,则把用户信息显示在对应的文本框中,单击“删除”按钮就可以删除数
36、据库中的信息;为两个按钮分别添加事件监听,并对监听到的事件进行处理。3. 用户信息修改模块(1)用户信息修改界面(2)技术实现主要代码(详见源代码) (3)开发说明在系统主界面中,单击“用户管理”-“修改用户”菜单命令,打开修改用户信息界面,界面包含6个标签、5个文本框、1个密码框和两个按钮,在最上面的文本框中输入学号,单击“查询”按钮用于查询用户是否存在,如果存在,则把用户信息显示在对应的文本框中,修改用户信息后,单击“修改”按钮就可以修改数据库中的信息;为两个按钮分别增加事件监听,并对监听到的事件进行处理。4. 用户信息查询模块(1)用户信息查询界面(2)技术实现主要代码(详见源代码) (
37、3)开发说明在系统主界面中,单击“用户管理”-“查询用户”菜单命令,打开查询用户信息界面,界面包含一个标签、一个文本框、一个下拉菜单和一个查询按钮,在文本框中输入查询条件,并通过下拉菜单选择按学号或按姓名查询,单击“查询”按钮就可以把查询结果显示出来; 通过actionPerformed()处理监听到的事件,首先获得查询条件,如果查询条件不为空,接着调用方法connect()将数据传递到服务器端。2.4.5 系统工具模块系统工具模块包括搜索网络用户功能,搜索用户功能可以在指定的IP范围内搜索所有正在运行的计算机用户,搜索到用户就会保存到数据库,并添加到用户列表中。1. 图书信息增加模块(1)图
38、书信息增加界面(2)技术实现主要代码(详见源代码) (3)开发说明在系统主界面中,单击“图书管理”-“添加图书”菜单命令,打开添加图书信息界面,界面包含6个标签、6个文本框和两个按钮,在文本框中输入图书信息;为按钮添加事件监听,添加图书信息要求每项信息都不能为空,如果某一项为空则弹出消息提示对话框,否则调用方法connect()把数据流信息传输到服务器端。2. 图书信息删除模块(1)图书信息删除界面(2)技术实现主要代码(详见源代码) (3)开发说明在系统主界面中,单击“图书管理”-“删除图书”菜单命令,打开删除图书信息界面,界面包含6个标签、6个文本框和两个按钮,在最上面的文本框中输入图书编
39、号,单击“查询”按钮用于查询该图书是否存在,如果存在,则把图书信息显示在对应的文本框中,单击“删除”按钮就可以删除数据库中的图书信息;为按钮添加事件监听,并对监听到的事件进行处理。3. 图书信息修改模块(1)图书信息修改界面(2)技术实现主要代码(详见源代码) (3)开发说明在系统主界面中,单击“图书管理”-“修改图书”菜单命令,打开修改图书信息界面,界面包含6个标签、6个文本框和两个按钮,在最上面的文本框中输入图书编号,单击“查询”按钮查询该图书是否存在,如果存在,则把图书信息显示在对应的文本框中,修改图书信息后,单击“修改”按钮就可以修改数据库中的信息了;为按钮增加事件监听,并对监听到的事
40、件进行处理。4. 图书信息查询模块(1)图书信息查询界面(2)技术实现主要代码(详见源代码) (3)开发说明在系统主界面中,单击“图书管理”-“查询图书”菜单命令,打开查询图书信息界面,界面包含一个标签,一个文本框、一个下拉菜单和一个查询按钮,在文本框中输入查询条件,并通过下拉菜单选择按编号或按书名查询,单击“查询”按钮就可以把查询结果显示出来;通过方法actionPerformed()处理监听到的事件,首先获得查询条件,如果查询条件不为空,然后就调用方法connect()将数据传输到服务器端。2.4.6 系统设置模块系统设置模块用于设置系统参数,它主要包括系统路径设置功能、服务器登陆信息的设
41、置功能和设置IP搜索范围的设置功能。1. MiniQQ系统设置模块(1)图书借阅界面(2)技术实现主要代码(详见源代码) (3)开发说明 在系统主界面中,单击“借阅管理”-“借阅图书”菜单命令,打开借阅图书界面,界面包含两个标签、两个文本框和两个按钮,在文本框中输入图书编号和读者编号,单击“借阅”按钮就可以借阅图书;在这里为按钮添加事件监听,如果文本框为空,则弹出消息提示对话框,否则调用方法connect()把数据流传输到服务器端。2. 图书归还模块(1)图书归还界面(2)技术实现主要代码(详见源代码) (3)开发说明在系统主界面中,单击“借阅管理”-“归还图书”菜单命令,打开归还图书界面,界
42、面包含1个标签、1个文本框和两个按钮,在文本框中输入图书编号,单击“归还”按钮就可以归还图书;为按钮添加监听,如果文本框为空,则弹出消息提示对话框,否则调用方法connect()把数据流传输到服务器端。3. 图书查询模块(1)图书查询界面(2)技术实现主要代码(详见源代码) (3)开发说明在系统主界面中,单击“借阅管理”-“借阅查询”菜单命令,打开查询图书借阅情况界面,界面包含1个标签、1个文本框、1个下拉菜单和1个查询按钮,在文本框中输入查询条件,并通过下拉菜单选择按图书或按读者查询,单击“查询”按钮就可以把查询结果显示出来;通过方法actionPerformed()处理监听到的事件,首先获
43、得查询条件,如果查询条件不为空,然后就调用方法connect()将数据传输到服务器端。服务器端处理过程在系统设计过程中采用的是C/S模式,具体操作时候需要把要处理的数据发送到服务器端进行处理,然后把处理的结果返回给客户端。服务器端处理的操作过程如下:创建ServerSocket对象和Socket对象,用于接收来自客户端的数据流,并输出数据流到客户端;创建线程;读取来自客户端的数据流,并进行相应的处理;把处理的结果返回给客户端。其中在用户管理模块、图书管理模块和图书借阅模块都有相应的服务器端,它们的实现过程类似,具体编程过程如下所示(代码详见源代码)。导入程序所使用的包;创建图形用户界面为更清楚
44、第显示客户机与服务器之间的连接情况,客户端与服务器端之间传输的数据流以及在程序运行过程中出现的异常情况,可以创建一个图形用户界面,用于显示系统的信息;定义connect()方法来接收来自客户端的数据流,启动线程处理,最后关闭数据库连接;创建线程由于可能同事有多个客户端对图书信息进行操作,因此要创建线程处理来自客户端的数据流;定义方法sendData()将操作结果输出到客户端。2.5 系统测试设计2.5.1测试过程描述各模块运行效果的描述和截图:2.5.2 测试结果分析根据以上实际测试结果, 3 结 论该系统的题目是: MiniQQ,经过测试能够正确地实现了所要求的功能: 局域网内部的用户进行即
45、时通讯 。开发过程中采用的工具和环境是: eclipse,JDK6.0,数据库JAVADB ,系统主要功能是: 可以使使用者在局域网内方便快捷的进行沟通和信息交换,满足企业内部沟通的基本需要 具有 界面友好,操作简单,方便管理等 优点。当然此系统仍存在一些不足之处: 系统的主要功能虽然可以实现,但是一些辅助功能仍有待完善 通过本次Java语言程序设计实践项目的设计、开发和实现过程,深深体会到: JAVA语言是一门对我们很重要的基本语言,无论是现在的学习还是以后的工作,掌握好JAVA语言,都将是我们受益匪浅。经过两周的课程设计,我们在JAVA编程方面的知识收获很大,但我们明白,这只是JAVA编程
46、知识的冰山一角,还有许多东西我们没有学到,所以我们要摆正心态,继续充实自己的专业知识。并且,通过本次实践,我们深切的体会到了“小组” 在项目开发中的作用, 让我们认识到了团队合作的重要性。 正是我们小组成员的良好沟通和共同努力,才使我们能够顺利的完成本次JAVA实践课程设计。 最后,感谢国家,感谢党.OVER. 作业报告成绩评定作业报告成绩: 教师评语 教师签字:年 月 日答辩记录姓名: 学号负责模块:问题序号问题记录回答记录完全正确基本正确不正确备注答辩分数答辩记录姓名: 学号负责模块:问题序号问题记录回答记录完全正确基本正确不正确备注答辩分数答辩记录姓名: 学号负责模块:问题序号问题记录回
47、答记录完全正确基本正确不正确备注答辩分数答辩记录姓名: 学号负责模块:问题序号问题记录回答记录完全正确基本正确不正确备注答辩分数答辩记录姓名: 学号负责模块:问题序号问题记录回答记录完全正确基本正确不正确备注答辩分数附录资料:JAVA工程师EJB面试题集JAVA工程师EJB面试题集 HYPERLINK /phrase/200604241156485.html t _new EJB ( HYPERLINK /phrase/200603091138035.html t _new Enterprise JavaBean)是 HYPERLINK /phrase/200603091447335.html
48、 t _new J2EE的一部分,定义了一个用于开发基于 HYPERLINK /phrase/200603302222545.html t _new 组件的企业多重应用 HYPERLINK /phrase/200604232224305.html t _new 程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业柄,是Java的核心代码,分为整体柄和片段柄和 HYPERLINK /phrase/200603090938465.html t _new 消息柄三个部分,其中的消息柄将在以后再作讨论。现在我
49、们来看看什么是整体柄和片段柄。 整体柄是一种 HYPERLINK /phrase/200603090845215.html t _new 对象: 标准Java对象由创建它的程序创建,当程序终止时,对象也随之丢失,这就意味着当再次运行些程序时,将无法找到先前创建的柄,而整体柄会一直存在着直到它被删除。 一个程序可以创建一个整体柄,并且这个程序可以在被保存后随时停止和重启。整体柄将会依然存在。重启后,程序可以找到与之相对应的整体柄,并且会继续使用这个整体柄。 EJB实际上是SUN的J2EE中的一套规范,并且规定了一系列的 HYPERLINK /phrase/200604241228185.html
50、 t _new API用来实现把EJB概念转换成EJB产品.EJB是BEANS,BEANS是什么概念,那就是得有一个容纳她,让她可劲造腾的地方,就是得有容器.EJB必须生存在EJB容器中.这个容器可是功能强大之极!她首先要包装你BEAN,EJB的客户程序实际上从来就不和你编写的EJB直接打交道,他们之间是通过HOME/REMOTE接口来发生关系的.它负责你的BEAN的所有的吃喝拉萨睡,比如BEAN的持续化,安全性,事务管理. 一.什么是 EJB?一个技术规范:EJB 从技术上而言不是一种产品EJB 是一种标准描述了构建应用组件要解决的:可扩展 (Scalable)分布式 (Distribute
51、d)事务处理 (Transactional)数据存储 (Persistent)安全性 (Secure)二.Sun 对 EJB 的期望提供一个标准的分布的、基于 HYPERLINK /phrase/200604231401365.html t _new OO 的组件 HYPERLINK /phrase/200604241328115.html t _new 架构屏蔽复杂的系统级功能 HYPERLINK /phrase/200603101518295.html t _new 需求Write once, run anywhere与非 Java 应用之间的互操作能力兼容 HYPERLINK /phra
52、se/200604031336425.html t _new CORBA 标准三.为什么选择 EJB?EJB 服务器完成繁杂的工作:应用开发人员关注于业务逻辑的实现而不是底层的实现机制( HYPERLINK /phrase/200603090857555.html t _new 类似于 4GL 语言设计的目标)支持事务处理多个业务操作同时成功,或全部失败可以通过在代码外的描述来定义事务处理级别可扩展性EJB 可以根据您应用的增长而扩展EJB 服务器往往还提供了负载均衡和安全性:由 EJB 服务器提供资源的访问权限控制四.EJB 架构为了满足架构的目标,规范中描述了服务器 (Server)容器
53、(Container)类 ( HYPERLINK /phrase/200604231359565.html t _new Class) 和实例 (Instance)Home 和 Remote 接口 HYPERLINK /phrase/200603082208195.html t _new 客户端 ( HYPERLINK /phrase/200604231337375.html t _new Client)五. 简化的编程模型关注于业务逻辑实现:EJB 负责生命周期 (lifecycle), 数据存储 (persistence), 事务处理语义 (transactional semantic),
54、 安全(security), .通用的编程模型:各种服务的高层 APIJava 是其编程语言1.EJB 特点由一个 EJB 容器在运行时创建和管理 EJB在部署 EJB 时定制其运行方式由 EJB 容器和服务器来协调客户端的访问可以部署到任何兼容的 EJB 容器中客户端对 EJB 的 HYPERLINK /phrase/200603141659315.html t _new 视图是由 Bean 开发人员决定的2.EJB 服务器管理 EJB 容器 (它管理 Bean)提供对 HYPERLINK /phrase/200602281634075.html t _new 操作系统服务的存取提供 Jav
55、a 相关的服务,尤其是通过 JNDI 访问命名空间基于 OTS 的事务处理服务3.EJB 容器管理 Bean 生命周期:将 EJB 服务器提供的服务传递给 Bean生成代码来实现对 Bean 的存取访问强制事务处理的限制创建、初始化和回收 Bean管理持久数据的存储对客户端而言 EJB 容器是透明的4.在一个 EJB 服务器中的容器目前容器通常是由 EJB 服务器本身提供的在 EJB 1.0 或 1.1 规范中没有定义容器-到-服务器的接口各厂商可以根据他们的见解来实现服务器和容器的各自责任5.容器提供服务: 数据存储容器决定何时载入/储存状态Container-Managed Persist
56、ence(容器管理存储/CMP)容器负责存储您的 Bean容器生成必要的类和代码Bean-Managed Persistence(Bean 管理存储/BMP)Bean 开发人员提供存储代码开发人员决定 如何存储, 容器仍然决定 何时进行6.容器提供服务: 事务处理可以由容器代理来实现容器将得到业务逻辑方法的事务处理需求容器提供事务控制代码也可以由程序员通过代码实现7.容器提供服务: 其它服务其它服务包括命名 (Naming)安全 (Security) HYPERLINK /phrase/200603091754305.html t _new 线程管理 ( HYPERLINK /phrase/2
57、00604231348385.html t _new Thread management)这些服务由容器代理完成将减少应用开发人员的负担8.分布式对象运算远程对象被作为本地对象来处理:传递信息的方式不变,但开销更大Enterprise JavaBeans 永远运行在服务器上:对 Bean 的访问永远是远程调用9.Stub 和 Skeleton由 EJB 生成:Stub 对要传递出去的信息编码Tie/Skel 将接受到的信息解码并传递给目标对象10.分类: Enterprise HYPERLINK /phrase/200604251741535.html t _new JavaBeans+Ent
58、ity Beans-CMP/BMPEjb-|+Session Beans-Stateful/Stateless会话 Bean (Session Bean):根据 EJB 规范,一个会话 Bean 是:代表单个客户端来执行可以参与到事务处理中不直接代表共享于 HYPERLINK /phrase/200602271218062.html t _new 数据库中的数据,但它能访问和更新这些数据相对而言是短暂存在的当 EJB 容器失效后就不存在客户端需要重新建立一个信新的会话对象来继续运算实体 Bean (Entity Bean):根据 EJB 规范,一个实体 Bean 是:提供在数据库中数据的对象视
59、图允许被多个用户共享存取访问可以是长期存在 (只要它存在于数据库中)实体 Bean, 它的主键对象, 以及它的远程引用将能跨 EJB 容器的宕机而存在11.EJB 类和实例构建 EJB 应用包括来自三方的代码开发人员编写的代码由 EJB API 定义的类和接口由容器自动生成的代码开发人员编写的代码包括Bean 类 (定义了业务逻辑)Home 接口 (如何查找或创建 bean)Remote 接口 (如何存取 bean)其它组件,根据 bean 实际要求12.EJB Home 接口每个 bean 有一个用于:创建新的 bean 实例、查找现存的 bean (只能是实体 bean)Remote 接口
60、:定义 bean 的公共接口只有在 Remote 接口中定义的方法才能被客户端访问EJB 客户端可以为 HYPERLINK /phrase/200603091005185.html t _new servlet, JSP, 应用程序或其它 bean通过 JNDI 来查找 EJB home 接口,步骤为:创建一个 JNDI Context (initial context)使用 JNDI Context 来查找 bean home 接口使用 bean home 接口来创建/查找 bean 实例使用 bean 实例完成业务操作实际的存取 (对 EJB) 是通过容器生成的类来完成EJB 架构客户端对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 头发用刷产业规划专项研究报告
- 冰茶匙市场发展预测和趋势分析
- 头发用漂白剂产业规划专项研究报告
- 学习布莱尔盲文用积木市场需求与消费特点分析
- 人教版英语八年级下册 Unit 1 单元复习
- 半导体收音机产业深度调研及未来发展现状趋势
- 截石钳产业深度调研及未来发展现状趋势
- 儿童自行车用轮胎市场需求与消费特点分析
- 高一数学说课稿10篇
- 城市电力与通信管道施工方案
- 基于核心素养初中数学跨学科教学融合策略
- 200TEU 长江集装箱船设计
- 智慧能源管理平台建设项目解决方案
- RFJ 006-2021 RFP型人防过滤吸收器制造与验收规范(暂行)
- 2024年高中语文学业水平过关测试四-名句名篇默写积累过关训练(全国通用)学生版
- 内蒙古的特色美食
- 招投标-招投标管理
- 医学类-教学查房异位妊娠(宫外孕)
- 售后工程师热水系统维护培训
- 项目管理机构及人员配备表
- 眼视光技术职业生涯规划大赛
评论
0/150
提交评论