Java项目开发——Chat即时聊天系统

Java项目开发——Chat即时聊天系统
Java项目开发——Chat即时聊天系统

开放实验报告

学院:计算机电子信息工程学院

专业:计算机科学与技术

班级:11级计算机科学与技术本科一班

学号201101010023

姓名:邵帅

一、开放实验项目

Java项目开发—Chat即时聊天系统

二、开放实验时间

2012.11.07—2012.11.28

三、开放实验地点

专业微机室二(B-4009)

四、开放实验目的

综合利用JDK、Eclipse开发环境,实现中小型项目的设计。

本系统采用C/S架构,基于TCP协议实现数据在服务器和客户端之间进行传输,实现聊天信息的存储。

通过“Chat即时聊天系统”的设计过程,深刻了解掌握面向对象程序设计语言Java的核心概念和特性;了解编程技术知识,学会处理异常状况,深入了解Java数据库功能,熟练掌握图形界面的操作技术,掌握Java应用软件的开发环境和开发过程;灵活选择程序设计思想,在编写过程中进一步体会Java与其它编程语言的不同之处,分析出Java的优点和先进之处。同时,使学生能够深入的了解软件项目开发的流程和步骤,掌握每一部分的设计和实现方法,以及充分利用现有的软件工程设计工具来完成项目的设计。

五、开放实验内容

1.概要设计

采用Socket类建立套接字实现客户端与服务端的通讯。

总体数据流图

服务端数据流图

2.设计原理

(1).利用多线程实现多客户机制。服务器总是在指定的端口上监听是否有客户请求,一旦监听到客户请求,服务器就会启动一个专门的服务线程来响应该客户的请求,而服务器本身在启动完线程之后马上又进入监听状态,等待下一个客户的到来。 (2).

服务器在接受客户方的请求后,立即高度一个线程以处理服务器与客户方之间的交互,主程序则返回继续监听端口,等待下一个客户的连接请求。前一个线程在完成相应的交互过程后自动退出,连接也将自动关闭。 (3).

在服务器的程序中首先创建单个Server Socket ,并调用accept()来

等候一个新连接,一旦accept()返回,就取得获得结果的Socket ,并用它新建一个线程,令其只为那个特定的客户提供服务。然后再调用accept(),等候下一个新的连接请求。 3.客户端设计

(1)、 数据流图

.

定义Client 类控制客户端,用于实现客户端的接收信息与发送信息等操作

(2)、客户端代码

import https://www.360docs.net/doc/1010133946.html,.*;

import java.io.*;

public class Client extends Thread {

Socket skt; // 用于客户端的连接

InetAddress host; // 主机地址

int port; // 端口号

BufferedReader theInputStream;

PrintStream theOutputStream;

String readin;

Face chat;

public Client(String ip, int p, Face chat) {

try {

host = InetAddress.getByName(ip); // 获取IP地址

port = p; // 获取端口号

this.chat = chat;

} catch (IOException e) {

chat.ta.append(e.toString());

}

}

public void run() {

try {

chat.ta.append("准备连线,稍后!");

skt = new Socket(host, port); // 新建Socket对象

chat.ta.append("成功\n"); // 缓冲区末尾添加字符串

theInputStream = new BufferedReader(new InputStreamReader(skt.getInputStream()));

theOutputStream = new PrintStream(skt.getOutputStream());

while (true) {

readin = theInputStream.readLine();

chat.ta.append(readin + "\n");

}

} catch (SocketException e) {

chat.ta.append("未连上!\n");

chat.clientBtn.setEnabled(true);

chat.serverBtn.setEnabled(true);

chat.tfaddress.setEnabled(true);

chat.tfport.setEnabled(true);

try {

skt.close();

} catch (IOException err) {

chat.ta.append(err.toString());

}

} catch (IOException e) {

chat.ta.append(e.toString());

}

}

public void dataout(String data) {

theOutputStream.println(data);

}

}

4、服务端的设计

(1)、数据流图

定义Server类控制服务端,用于实现服务端的接收信息和发送信息等操作

(2)、服务端代码

import java.awt.*;

import https://www.360docs.net/doc/1010133946.html,.*;

import java.io.*;

public class Server extends Thread {

ServerSocket skt; // ServerSocket类监听进入的连接,为每个新的连接产生一个Socket对象

Socket Client[ ]=new Socket[10];

Socket Client1=null;

int i = 0;

TextArea in;

int port,k=0,l=0;

PrintStream theOutputStream;

Face chat;

public Server(int port, Face chat) {

try {

this.port = port;

skt = new ServerSocket(port);

this.chat = chat;

} catch (IOException e) {

chat.ta.append(e.toString());

}

}

public void run() {

chat.ta.append("等待连线......");

while (true) {

try {

Client[k] = skt.accept();

//当有客户端连接时就新建一个子线程

if (i < 2) {

ServerThread server[] = new ServerThread[10];

server[k]= new ServerThread(Client[k], this.chat, i);

l=server.length;

server[k].start();

chat.ta.append("客户端"+ Client[k].getInetAddress() + "已连线\n");

//for(int j=0;j

theOutputStream = new PrintStream(server[k].getClient().getOutputStream());

i = server[k].getI();

k++;

} else {

//theOutputStream = new PrintStream(null);

}

} catch (SocketException e) {

} catch (IOException e) {

chat.ta.append(e.toString());

}

}

}

public void dataout(String data) {

//for(int j=0;j

theOutputStream.println(data);

}

}

