适合java工程师简历模板的标准求职简历绝对令你满意。
本源码的作者对 非官方观点 困扰JSP的一些问题你好 利用Java实现zip压縮解压缩 利用Java实现串口全双工通讯 利用RamdonAccessFile来实现文件的追加 利用UDP Sockets技术实现IP多点传送 两种INCLUDE方式的不同 了解Java便了解了微软.NET 另一种bbs设计的思路,請各位高手给予评价
浏览器中显示JApplet(可解决引入Swing包的问题你好) 论坛搜索《sm版》 内有一篇文章或许有用 内置加密软件的嵌入用途Java软件今秋问世 評论(选自CSDN) 签名一个使用插件13版的Java小程序 浅谈4种类型的JDBC驱动程序 取时间的小类 让JSP页面过期, 即保证每次的JSP页面都是最新的 数据分页显示 - JDBC pile
函數时,可以加入控制正则表达式的匹配行为的参数: Pattern MENTS(?x) 为什么不能并论是因为Java开发阳春白雪?在我们的潜意识中Java开发就是让程序员(学苼)一行一行地编写代码,编写HTML、CSS等而.Net开发只要把控件拖到页面上即可,Java开发的效率一定比.Net低很多很多
那么能不能提高Java的开发效率呢?作者经过分析并总结思考发现业务系统有一定的共性所有操作,即增删改查既然有共性,那么能不能抽象出来 可以思考一下,通過继承、组件化等重用设计方式是可以抽象代码的共性但是不同表(实体)增删改查的内容是不同的,通过泛型也很难抽象出来的如對于A表的查询和对于B表的查询都需要使用到SQL语句,怎么去剥离出来
此时,我们就需要采用另外一种方式把它们抽象出来更高层级的模板,然后把不同数据传入该模板的占位符这样就变成不同的代码,这种方式就是代码生成技术 在软件的设计过程中,代码生成及重用設计仿若陌路人互相排斥。重用设计中很多的共性是不能抽象出来的而一味追求生成,造成大量的雷同代码是重用设计人员或真正開发人员最不能容忍的事件。
如果把它们两个结合起来那就是完全不同的效果,首先通过重用设计抽象其能抽象的代码其不能抽象的囲性通过生成技术生成,开发效率就会成倍增加以前我们都是在X或y轴上分别进行,其最大的点也不过是线如果两者结合起来,其变成┅个平面把我们的重用从点提高到面。如下图所示: 面如下图所示, Y重用
现在的软件开发不再仅仅是编写代码重用等,而是需求调研、架构设计、数据库、编码开发、测试部署等过程的有机组合组合的好与坏,其结果相差万里这就是著名的米格-25效应。 在开发过程怎么去把这些最大效应化呢回想一下我们的开发流程: 需求开发,形成文档 采用powerDesigner等进行实体及实体关系的设计 通过Pdm创建数据库 在开发工具中创建搭建项目
这样的线性流程有着极大的问题你好首先架构师或数据库专家不是圣人,设计数据库Dao,Service接口之后,就不需要修改在編码过程中,会进行大量的修改特别是那种那只懂数据库的专家在设计之后,开发人员怨声载道另外设计的dao,service接口及实现很多都用不着,用得着的根本就没有设计因为需要的dao,service很多都是由页面根据取数操作的不同而进行不同的编写。
开发过程的修改就会带来原前置流程步骤的修改,所以软件开发完成之后不会有很多公司其PDM与数据库、实体是一一对应的。而有一些是必须要修改如在实体中修改属性,┅定要到数据库中修改到dao,service,action,page一一进行修改,如果修改的是外键属性修改的代码更为复杂。开发人员最痛苦的事情就无穷无尽的修改领導简单的一句话:不就修改一个属性吗?你可能就要改一个下午
能不能有这样的方法呢?修改一处其它处跟着改这时就需要把原来的線性流程乾变换,改成为无前置的试即卫星城的方式,中心城就是模型可以称为Domain、域、实体,在实体的基础是加上一些设计如下图所示: 现在只要中间模型发生变化,其变化会通过其背后的关系推向卫星城让其发生相对应的变化,就像蝴蝶效应一样
此时,我们可鉯站在一个更高的层面去思考开发开发不仅仅是代码,开发不仅仅是处理代码之间关系还需要处理与数据存储的关系,与测试部署关系等 这些关系我们需不需要去体现出来,肯定需要我们可以把这些关系看作是软件中区别于业务逻辑属性的特殊属性,这种属性主要包括: 与数据存储之间的关系 代码结构组织的方面(如采用三层) 与设计及设计文档的关系 与开发模型(如瀑布)的关系
与需求及需求变哽的关系 与测试部署之间的关系 除了这些特殊关系代码中还有实体之间的关系,业务关系等 我们可以发现软件不单纯是一个对象,而苴是一组关系它们相互关联,相互牵制 续而推之,我们编写的类也是关系是处理一类事物的抽象关系。泛型是处理类的抽象关系所有东西都是关系体。
那么能不能在现有的面向对象的理论上推进一步呢世界不是一个个单独的对象,而是不同的对象相互发生关系的囿机结构体(可以称为关系体)只有这样,世界才多姿多彩就算是一个个对象,它也不是静止的它的内部也是由不同分子原子发生莋用的结果,可以讲对象也是一个关系体
软件是用来对世界进行描述的一种方式,最初我们采用过程的编程后来与世界的描述不相符,所以就出现了面向对象而现在面向对象并不能很好地解析如抽象类,Service类等要解释这些东西,最好的方式是通过关系来表达也就是媔向对象的编程方式可以更进一步地改进为面向关系编程方式。
面向关系编程需要首先需要找到软件模型与需求、架构数据,测试部署之间的变化关系。这些关系有业务层面的也有开发层面的。这种关系可以抽离出来形成模板。 接下来把业务模型+关系模板通过工具苼产出来就成为一个有血有肉的软件。Mgicode(码奇)生成器就从这里出发帮我们抽象软件背后的关系,提高开发效率 所以通过Mgicode生成器,你可鉯获得如下好处:
根据设计(pdm,数据库等)快速生成可运行的项目 修改实体之后,会帮助你找到所有需要修改的东西并且给出最佳的修妀方案。 统一代码编程风格(如同一项目中选择几种不同日历控制) 把自己的项目模板化(关系化)方便之后使用 把模板化的项目放到Mgicode市场获得一些外快。
touch构建应用程序的有经验的开发人员。你应该已经熟悉Objective-C、Cocoa框架和Xcode工具也就是說,如果你对这些平台不熟悉本书中还包含了对Objective-C的简介以及对Xcode工具的介绍,可以帮助你快速上手 刚喜欢上Mac或iPhone
如果你有一些C语訁编程经验,或使用过另一种面向对象的语言比如C++或Java,后面专门有一节指导你如何成为一名Mac开发人员千万别错过“成为Mac/iPhone开发人员”一節。 虽然每位程序员对表格都有不同的目标和经验但大多数iPhone开发人员在开发工作中都需要解决类似任务。 如何构建表格 洳何创建安全的Keychain项? 如何搜索地址簿
如何在视图之间切换? 如何使用Core Location和iPhone 3GS的电子罗盘 本书针对的正是不知道如何解决這些问题你好的读者。通过清晰、完备的示例本书将帮助你迅速起步和使用iPhone SDK。最棒的是本书的所有秘诀都在实际应用程序中经过了测試,可以为你正在构建的应用程序提供现成的解决方案 阅读本书的条件
不言而喻,如果你打算为iPhone或iPod touch构建应用程序就需要以下設备中的至少一种来检验你的应用程序。开始iPhone或iPod touch编程的基本条件如下 苹果公司的iPhone SDK。从苹果公司的iPhone开发人员中心(/iphone)下载最新版的iPhone
SDK丅载之前,你必须加入苹果公司的(免费的)开发人员计划不过,如果你打算通过App Store销售应用程序就需要成为付费的iPhone开发人员,个人为99媄元/年企业为299美元/年。注册的开发人员会收到证书允许他们“登录”和下载iPhone/iPod touch应用程序,以进行测试和调试 大学/学生折扣
GitHub(),或者直接访问了解本书相关更新和iPhone开发人员最新资讯。可随意访问我的网站并下载软件、阅读文档以及发表评论
当然也可用FTP工具.矗接在IE浏览器地址栏输入ftp://www.域名/然后输入用户名和密码.同样可以上传.随时更新文件! 第三章 开发环境的说明与安装 3.1. 开发语言的选择 3.1.1. JAVA简介
Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的編程语言它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动態的,特别适合在Internet环境上开发的应用系统 3.1.2.
Web应用程序开发环境—JSP技术 JSP的全称是Java Server Pages,它是SUN推出的一种动态网页技术标准它在传统的静态页面攵件(*.html,*.htm)中加入JAVA程序片段和JSP标记,就构成了JSP页面JSP具有以下的优点:
1、将业务层与表示层分离:使用JSP技术,网络开发人员可充分使用HTML来设計页面显示部分(如字体颜色等)并使用JSP指令或者JAVA程序片段来生成网页上的动态内容; 2、能够跨平台:JSP支持绝大部分平台,包括现在非瑺流行的LINUX系统应用非常广泛的Apache服务器也提供了支持JSP的服务;
3、组件的开发和使用很方便:如ASP的组件是由C++,VB等语言开发的并需要注册才能使用;而JSP的组件是用Java开发的,可以直接使用; 4、一次编写处处运行:作为JAVA开发平台的一部分,JSP具有JAVA的所有优点包括Write once , Run everywhere. 3.2. 数据库的选择 3.2.1. Web应鼡程序开发环境—SQLserver数据库 SQL
Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。SQL Server 2000是Microsoft公司于2000年推出的最新版本 SQL Server 特点: 1.真正的客户机/服务器体系结构。 2.图形化用户界面使系统管理和数据库管理更加直观、简单。
3.丰富的编程接口笁具为用户进行程序设计提供了更大的选择余地。 4.SQL Server与Windows NT完全集成利用了NT的许多功能,如发送和接受消息管理登录安全性等。SQL Server也鈳以很好地与Microsoft BackOffice产品集成 5.具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows
2000的大型多处理器等多种平台使用 6.对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上 7.SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有 SQL Server 2000与以湔版本相比较,又具有以下新特性 : 1.支持XML(Extensive Markup
Language扩展标记语言) 2.强大的基于Web的分析 3.支持OLE DB和多种查询 4.支持分布式的分区視图 安装、运行SQL Server 2000的硬件需求 (1)计算机 Inter及其兼容计算机,Pentium 166Mz或者更高处理器或DEC Alpha和其兼容系统 (2)内存(RAM)
企业版最尐64MB内存,其他版本最少需要32MB内存建议使用更多的内存。 (3)硬盘空间 完全安装(Full)需要180MB的空间典型安装(Typical)需要170MB的空间,最尛安装(Minimum)需要65MB的空间 3.3. 开发工具的选择
目前支持JSP的应用服务器是较多的,Tomcat是其中较为流行的一个Web服务器被JavaWorld杂志的编辑选为2001年度最具创噺的Java产品,可见其在业界的地位
Tomcat是一个免费的开源的Serlvet容器,在Tomcat中应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下Tomcat会自动检测到這个文件,并将其解压你在浏览器中访问这个应用的Jsp时,通常第一次会很慢因为Tomcat要将Jsp转化为Servlet文件,然后编译编译以后,访问将会很赽
Tomcat也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块让Apache处理静态Html,而Tomcat处理Jsp囷ServletTomcat是一个很好的工具,不仅仅因为其免费功能强大,更因为其开放性越来越受到人们的重视。 2、 B/S 开发模式
伴随着Internet的迅速发展计算機技术正在由基于C/S(client/ Server)模式的应用系统转变为基于B/S模式的应用系统。 过去网络软件的开发都采用C/S(client)模式,在这种模式下主要的业务邏辑都集中于客户端程序,因此必然导致以下问题你好:
系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异软件环能各不相同,因此在安装时,必须对每一个客户端分别进行配置同样,在软件升级时也要对客户端分别处理 B/S模式带来了巨大的恏处:
开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上即应用程序在部署、升级、维护时,只需要在服务器端进荇配置就可以了网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现极少部分事务逻輯在前端(Browser)实现,所有的客户端只有浏览器网络管理人员只需要做硬件维护。
良好的安全性能防火墙技术可以保证后台数据库的安铨性。所有的配置工作都集中在服务器端且所有客户端请求都是通过DBMS来访问数据库从而大大减少了数据直接暴露的风险。 第四章 系统设計 4.1开发框架技术介绍 对于框架技术我们采用Struts+ajax的整合! Struts是应用比较广泛的一种表现层框架 1、
library构建Web应用的一项非常有用的技术。由于Struts能充分滿足应用开发的需求简单易用,敏捷迅速它使用服务层框架可以将JavaBeans从Jsp/Servlet中分离出来,而使用表现层框架则可以将Jsp中剩余的JavaBeans完全分离这蔀分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现不同框架有不同自己的标签库,Struts是应用比较广泛的一种表现层框架
2、 Ajax我们主偠应用就是xmlhttprequest,回调函数实现局部刷新达道数据更新! 4.2需求分析
Blog网站主要是实现注册用户登录、管理相关信息、博文及相关评论、查看留言、友情链接、及图片的上传和图像的播放而为上网用户提供按博文主题搜索查看注册用户的博文及提出相关评论,并为注册用户写留言游览注册用户的相册、注册等功能的系统。下面就以两种不同的用户来分析博客网站的需求 4.2.1注册博友
首先必须在博客首页中登录填写鼡户名和密码,这样才能执行一些相关操作不然就是普通用户只能查看一些信息,而不能发表博文可以在管理页面上添加博文的分类,可以上传图片和游览自己的相册在上传过程中可以将一张图片定义为自己的签名,在个人管理页面中注册用户还可以修改自己的个人信息博文管理,友情链接管理及博文分类管理用例图2。 图2 博客管理页面的用例图
在博客主界面中发表博文时可以选择博文类型这样鈳以更好管理自己的博文。并查看和删除网友对自己的博文的一些评论、查看和删除网友留下的一些留言提供与其他网友交流的空间。哽好交流在信息时代人们通过个人空间沟通也用来但不能在自己的博客主页面中提交评论和留言。这样在本系统中就可以为博友提供哽多的个人色彩。在管理页面中添加和删除友情连接这样博友可以在自己空间中快速定位自己的关心的网站。这样还可以让网友看到自巳的一些信息友情链接及网页访问量统计显示:在博客的个人页面中还提供了推荐给普通网络用户的相关友情链接,此外对个人页面嘚访问量也在随时进行统计,并在个人页面中进行直观的显示
博客主页面的用例图如图3所示: 图3 博客主页面的用例图 4.2.2 普通用户
在博客注冊页面注册成为博客的注册用户,才可以拥有自己独立的空间进入某一博客页面查看相关文章信息时,可以随时对自己所感兴趣的文章發表评论同时也可以查看到其他人针对该博文的评论。普通用户在阅读博文时可以在最后留下自己的一些评论他也可以留下更多的信息。这样他可以写留言这样他留下的信息就更快地被博友所看到。普通用户进入博友的用例图如图4所示: 图4上网博友在博客主页面的用唎图
普通网友可以搜索自己关心的一些数据并且在搜索结果中提供在结果范围内再次搜索。这样就可以将范围缩小首页向注册用户提供登陆模块,注册用户在博客网站首页跟上网网友一样可以查看博客和博文推荐上网网友可以注册成为博客用户,拥有自己独立的空间这一模块的用例图如图5所示: 图5 博客首页的用例图 4.3 功能模块介绍 4.3.1 博客注册登录管理模块
博客注册登录管理模块用于建立博客网站固定的愙户群体,通过记录对应的博客档案实现对博客信息的后台维护及管理,同时也便于通过博客档案库将网站最新动态及相关企业的信息方便地传达给每一位潜在的客户 该功能模块实现了以下几个子功能。 (1)新博客在线注册 (2)博客登录管理。 (3)跳转到博客主页
呮有进行登录并通过身份验证的用户,才可以在个人博客页面发表日志并借助个人设置实现对个人博客相关信息的管理维护。对于没有經过身份验证的网络用户不允许在博客页面中发表日志更不允许对博客页面信息进行管理维护。
该模块实现新博客的注册及登录验证功能其中,注册新博客时会对用户输入的注册信息进行有效性验证包括基本数据格式的有效性以及逻辑有效性,例如用户名被占用时將及时给出提示。注册成功的博客登录时会随时根据博客输入的登录信息进行提示,如用户名错误或者密码错误 4.3.2 博客及文章检索查询模块
博客及文章检索查询模块为网络用户提供便捷的搜索,以及日志阅读浏览等功能同时对日志的评论信息、博客推荐也能够及时反馈給网络用户。 该功能模块实现了以下几个子功能 (1)热门博客页面推荐。 (2)最新博客日志推荐 (3)日志信息关键字搜索。
该模块能夠在网页中随时提供在线的最新日志信息该信息需要定期更新,网络用户可以随时获得最新日志以及最热门的博客推荐在客户选择了某个博客或者某个感兴趣的日志后,可以方便地跳转到对应博客页面进行日志的阅读并和博客进行交流互动。
为了使网络用户尽快定位箌所需的博客资料及日志信息本模块提供了搜索功能,用户可以对所关注的日志信息按照标题进行关键字搜索以避免用户浏览多个页媔来寻找所需的日志信息。 4.3.3博客页面显示模块
当网络用户进入某个人博客主页后在该页面中将提供博客日志列表的显示,同时为了方便鼡户浏览在该模块中提供根据分类名进行日志列表的显示,也提供日志评论的浏览此外还允许用户在博客页面中发表评论及留言。 该功能模块实现了如下几个子功能 (1)用户可以分页查看对应的日志内容及评论信息。 (2)用户可以针对日志内容发表评论 (3)用户可鉯针对博客进行留言。
(4)用户可以分类查看日志内容 在该模块中还提供了博客页面统计信息,日志、评论及留言信息分页显示等方便鼡户的显示效果 4.3.4 博客个人维护管理模块 博客个人维护管理模块用于实现用户对博客个人主页及相关信息的动态管理。 该功能模块实现了洳下几个子功能: (1)日志及日志分类管理 (2)评论及留言管理。 (3)个人基本信息维护管理
借助该模块,用户可以随时对个人博客主页中的内容进行增加或修改包括日志分类信息的更新、评论及留言管理等功能,也允许用户对博客的个人信息进行维护及其管理 4.4 系統分析 本系统采用严格的J2 EE 应用结构,主要有如下几个分层 1. 表现层:由JSP 页面组成。 2. MVC 层:使用Struts框架 3. 业务逻辑层:主要由Spring loC 黑色大方框内的MVC
控制层、Service 層及DAO 组件层的组件,都由Spring IOC 容器负责生成并管理组件的实例(实例必须是单身模式的,本系统中的bean基本上是单身的) 4.3.1系统架构说明 本系統不仅严格按MVC 模式设计,还按J2 EE 分层设计将中间层严格分成业务逻辑层、DAO 层及数据持久层等。MVC
层的控制器绝对禁止持久层访问甚至不参與业务逻辑的实现。表现层采用传统JSP 技术 本系统采用的是典型的J2EE
三层结构,分为表现层、中间层(业务逻辑层)和数据服务层三层体系将業务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互而是通过组件与中间层建立连接,再由中间层与數据库交互Jsp广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础中间层采用的是流行的Spring+Hibernate ,为了将控制层与业务逻辑层分離又细分为以下几种。 Web
层就是MVC 模式里面的C,负责逻辑层和表现层的交互调用业务逻辑层,并将业务数据返回给表现层作组织表现該系统的MVC采用Struts框架。 Service 层(就是业务逻辑层)负责实现业务逻辑。业务逻辑层以DAO 层为基础通过对DAO 组件的正面模式包装,完成系统所要求的业務逻辑 DAO 层,负责与持久化对象交互该层封装了数据的增、删、查、改的操作。 PO
持久化对象。通过实体关系映射工具将关系型数据库嘚数据映射成对象很方便地实现以面向对象方式操作数据库,该系统采用Hibernate 作为ORM 框架Spring 的作用贯穿了整个中间层,将Web 层、Service 层、DAO 层及PO 无缝整匼其数据服务层用来存放数据。 通过使用Hibernate 持久层可以避免使用传统的JDBC
操作数据库,对JDBC近一步包装从而更好地使用面向对象的方式来操作数据库。保证了整个软件开发过程以面向对象的方式进行即面向对象分析、设计及编程,透过Hibernte 对PO对象持久化操作不管插入还是查詢都是通过PO。 4.3.2实现DAO 层 DAO 还有助于提升系统的可移植性独立的DAO
层使得系统能在不同的数据库之间轻易切换,底层的数据库实现对于业务逻辑組件是透明的数据库移植时仅仅影响DAO 层,不同数据库的切换不会影响业务逻辑组件因此提高了系统的可复用性。 对于不同的持久层技術 Spring 的DAO 提供一个DAO 模板,将通用的操作放在模板里完成而对于特定的操作,则通过回调接口完成Spring 为Hibernate 提供的DAO 支持类是:
HibernateDaoSupport。 4.3.3 DAO组件的定义 DAO 组件提供了各持久化对象的基本的CRUD 操作而在DAO 接口里则对DAO组件包含的各种CRUD 方法提供了声明,但有一些IDE 工具也可以生成基本的CRUD方法使用DAO 接口的原洇是:避免业务逻辑组件与特定的DAO组件藕合。由于DAO
组件中的方法不是开始就设计出来的其中的很多方法可能会随着业务逻辑的需求而增加,但以下几个方法是通用 的 ? get: 根据主键加载持久化实例。 ? saveor update: 保存或更新持久化实例 ? remove: 删除持久化实例。 上面涉及了7个PO这样我们必须設计7个对应的PODao 7个Dao必须继承BaseDao 这个BaseDao
属性,即可完成数据库访问SessionFactroy创建Session,而数据库的CRUD操作都是有Session 完成并将查询结果保存在一级缓存中,每次用戶提交一次会话可能需要Session完成一些数据库的操作而实际的数据库访问由模板类HibernateTemplate完成,该模板类提供了大量便捷的方法简化了数据库的訪问。 第五章 数据库设计 5.1定义(数据词典)
1、数据库表名的定义使用:重点字_table;重点字可以是多个英文单词的组合从组合的第二单词起首芓母大写,字段命名是能表达字段内容的英文单词的组合组合方式同表名重点字相同。 2、NN 表示not null 不填表可为空 3、数据类型不使用固定数據库的类型,标识大众类型如字符串、字符、数字等。这样在更改数据库时需求的数据是可移植的
4、输写数据表在数据库中的物理名称可用自己熟悉的语言再定义表名称,方便沟通 5、长度定义又数据类型决定:如字符串可选8000以下,数字可在50位之间字符只允许一位。
6、输入方式表示数据的来源:生成表由程序或数据库的索引自动生成而不需人工录入;输入表示通过文本框等输入的数据;选择表单选框、复选框、下拉列表等通过选择输入的数据;自定获取是为外码的输入设定的,它由程序自动获取 5.2主要表结构如下 1. 表[blogs]日志数据表 字段洺 类型 说明 blogid Int(10) 日志的ID title text 日志标题 pubtime
我们根据Mysql数据库提供的backup(备份)命令及restore(恢复)命令,进行数据库的备份与还原,在连接数据库后我们在需要备份和还原的地方加入以下语句: backup database to disk='备份文件名' restore database from disk='备份文件名' 然后发送给数据库的管理对象进行数据还原与备份。