class ServerThread extends Thread {

ServerSocket skt;

Socket Client;

TextArea in;

int port,i;

BufferedReader theInputStream;

PrintStream theOutputStream;

String readin;

Face chat;

public ServerThread(Socket s, Face chat, int i) {

this.i = ++i;

Client = s;

this.chat = chat;

}

public int getI() {

return this.i;

}

public Socket getClient() {

return this.Client;

}

public void run() {

try {

theInputStream = new BufferedReader(new InputStreamReader(Client.getInputStream()));

theOutputStream = new PrintStream(Client.getOutputStream());

while (true) {

readin = theInputStream.readLine();

chat.ta.append(readin + "\n");

}

} catch (SocketException e) {

chat.ta.append("连线中断!\n"); // 设置组件可用性

chat.clientBtn.setEnabled(true);

chat.serverBtn.setEnabled(true);

chat.tfaddress.setEnabled(true);

chat.tfport.setEnabled(true);

try {

i --;

skt.close();

Client.close();

} catch (IOException err) {

chat.ta.append(err.toString());

}

} catch (IOException e) {

chat.ta.append(e.toString());

}

}

public void dataout(String data) {

theOutputStream.println(data);

}

}

5、聊天界面的设计

(1)、通过调用Face类对界面进行管理设计,运用Button、TextArea、Label等组件,然后通过actionPerformed触发事件来完成操作。

(2)、界面代码

import java.awt.*;

import java.awt.event.*;

public class Face extends Frame {

private static final long serialVersionUID = 1L;

Button clientBtn, serverBtn;

TextArea ta;

TextField tfaddress, tfport, tftype,tfname;

Label lbl1,lbl2,lbl3,lbl4;

int port;

Client client;

Server server;

boolean iamserver;

static Face frm;

public Face() { //实例化组件

clientBtn = new Button("客户端");

serverBtn = new Button("服务器");

ta = new TextArea("", 10, 50,TextArea.SCROLLBARS_BOTH);

lbl1 = new Label("IP地址:");

tfaddress = new TextField("127.0.0.1", 10);

lbl2 = new Label("端口:");

tfport = new TextField("8888");

lbl3 = new Label("发送内容:");

tftype = new TextField(25);

lbl4=new Label("昵称:");

tfname=new TextField(30);

tftype.addKeyListener(new TFListener());

ta.setEditable(false);

//向容器中加入以上组件

setLayout(new FlowLayout());

add(lbl1); add(tfaddress);add(lbl2);add(tfport);add(serverBtn);

add(clientBtn);add(lbl4);add(tfname);add(ta);add(lbl3);add(tftype);

//设置格式

setLocation(350, 250); //窗口显示在屏幕的位置坐标

setSize(400, 320); //设置窗体大小

setTitle("图形界面的聊天程序");

this.setVisible(true); //设置窗体可见

clientBtn.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

port = Integer.parseInt(tfport.getText());

client = new Client(tfaddress.getText(), port, frm);

client.start();

tfaddress.setEnabled(false);

tfport.setEnabled(false);

serverBtn.setEnabled(false);

clientBtn.setEnabled(false);

tfname.setText("客户端");

}

}); //客户端事件响应

serverBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {

port = Integer.parseInt(tfport.getText());

server = new Server(port, frm);

server.start();

iamserver = true;

tfaddress.setText("成为服务器");

tfaddress.setEnabled(false);

tfport.setEnabled(false);

serverBtn.setEnabled(false);

clientBtn.setEnabled(false);

tfname.setText("服务器");

}

}); //服务器端事件响应

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

}); //窗口事件响应

}

public static void main(String[] args) { //主方法

frm = new Face();

}

private class TFListener implements KeyListener {

public void keyPressed(KeyEvent e) {

if (e.getKeyCode() == KeyEvent.VK_ENTER) { //按Enter输出显示聊天内容

if (iamserver){

ta.append(tfname.getText()+":\n" + tftype.getText() + "\n");

server.dataout(tfname.getText()+":\n" +tftype.getText());

}

else{

ta.append(tfname.getText()+":\n" + tftype.getText() + "\n");

client.dataout(tfname.getText()+":\n" +tftype.getText());

tftype.setText("");

}

}

}

public void keyTyped(KeyEvent e) {

}

public void keyReleased(KeyEvent e) {

}

}

6、测试与运行结果

服务端的界面

客户端界面

六、开放实验总结

通过这次的开放实验课程,掌握了聊天软件的运行模式,丰富了我对java应用程序编写聊天系统的认识,通过“Chat即时聊天系统”的设计过程,我深刻地认识了在操作过程中,面向对象程序设计语言java的核心概念和特性,以及对异常状况的处理和图形用户界面的操作的优越性,感觉通过此次开放实验课更加让我对学习产生了动力,我希望它不仅仅是一个课程,更是我在学习程序设计中的一次进步,我会通过它去更加努力实现和掌握更多的知识。

JavaWeb应用开发项目设计方案

《Java Web应用开发》项目设计参考方案(学时:84)项目一网上商城项目开发环境的搭建(学时:8) 一、教学目标 最终目标:学会Java Web 开发环境搭建,了解如何在集成开发环境中开发JSP、Servlet程序,能在Web服务器上进行运行测试。 促成目标: 1. 了解JSP、Servlet技术; 2. 了解Java Web 开发模式; 3. 了解Java Web服务器运行条件,掌握如何安装、配置Jdk、Tommcat和集成开。 二、工作任务 1.任务1 Java Web 环境搭建 2. 任务2 简单JSP、Servlet测试 三、活动设计 1.活动思路 首先介绍动态网页技术及相关开发模式,并将相关技术进行比较,从而引出本门课的重点。接着指出建立Web服务器的条件,引出如何搭建Java Web运行环境;最后学习集成开发环境的安装与设置,并学习如何写JSP程序、Servlet 程序,并掌握如何在客户端进行运行测试。 2.活动组织 3.活动评价 评价内容:根据学生具体任务完成情况、课后作业等情况进行评价。 评价标准: 实践部分评价:能基本完成相关软件的安装、环境配置为及格;独立完成相关软件的安装、环境配置,基本能进行代码编写及测试为良好;独立完成相关软件的安装、环境配置,并能进行正确的代码编写及测试为优秀。

模块一 Java Web 环境搭建(学时:4) 一、教学目标 最终目标:掌握浏览静态网页和动态网页的技能,掌握分析网页所采用的技术的技能,能独立完成JSP运行环境的安装及配置 促成目标: 1.了解静态网页中的静态的概念; 2.了解动态网页中的动态的概念; 3. 了解JSP、Servlet技术; 4. 了解Java Web 开发模式; 5.学会JDK、Tomcat的下载、安装及配置。 二、工作任务 1. JDK、Tomcat的安装及配置; 2.浏览各种类型的网页,分析出网页采用的技术; 三、活动设计 1.活动内容 通过浏览多种类型的网页、导出静态网站与动态网站的概念,继而引出对各种网页开发技术的分析,引入JSP动态网页开发技术、开发模式及运行环境;浏览电子商务网站,导出网上商城的项目;分析JSP的基本概念,导出Web服务器的概念,引出JSP常用的Web服务品Tomcat。构建JSP运行环境,为下一步开发工作做好准备。 子任务一:JDK安装与配置 子任务二:Tomcat的安装与配置,服务器运行测试。 2.活动组织

java面试 项目经验描述

面试进行曲之技术面试(项目经验) 收藏 在前期已经讲过怎样分析自己,对自己进行一个准确的定位,选择一个合适的求职方向!并结合自己的实际个人情况来写一份针对性很强的个人简历!个人简历就是个人的广告!好的简历可以更受到用人需求单位青睐!好的简历才能让你获得面试的机会!我们还针对面试列出了j2ee方面的知识点!不管是笔试还是面试都是会考到这些非常重要的知识点!面试的技术内容并不会有想象中的那么难,主要注重基础和细节!细节决定一切!所以列罗的那些知识点是需要下功夫去准备的!当然列罗的那些知识点只是一些在面试中经常会出现的问题集!每家企业都可能超出这些知识点的可能(就不要骂我了)!自己去准备吧! 技术方面的考核通常分为笔试,技术面试;其中技术面试又分为专业知识面试和项目经验考核。应该说来笔试和专业知识面试都是考核你对某方面(j2ee或.net)知识的掌握和熟练程度!而项目经验考核则是看你是不是拥有项目经验,是不是适合企业的用人需要,是不是需要企业为你付出培养的成本,是不是你能够马上投入到工作中去.企业是以你的项目经验作为衡量你的工资标准的!所以就是会出现有些同学可能在学校学习成绩很好而企业给他开的工资并不高,而有些同学的学习成绩一般反而得到高工资的原因!专业知识的考核只是企业了解你具有这方面的专业素养和能力!其实有时笔试成绩差一点或者你感觉在做笔试题的时候有些题目没有做出来或答错了并没有关系的。在技术面试的时候,在回答专业知识方面的题目不够理想,也并不起决定性的作用!总之笔试和专业知识面试的答题达到企业要求的70%就可以了!当然如果你在专业知识方面表现的太差,考官对你也就没有多大的兴趣了!但是最能决定企业下定决心录用你的关键在于你的项目经验(排除企业特别强调英文等其它方面能力外)。说了这么多好像都没有说到正题,这是因为让大家更清楚的了解回答好项目经验方面的问题是多么的重要。而这方面又正好是刚从学校出来的学员十分薄弱的,并且针对这方面介绍也十分少!下面我们就来谈谈面试中关于项目经验的问题及应该从哪些方面进行回答! 问题一、请简单的介绍一下你自己吧! 分析:这是在任何面试中都会遇到一个题目,看起来这个问题是十分简单的,但是往往我们并不知道考官问这个题目是希望从你的回答中获得什么信息!所以我们就很容易走题,跑题,不入正题!不能马上就吸引考官。请记住抓住面试的每一个机会来推销自己。但是往往我们不知道从哪里谈起。所以我们得先了解考官想要获取什么信息呢? 1.你的从业时间你从事相关的工作有多长了 2.你的教育背景你是否受过良好的教育 3.你的工作经验你是否有过具有一定的工作经验 4.你的项目经验你是否有过丰富的项目经验 5.你与众不同之处你是怎么进行项目开发的,有什么特别之处,或者你在哪些项目中取得过哪些成功,或者有哪些自己觉得骄傲的地方

java项目开发实例图书信息管理系统开发及源码

j a v a项目开发实例图书信息管理系统开发及源 码 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

图书信息管理系统 一、系统功能概述: 根据图书信息管理系统的特点,可以将本系统分为2大功能模块,分别为:基础数据维护、系统数据维护。本系统各个部分及其包括的具体功能模块如下图所示: 二、数据库设计: 图书信息表: 图书类别表: 用户信息表:

读者信息表: 三、系统源代码: ewInstance(); conn = (dbUrl, dbUser, dbPwd); "数据库连接成功!"); } else return; } catch (Exception ee) { (); } } xecuteQuery(sql); } catch (SQLException e) { ();

return null; } finally { } } xecuteUpdate(sql); } catch (SQLException e) { quals("[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]DELETE 语句与 COLUMN REFERENCE 约束 'FK_TB_BORRO_REFERENCE_TB_BOOKI' 冲突。该冲突发生于数据库 'db_library',表 'tb_borrow', column 'bookISBN'。")) return -1; } finally { } } etLayout(borderLayout); setIconifiable(true); dd(panel); final JLabel label_2 = new JLabel(); ("图书编号:"); (label_2); ISBN = new JTextField("请输入13位书号",13); (new MyDocument(13)); dd(panel_1, ; final FlowLayout flowLayout = new FlowLayout();

Java一年工作经验程序员个人简历模板

个人简历 【基本资料】 姓名xxx 性别男 年龄22 婚姻状况未婚 民族土家族籍贯湖南省张家界市 毕业院校长沙理工大学专业计算机科学与技术 学历本科联系电话 工作经验1年Email xxxxxxxx@https://www.360docs.net/doc/1010133946.html, 【教育经历】 2007/09-2011/06 长沙理工大学计算机科学与技术 【自我评价】 计算机软件设计与开发专业,1年Java、JavaScript编程语言程序开发经验,熟悉J2EE架构;熟练使用Struts、Hibernate、Spring进行Web开发及Web服务开发;熟悉使用Oracle一种以上数据库,有良好的数据库操作和维护经验;有良好的团队交流和合作意识,以及一定的工作压力承受能力,并具有很好的分析问题与解决问题的能力,对IT领域的软件开发和设计工作有浓厚的兴趣. 【IT技能】 编程语言熟悉:Java,Jsp,JavaScript,Ajax; 数据库熟悉:Orecle; 了解:SQLServer,MySQL 开发工具熟练运用Eclipse,Dreamweaver,Svn等开发工具 熟练掌握Tomcat等Web容器以及J2EE容器的配置以及部署 核心技术熟悉Struts+Spring+Hibernate联合开发 【求职意向】 目标职能JAVA软件开发工作性质全职 【工作经验】 2011/8--2012/10长沙友邦网络科技有限公司 所属行业计算机软件 工作职责Java初级程序员主要负责项目一些模块的编写 工作总结熟悉软件开发流程,能独完成文档的编写和模块的编码 能熟练运用J2EE企业级开发 【项目经验】 项目名称易购客户关系管理系统 开发时间2012/6 -- 2012/10 团队人数 5

Java Web项目开发总结

1、In Action (1)根据添加信息(insert)来考虑表中的字段,进行建表。使用PD画出ER图。要注意字段的数据类型的确定以及建表要满足三范式,减少数据冗余; (2)表建好后,根据表中各个字段来建pojo中的属性。要注意属性的数据类型和字段的数据类型要一致; (3)根据pojo中的属性确定bean的属性,直接拷贝即可,用于页面展示。在bean中,统一使用String类型变量接收前台页面传递的参数;每个HTML表单对应一个bean。HTML 表单中的字段和bean中的属性一一对应。 (4)自顶向下,依次定出action、manager、dao。先写出轮廓,跑通整个流程,再写具体实现,一点点累加,便于调试错误; (5)根据数据实体和具体业务逻辑,使用StarUML画类图,进行OOA和OOD,灵活运用设计模式。 (6)API命名: CRUD:add,get,update,delete,[list] 严格区分单复数形式,单数表示对象,复数表示对象集合。 对象、属性最好单个单词。 (7)前后台都要校验。 (8)按照资源方式组织数据接口,对前端开发帮助很大。即通过REST来实现资源的增、删、改、查。 (9)软件开发,思路最重要!代码开发多了,思路就有了。 a、一个版本一个版本递增的开发;每个版本增加一点内容; b、总结开发思路;第一步怎么做,下一步怎么做? c、用文档记录开发的思路,即第一个版本开发实现了什么功能以及开发步骤,下一个版本实现了什么功能等等?

d、程序员进行程序开发时,不要仅仅停留在代码,要深入到底层的运行机制,才可以对程序的运行机制有更准备的把握; (10)网页模板 request到template.jsp文件(此文件假设包括三个部分,即title、banner、body) web客户——> title banner———————>include:banner.jsp body————————>include:showcart.jsp (11)一步一步的定位。根据结果进行分析。 (12)分页控件 假分页: 基本思想是将所有的数据从数据库中取出,只显示有用的部分。靠的是程序的算法,实际上就是在ResultSet上进行操作。 真分页:(数据库中的一种实现) 任何数据库都会提供分页的函数操作:Oracle、MySQL(limit,即limit 开始的记录, 要查询的行数)、SQL Server(top) 基本思想是在数据库中编写特定的SQL语句。程序中只读取有用的部分,没用的部分不会加载到内存中。 (13) 2、TIPS

实验五java项目开发实例

实验五Java项目开发实例 实验目的: 掌握运用RAD开发Java应用程序 目标要求: 1.掌握运用Visual Editor创建窗口应用程序 2.掌握通过JDBC连接数据库 内容简介: 本章将介绍MyLibrary的 GUI应用程序。 实验说明: 第一节创建GUI应用程序 1.添加JDBC环境变量 在菜单栏点击“文件 -> 新建 -> 项目”,选择“Java项目”,点击“下一步”。 输入项目名称“MyLibraryGUI”,点击“下一步”。 在Java设置中选择“库”栏,点击“添加变量”。在“新建变量类路径条目”对话框

中点击“配置变量” 在“类途径变量”对话框中点击“新建”按钮,会弹出“新建变量条目”对话框。在“名称”栏中输入“CLOUDSCAPE_DRIVER_JAR”,然后点击“文件”按钮,找到D:/Program Files/IBM/Rational/SDP/runtimes/base_v6/cloudscape/lib/,如下图: 点击“确定”。再次点击“确定”。在弹出对话框点击“是”。 在“新建变量类路径条目”窗口中选择 ,点击“确定”。

这样就在MyLibraryGUI项目里添加了Cloudscape 的JDBC驱动。点击“完成”按钮。 2.新建可视类(Visual Class) 在菜单栏选择“文件 -> 新建 -> 其它 -> Java -> 可视类”,点击“下一步”。 在“Java类”窗口,“包”文本框输入,“名称”文本框输入“MyLibraryDesktopApp”,“样式”选择“Swing -> 框架”(选择后“超类”变成),点击“接口”右侧的“添加”,输入ActionListener,点击“确定”。勾选“pulibc static void main(String[] args)”,点击“完成”

java-WEB模块物流项目一

BOS物流管理系统第一天搭建环境 内容安排: 1、运行项目,分析功能结构 Struts2 通配符映射,将所有页面放在WEB-INF下 2、项目改造为maven结构 项目使用STS 3、jQuery EasyUI 框架 常用各个布局插件、Ztree菜单技术 学习目标:maven 、svn 、eclipse 工具、掌握前端开发框架EasyUI 1.BOS项目概述 1.1.项目背景 什么是BOS? (Business Operation System) ,各个软件最核心业务系统 用友软件公司为宅急送公司开发ERP系统---- 核心系统 BOS一期工程C/S结构,二期工程B/S 结构 传统项目分类:OA 自动化办公系统、CRM 客户关系管理系统、ERP 综合管理平台

1.2.项目开发任务 项目完整开发流程: 需求分析(需求分析文档)----- 系统设计(页面原型设计jquery easyui 、数据库设计PowerDesigner )------ 编码----- 测试----- 集成部署和运维 BOS系统非常庞大,十几天学习哪些功能

涉及三大核心业务模块:基础设置模块、取派模块、中转模块 基础设置模块:管理物流信息基础元素信息(快递员、配送区域、配送时间、排班…)取派模块:客户要进行快递,系统进行业务受理、系统分单到快递员、快递员取件、打包、计费 中转模块:管理货物在配送路程中间数据 路由模块:管理车辆和线路 财务模块:计费 PDA模块:管理快递员无线电通信 报表模块:生成统计数据 用户权限管理:通用权限管理系统Apache Shiro

1.3.项目开发平台和技术 新建一个Maven工程mavenbos 1.4.导入原型页面 配置说明pom.xml 导入参照下发pom.xml 文档!

JAVA编程实例大全及详解答案(50例)

JA V A编程实例大全及详解答案(50例) 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i +"个月的兔子对数: "+f2); } } } 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=101; i<200; i+=2) { boolean b = false; for(int j=2; j<=Math.sqrt(i); j++) { if(i % j == 0) { b = false; break; } else { b = true; } } if(b == true) {count ++;System.out.println(i );} } System.out.println( "素数个数是: " + count);

黑马程序员javaweb教程:案例--注册功能

案例--注册功能 1功能说明 没有人不知道什么叫注册功能吧! 我们这里的注册功能很简单,给用户提供一个页面,在页面中给出一个注册表单,用户输入自己的注册信息(用户名和密码)。然后提交表单,把请求发送到Servlet,Servlet会把用户的注册信息保存到XML文件中。完毕! 我们也不打算让Servlet做太多的事情,所以真正保存信息的工作还是交给DAO来做吧!所以在Servlet中只是获取DAO对象,然后调用DAO的方法来完成保存信息! DAO – Data Access Object(数据的存取工作,由这个对象来完成!) ●User :这是我们注册功能的唯一数据类! 不能用业务数据做主键(唯一标识!) username:用户名是唯一的! password email:唯一的! 2项目分析 用户通过注册页面的表单向Servlet发送请求,Servlet获取DAO对象,然后调用DAO 对象的方法save()方法完成向XML文档中保存注册信息。 ●reigst.jsp:包含注册表单的页面,提交表单会把请求交给RegistServlet来处理; ●RegistServlet:注册Servlet,包含doPost()方法。获取DAO对象,然后调用DAO对 象的save()方法传递User对象(注册信息领域对象)过去,由DAO完成保存注册信 息; ●RegistDao:只有一个save(User)方法,会使用DOM4J完成把User保存到XML文件 中; ●RegistDaoImpl:为了更好的处理耦合的问题,我们把RegistDao定义为接口,而 RegistDaoImpl为其实现类; ●User:领域对象,用来封装注册信息。最终还需要把它转换成XML数据持久化! ●user.xml:因为我们现在没学数据库,只能使用XML作为存储数据的工具。 总是从无依赖开始! 3从注册页面开始

测试页面

用户名:

javaweb开发案例

中原工学院软件学院 软件工程实践一设计任务书 指导教师签字: 年月日 超市商品管理系统

摘要 20 世纪90 年代后期特别就是近几年,我国的超市产业飞速发展,其经营模式更为复杂,旧的管理体制已经无法适应超市的发展,这就迫切的需要引进新的管理技术、超市的数据与业务越来越庞大,而计算机就就是一种高效的管理系统,这就需要我们把超市的管理与计算机结合起来,从而超市管理系统应运而生、依靠现代化的计算机信息处理技术来管理超市,节省了大量的人力、物力,并且能够快速反映出商品的进销,存等状况与各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。随着人们生活水平的不断提高,对于物质的需求也越来越高,而超市作为日常生活用品聚集的场所,随着全球各种超市的数目的不断增加,规模不断增大, 其管理难度也相应的增加,而为了适应当今信息化发展的时代,一套完整的超市商品管理系统显得尤为重要。 关键词: 商品; 管理; 进销 目录 摘要 (2) 第1章项目分析 (1) 1、1背景 (1) 1、2技术分析 (1) 1、2、1 框架技术 (1) 1、2、2 Html、JSP、JavaScript动态网页技术 (1) 1、2、3 MySQL数据库 (2) 1、3工程进度计划 (2) 表1、3 工程进度计划表 (2) 第二章系统分析 (3) 2、1可行性分析 (3) 2、1、1技术可行性分析 (3) 2、1、2经济可行性分析 (3) 2、1、3安全可行性 (3) 2、1、4操作可行性 (3) 2、2需求分析 (4) 2、2、1系统的主要功能 (4)

2、2、2运行环境 (5) 第三章总体设计 (5) 3、1功能模块设计 (5) 3、2系统功能设计 (6) 3、3系统数据库E-R图 (6) 3、4数据库设计 (7) 3、4、1 职工信息表 (7) 3、4、2 用户登录表 (7) 3、4、3 商品信息表 (8) 3、4、4 供货商信息表 (8) 3、4、5 进货信息表 (8) 3、4、6 销售信息表 (9) 3、4、7 库存信息表 (9) 第四章系统实现 (9) 4、1登录界面 (9) 4、2商品信息管理模块 (10) 4、3职工信息管理模块 (10) 4、4供货商信息管理模块 (10) 4、5添加销售信息模块 (11) 4、6添加进货信息模块 (11) 4、7库存信息管理模块 (12) 4、8权限设置管理模块 (12) 第五章关键技术及实现方法 (13) 5、1主要任务 (13) 5、1、1商品管理 (13) 5、1、2销售管理 (15) 第六章结束语 (16) 附录:部分源代码 (18)

JAVA工程师个人简历中的项目经验范文

JAVA工程师个人简历中的项目经验范文 JAVA工程师个人简历中的项目经验范文 国产中间件参考实现及平台 软件环境: j2ee 硬件环境: x86 开发工具: Java 项目描述:核高基重大专项课题该课题旨在建立国产中间件标准体系,进而在该标准体系指导下构建国产中间件参考实现与平台,从技术、产品与产业运作机制等方面探索适合国产中间件发展的一体化方案。责任描述:编写相关文档和设计报告。将Onceportal 4.0中符合JSR 286规范的Portlet容器OSGi化。 轻量级数据持久框架 软件环境: j2ee 硬件环境: x86 开发工具: Java 项目描述:国家863项目子课题该课题旨在提供一种能够提高小型信息系统持久层的开发效率,降低其在异构数据库之间的迁移成本的数据持久化框架。责任描述:调研现有持久化技术,编写可行性报告。借鉴已有产品和标准的经验,提取数据持久化通用接口,完成持久化框架总体设计。在Java环境下对框架进行开发,并提供了框架接口在关系数据库、XML数据库和目录数据库下的

实现。 基于门户系统的单点登录工具 软件环境: j2ee 硬件环境: x86 开发工具: Java JSP 项目描述:国家863项目子课题该课题旨在研究门户环境下如何安全有效的对常见的B/S和C/S应用进行单点登录集成。责任描述:调研企业B/S和 C/S应用的常见认证方式,设计门户环境下B/S和C/S应用单点登录集成工具OnceportalBSSSO1.0,OnceportalCSSSSO1.0/2.0并使用Java和JSP等相关技术将其实现。 可视化快递追踪分析平台- VisualExpress 软件环境: j2ee 硬件环境: x86 开发工具: Java 项目描述:该项目旨在开发一个可以向用户提供基于Google Map的可视化快递单件查询,提供RSS、手机短信、Email等多种单件状态信息订阅,能够利用既往数据进行单件到达时间预测,并对快递公司的整体运营情况进行简单分析的综合快递交互平台。责任描述:任务分配、项目模块划分、项目进度监督以及相关人员的协调(项目组共6人)。需求分析、模块功能的取舍裁定以及

Java 项目经验

Java项目经验 Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须 掌握如下要点: 1、掌握项目开发的基本步骤 2、具备极强的面向对象的分析与设计技巧 3、掌握用例驱动、以架构为核心的主流开发方法 没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法! 关于基础知识:你可以看看这些名词或知识点,看是否能说出个一二三四来。 JavaSE ----基本语法、数据类型、操作符等:int、long、Integer、Long、if、else、for、while ----面向对象:class(类)、Object(对象)、instance(实例)、state(状态)、behavior(行为)、field、method、new、可见性(访问控制)、attribute、property、package、import、static variable、class variable、instance variable、heap、method area、stack、GC(垃圾回收)、override、overload、对象转型(casting)、多态、this、super ----异常处理:理解编译期错误和运行期错误的区别、Exception、RuntimeException、checked exception、unchecked exception、try、catch、finally、throw new XXXException、throws XXXException、异常处理的基本原则 ----数组与集合:数组的定义和使用方法、Collection、List、Set、Map、ArrayList、HashSet、HashMap、Iterator、equals、hashCode、Comparable、Comparator ----常用类:String、intern、常量池、StringBuffer、java.util.Date、SimpleDateFormat、Regex(正则表达式) ----反射机制:Class、Method、Field、invoke、newInstance、BeanUtils(apache-commons)、PropertyUtils (apache-commons) ----输入输出流:InputStream、OutputStream、Reader、Writer、Adapter设计模式与原始流类、Decorator 设计模式与包装流类、对象序列化和反序列化 ----多线程:Thread、Runnable、sleep、wait、notify、synchronized、lock Servlet和JSP ----HttpServlet、doGet、doPost、HttpServletRequest、HttpServletResponse、request.getParameter()、request.setAttribute()、request.getAttribute()、request.getSession()、ServletContext、Filter、web.xml、tomcat、forward与redirect、http协议的无状态性、cookie、JSP Scope Object、 HTML与JavaScript ----你需要能够理解常见的网页标签、理解在网页中引入JavaScript的方法、以及JavaScript的基本语法与使用方法

实验五Java项目开发实例

实验五Java 项目开发实例 实验目的: 掌握运用RAD 开发Java 应用程序 目标要求: 1. 掌握运用Visual Editor 创建窗口应用程序 2. 掌握通过JDBC 连接数据库 内容简介: 本章将介绍MyLibrary 的GUI 应用程序。 实验说明: 第一节创建GUI 应用程序 1. 添加JDBC 环境变量 在菜单栏点击“文件-> 新建-> 项目”选择“ JaVa项目”点击“下一步” ” 输入项目名称“ MyLibraryGUI ”,点击“下一步” 。 在Java 设置中选择“ 库”栏,点击“ 添加变量”。在“ 新建变量类路径条目”对话框中点击“ 配置变量”

CIjaUi)SCAPE -DRlVER _JAE - D:\Frograft Fil?≡?IEM ?E? ,点击“确定 ? Sf 鎳变量荚路径条目 选择要添加至构建路径的变量世〕: 雪 ACTIVATlON _JAR - ∕dΛFrogr?m FilesXlBMXRationtl^ " CLOuDSCAPE _I)RlVZR _JAK - D:\Tr C£rsm fιl?s VlBM ?IU 已ECLL P£E_HOME - IAFr o gra m Fιl 配吃量Q 牯科 确定 取消 在“类途径变量”对话框中点击“新建”按钮,会弹出“新建变量条目”对话框。在“名 称”栏中输入“ CLOUDSCAPE_DRIVER_JAR ”,然后点击“文件”按钮,找到 D:/PrOgram FiIeS/IBM/Rational/SDP/6.0/runtimes/base_v6/cloudscape/lib/db2j.jar ,如下图: 点击“确定”。再次点击“确定”。在弹出对话框点击“是”。 在“新建变量类路径条目”窗口中选择 -叵区

javaWEB模块物流项目一

javaWEB模块物流项目一 内容安排: 1、运行项目,分析功能结构 Struts2 通配符映射,将所有页面放在WEB-INF下 2、项目改造为maven结构 项目使用STS 3、jQuery EasyUI 框架 常用各个布局插件、Ztree菜单技术 学习目标:maven 、svn 、eclipse 工具、把握前端开发框架EasyUI 1.BOS项目概述 1.1.项目背景 什么是BOS? (Business Operation System) ,各个软件最核心业务系统 用友软件公司为宅急送公司开发ERP系统---- 核心系统 BOS一期工程C/S结构,二期工程B/S 结构 传统项目分类:OA 自动化办公系统、CRM 客户关系治理系统、ERP 综合治理平台

1.2.项目开发任务 项目完整开发流程: 需求分析(需求分析文档)----- 系统设计(页面原型设计jquery easyui 、数据库设计PowerDesigner )------ 编码----- 测试----- 集成部署和运维 BOS系统专门庞大,十几天学习哪些功能

涉及三大核心业务模块:基础设置模块、取派模块、中转模块 基础设置模块:治理物流信息基础元素信息(快递员、配送区域、配送时刻、排班…)取派模块:客户要进行快递,系统进行业务受理、系统分单到快递员、快递员取件、打包、计费 中转模块:治理物资在配送路程中间数据 路由模块:治理车辆和线路 财务模块:计费 PDA模块:治理快递员无线电通信 报表模块:生成统计数据 用户权限治理:通用权限治理系统Apache Shiro

1.3.项目开发平台和技术 新建一个Maven工程mavenbos 1.4.导入原型页面 配置说明pom.xml 导入参照下发pom.xml 文档!

java程序员简历模板(保留了项目经验、工作经验、技能专长)

【基本信息】姓名: 出生日期: 性别: 婚姻状况: 年龄: 身高: 工作年限: 计算机: 目前所在地: 英语水平: 第二外语: 最高学历: 户囗所在地: 英语级别: 水平: 专业: 目前岗位: 软件工程师/程序员 目前行业: 计算机软件及服务

意向地区: 深圳市 意向行业: 计算机软件及服务目前月薪: 期望月薪: 住房要求: 面议 可到岗时间: 一周内 意向岗位: 高级软件工程师/高级程序员/软件工程师/程序员 【联系方式】 联系电话: 公司电话: 个人主页: 【工作经验】 2010-08 ~ 2011-08JAVA中级开发工程师手机号码: Email: 通信地址: 在职期间主要负责对麦当劳食品物流管理系统的升级,业务的分析和整理。

与SA一起完成系统分析工作和制定技术方案。 根据客户的需求文档进行分析,提出解决方案,并快速完成任务。 2008-08 ~ 2010-08JAVA开发工程师 在职期间主要负责对麦当劳食品物流管理系统的开发和维护。 【工作经历详细介绍】 夏辉物流管理系统 项目描述: 夏辉物流管理系统(麦当劳食品物流管理系统),包含基础信息设置,采购,销售,仓管,运输管理,财务接口等模块。该项目前台采用ACHIEVO HAVI团队开发的WAF框架开发。后台采用QUERTZ进行任务管理和调度,业务逻辑采用高效的MYSQL存储过程编写。前台后台独立布置,系统设计成灵活的可扩展的数据导入导出、JOB运行配置等。 使用技术: jsp、javaBean,servlet,,JDBC,struts,hibernate。 开发环境: WindowXP,Tomcat 6."0,Mysql。 责任描述:1)带领小组(2人)负责销售、运输、财务模块开发,处理部分系统性能问题。 2)参与客户需求分析,系统设计,文档编写,数据字典设计,核心代码编写,测试。 项目经验总结: 1)代码规范化,每个人都照公司的规范编码,有利于代码阅读和维护。

实验五Java项目开发实例

实验五Java项目开发实例 令狐采学 实验目的: 掌握运用RAD开发Java应用程序 目标要求: 1.掌握运用Visual Editor创建窗口应用程序 2.掌握通过JDBC连接数据库 内容简介: 本章将介绍MyLibrary的GUI应用程序。 实验说明: 第一节创建GUI应用程序 1.添加JDBC环境变量 在菜单栏点击“文件-> 新建-> 项目”,选择“Java项目”,点击“下一步”。 输入项目名称“MyLibraryGUI”,点击“下一步”。 在Java设置中选择“库”栏,点击“添加变量”。在“新建变量类路径条目”对话框中点击“配置变量”

在“类途径变量”对话框中点击“新建”按钮,会弹出“新建变量条目”对话框。在“名称”栏中输入“CLOUDSCAPE_DRIVER_JAR”,然后点击“文件”按钮,找到D:/Program Files/IBM/Rational/SDP/6.0/runtimes/base_v6/cloudscape/lib/db2 j.jar,如下图: 点击“确定”。再次点击“确定”。在弹出对话框点击“是”。 在“新建变量类路径条目”窗口中选择 ,点击“确定”。 这样就在MyLibraryGUI项目里添加了Cloudscape 的JDBC驱动。点击“完成”按钮。 2.新建可视类(Visual Class) 在菜单栏选择“文件-> 新建-> 其它-> Java -> 可视类”,点击“下一步”。 在“Java类”窗口,“包”文本框输入mlg.library.gui,“名称”文本框输入“MyLibraryDesktopApp”,“样式”选择“Swing -> 框架”(选择后“超类”变成javax.swing.JFrame),点击“接口”右侧的“添加”,输入ActionListener,点击“确定”。勾选“puli bc static void main(String[] args)”,点击“完成” 在如下图的工作台中,点击1里的下三角箭头,将源代码区域最小化,点击2里的三角箭头使得选用板总是可见,将3处拉

java项目经验面试

1:请你介绍一下你自己 您好,我叫刘东,来自湖北武汉,毕业于荆州长江大学信息管理与信息系统专业,在荆州讯腾信息技术有限公司曾担任java软件工程师一职,我爱好软件技术,希望能在新的城市得到更多锻炼与学习的机会。 2:说说你的家庭 家有奶奶,爸妈,姐姐和我,姐姐已婚,家庭温馨稳定,家里人都热爱生活,爸妈很关心我和我姐的学习和工作,全力支持我们。 3:说说你的最大优缺点 优点: 缺点:有时候比较执着,别人说的话听不进去,在以前的开发过程中会纠结某个问题,有些急躁。 4:就你申请的这个职位,你认为你还缺什么? 对于这个职位,缺乏足够的经验、熟悉工作环境和融入到团队中去,但以我的学习能力和适应能力,我相信自己可以胜任的,这个问题我想我可以进入公司以后尽最大的努力,用最短的时间来解决。 5:你期望的工资是多少? 我希望得到6500 6:你还有什么问题吗? 请问贵公司对新入公司的员工有没有什么培训的项目?或者说贵公司的晋升机制是什么样的? 面试进行曲之技术面试(项目经验) 收藏 问题一、请简单的介绍一下你自己吧! 分析:这是在任何面试中都会遇到一个题目,看起来这个问题是十分简单的,但是往往我们并不知道考官问这个题目是希望从你的回答中获得什么信息!所以我们就很容易走题,跑题,不入正题!不能马上就吸引考官。请记住抓住面试的每一个机会来推销自己。但是往往我们不知道从哪里谈起。所以我们得先了解考官想要获取什么信息呢? 1.你的从业时间你从事相关的工作有多长了 2.你的教育背景你是否受过良好的教育 3.你的工作经验你是否有过具有一定的工作经验 4.你的项目经验你是否有过丰富的项目经验 5.你与众不同之处你是怎么进行项目开发的,有什么特别之处,或者你在哪些项目中 取得过哪些成功,或者有哪些自己觉得骄傲的地方 6.你最擅长的地方你最擅长的技术是什么? 7.你的性格你是怎么样的一个人 教育背景:如果你上的大学及所上的专业比较对口,就说出来,非否就不要提了.总之是要扬长

javaweb案例开发

javaweb案例开发 【篇一:javaweb案例开发】 下载地址:版权归作者和出版社所有,下载链接已删除,可以到搜索电子版仅供预览,支持正版,喜欢的请购买正版书籍:图书简介: 本书从项目工程的角度出发,按照项目的开发顺序,系统且全面地介绍了程序的开发流程。对于项目开发中的开发背景、需求分析、功能分析、数据库分析和设计、系统开发到系统的部署和运行,每一个过程都进行了详细介绍。 本书dvd光盘内容丰富,包括超过40个小时的配套视频、ppt教学课件、超过3000页的技术文档和三种后台数据库的项目源代码。本书既可以作为java web初学者的培训教材,也可以作为具有一定编程经验的java w曲程序开发人员的参考书,还适合java web自学者和大专院校学生阅读。 相关截图: 图书目录:第1章企业日常事务管理系统 1.1 开发背景 1.2 系统分析 1.2.1 需求分析 1.2.2 功能分析 1.3 系统设计 1.3.1 绘制用例图设计系统功能 1.3.2 绘制系统流程图 1.3.3 系统演示 1.3.4 开发工具和开发技术的选择 1.3.5 文件夹组织结构 1.3.6 系统相关编码规则 1.4 数据库分析与设计 1.4.1 数据库分析 1.4.2 数据库概念设计 1.4.3 数据库逻辑结构设计 1.4.4 绘制表之间关系e.r图 1.5 公共类设计 1.5.1 封装数据库操作javabean开发

1.5.2 分页信息类开发 1.5.3 分页辅助类开发 1.5.4 员工信息类 1.5.5 消息信息类 1.5.6 回复信息类 1.5.7 批复信息类 1.6 员工身份识别模块 1.6.1 员工身份识别表单 1.6.2 员工信息da0层 1.6.3 完成员工身份识别 1.6.4 在首页上显示员工身份信息 1.7 消息发布模块 1.7.1 消息发布表单 1.7.2 消息信息da0层 1.7.3 完成消息发布 1.8 消息显示模块 1.8.1 实现消息查询方法 1.8.2 显示消息列表 1.8.3 显示消息详细内容 1.9 消息回复模块 1.9.1 消息回复表单 1.9.2 回复信息da0层 1.9.3 完成消息回复 1.9.4 显示消息回复列表 1.10 项目部署和发布 1.10.1 导入项目到myeclipse 1.10.2 为myeclipse整合tomcat服务器1.10.3 发布项目 1.1 1 开发技巧和难点分析 1.1 1.1 显示错误提示信息 1.11.2 生成分页跳转链接 第2章投票系统 2.1 开发背景 2.2 系统分析 2.2.1 需求分析

Java一年工作经验程序员个人简历模板

个人简历

通过这个系统完成对客户基本信息、联系人信息、交往信息、客户服务信息的充分共享和规范化管理;希望通过对销售机会、客户开发过程的追踪和记录,提高新客户的开发能力;希望在客户将要流失时系统及时预警,以便销售人员及时采取措施,降低损失。并希望系统提供相关报表,以便公司高层随时了解公司客户情况。 主要包括五大模块: 营销管理:营销管理模块包含销售机会的管理和对新老客户开发过程的管理 客户管理:维护客户信息,随时更新,在本系统中,客户信息将得到充分的共享,从而发挥最大的价值 服务管理:通过客户服务我们的销售团队可以及时帮助客户解决问题,提高客户满意度。 其中包括创建服务、分配服务、处理服务、反馈服务、查看归档服务等功能 统计报表:有查看按等级划分的客户构成、查看按信用度划分的客户构成、查看按满意度划分的客户构成等功能

基础数据:可以增加、修改、删除数据字典条目;查看数据字典列表、查看产品及库存信息等功能 实现医疗器械生产、销售管理一体化,该系统主要功能模块以及流程: 产品设计: 产品I级分类设置—产品II级分类设置—产品III级分类设置—产品档案登 记—产品档案登记复核—制定物料组成设计单—物料组成设计单审核生产管理: 制定产品生产工序设计单—产品生产工序设计单审核—制定工序物料设计单 —工序物料设计单审核—新发生生产计划登记—生产计划审核—制定生产派 工单—生产派工单审核—生产登记—生产登记复核 库存管理: 出库流程:制定安全库存配置单—库存档案审核—出库申请登记—出库申请审 核—出库调度 入库流程:制定安全库存配置单—库存档案审核—入库申请登记—入库申请审 核—入库调度

相关文档
最新文档