首页

> 论文发表知识库

首页 论文发表知识库 问题

jsp论文研究方法

发布时间:

jsp论文研究方法

能给我一份吗 我的邮箱:

1 前言 4 目的 4 范围 4 有关本系统中的定义 4 2 资料引用 4 3 设计思路 4 数据层设计 5 user_book表的触发器 5 用户续借图书的存储过程 6 到期催还表的视图 7 数据链接层设计 8 UserBook Entity Bean设计 9 UserConsumer Entity Bean设计 10 UserLogBook Entity Bean设计 11 数据逻辑层设计 12 TheBook Session Bean设计 13 TheUser Session Bean设计 14 TheLog Session Bean设计 15 网络应用层设计 15 CheckValue bean 16 EnCode bean 16 JDBCBean bean 16 Rank bean 16 SetUp bean 16 SplitPage bean 17 UserLogin bean 17 SearchBook bean 17 SearchDeadline bean 17 ValidateIMG servlet 17 GetDelete servlet servlet 17 GetBookSubmit servlet 18 GetUserSubmit servlet 18 GetRenewBook servlet 18 GetBorrowBook servlet 18 GetReturnBook servlet 18 4 程序架构 18 程序组织结构 18 功能权限划分 20 WEB程序/页面设计 21 本系统实现的功能 22 5 任务分工 22 1 前言 目的 本文档详细描述了图书管理系统的设计,主要是为开发人员提供,使其对本项目的构建和维护有深入的了解。 范围 本文档的描述只针对图书管理系统的版本。 有关本系统中的定义 以下是本说明书中用到的专门术语的定义和外文首字母组词的原词组: 术语或缩写 定义与描述 booksManager 本系统的名称 Reader 系统权限:普通读者 BookAdmin 系统权限:图书管理员 UserAdmin 系统权限:用户管理员 SuperAdmin 系统权限:超级管理员(系统管理员) Undergraduate 系统用户角色:本科生 Graduate 系统用户角色:研究生 Teacher 系统用户角色:教师 2 资料引用 清华大学《应用软件平台与核心技术》讲义 顾明 清华大学《应用软件平台与核心技术》助教文档 张伟业、魏岚、陈勇、林彩荣 《精通EJB(第二版)》 《J2EE应用与BEA Web Logic Server》,刑国庆等译,电子工业出版社 《设计模式——可复用面向对象软件的基础》,Erich Gamma等,机械工业出版社 3 设计思路 本系统严格按照4层结构设计,分为数据层(SQL server),数据链接层(entity bean),数据逻辑层(session bean),网络应用层(java bean, java servlet, java serverpage)。 四层之间完全独立,可以部署在四台服务器上运行,体现了分布式应用的思想。 数据层的功能严格来说是实现基本的数据存储(逻辑处理功能应该全部交给CMP管理),但因为学习原因,在数据库中也用到了一些逻辑处理,如使用了存储过程+系统级临时表处理读者续借图书的功能、使用触发器防止未还书的用户和未归还的图书被注销以及使用视图检测借书记录实现到期催还功能。 数据链接层实现了和数据库的连接,作用在于屏蔽数据库和平台之间的差异,做到底层无关性。本层利用了模糊查找、多表映射、Relationship等技术,通过find,select方法数据的查找功能,抛出聚集对象或远程接口对象给下一层。 数据逻辑层实现了对数据的逻辑处理,例如将远程接口对象转化为值对象、将聚集对象转化为值对象向量、利用日期类完成查找两个特定日期之间的记录等相对复杂的计算。 网络应用层完成页面跳转和页面显示等应用功能,还有一些附加功能如:图片验证,登录验证,等级控制,代码过滤,分页控制,输入值检测、借书日志打印、系统运行日志记录以及系统设置等。(使用了JDBC实现存储过程和模糊查找图书的功能) 数据层设计 数据库表 表名 功能描述 user_consumer 记录了用户的所有信息 user_book 记录了图书的所有信息 user_logBook 记录了用户使用本系统的信息,保留了所有的借书记录,可作为系统日志和报表资料 user_book表的触发器 用到的触发器之一,作用:如果要注销的图书被外借没有归还,则回滚此删除操作。 CREATE TRIGGER bookhavelog ON FOR DELETE AS declare @bookISBN varchar(50) select @bookISBN=book_ISBN from deleted if exists(select * from user_logBook where logb_book_ISBN=@bookISBN and logb_backdate is null) begin rollback return end 用户续借图书的存储过程 利用存储过程实现用户续借图书的逻辑操作,根据用户的当前信息判断其是否有续借的权限,并把处理结果输出到临时表中去。 CREATE PROCEDURE user_renew_book @xxxparm int AS CREATE TABLE ##temp(statement varchar(50)) DECLARE @username varchar(50) SET @username=(select logb_cons_username from user_logBook where ID=@xxxparm) IF @username is null BEGIN INSERT INTO ##temp VALUES ('The ID is not EXIST') RETURN END DECLARE @timelimit int SET @timelimit=(select logb_timelimit from user_logBook where ID=@xxxparm) DECLARE @renewday int SET @renewday=(select cons_maxday from user_consumer where cons_username=@username) DECLARE @maxrenew int SET @maxrenew=(select cons_maxrenew from user_consumer where cons_username=@username) IF (@renewday*@maxrenew)>=@timelimit BEGIN update user_logBook set logb_timelimit=logb_timelimit+@renewday where ID=@xxxparm --update user_consumer set cons_maxrenews=cons_maxrenews-1 where cons_username=@username INSERT INTO ##temp VALUES ('renew successful') RETURN END ELSE BEGIN INSERT INTO ##temp VALUES ('You are not allowed to renew the book') RETURN END GO 到期催还表的视图 利用DATEDIFF,DATEADD,CAST,GETDATE等函数从借书记录表中计算出到期的记录,然后根据此记录找出相应的读者信息,在网页上以email形式催还。 CREATE VIEW AS SELECT TOP 100 PERCENT , , DATEADD([day], , CAST( AS datetime)) AS deadline_date, GETDATE() AS now_date, , , , , , , , , , , , FROM INNER JOIN ON = INNER JOIN ON = WHERE (DATEDIFF([day], DATEADD([day], , CAST( AS datetime)), GETDATE()) >= 0) AND ( IS NULL) ORDER BY DESC 数据链接层设计 entity bean UserBook Entity Bean设计 userbook remotehome接口 方法 描述 findAllBook 得到所有的图书信息 findByISBN 通过图书的书号得到图书的信息 findSearcher 利用关键字模糊查找图书信息 selectUserByBookISBN (userbook remote) 利用select方法实现多表相关的查找 findSearcher实现模糊查找的代码: select object(p) from UserBook as p where like concat(concat('%',?1),'%') or like ?1 or like ?1 or like ?1 or like ?1 or like concat(concat('%',?1),'%') or like ?1 UserConsumer Entity Bean设计 UserConsumer remotehome接口 方法 描述 findAllUser 查找所有的用户信息 findByUsername 通过用户名查找用户信息 findSearcher 利用关键字模糊查找用户信息 selectBookByUsername (userconsumer remote) 利用select方法实现多表相关的查找 findSearcher实现模糊查找的代码: select object(p) from UserConsumer as p where like concat(concat('%',?1),'%') or like ?1 or like concat(concat('%',?1),'%') or like ?1 or like ?1 UserLogBook Entity Bean设计 UserLogBook remotehome接口 方法 描述 findallbybookISBN 查找此书所有的借阅记录 findbybookISBN 查找此书当前的借出记录 findallbyusername 查找此用户所有的借阅记录 findbyusername 查找此用户当前的借出书记录 findbacklog 得到所有已经归还图书的借书记录 findoutlog 得到所有尚未归还图书的借书记录 findbyID 通过记录流水号查找借书记录 findlogbyday 查找某一日期的借书记录 (模糊匹配,例如提交“2004-5”可得到最终记录时间——借阅或归还在2004年5月份的所有借书记录) findallog 得到所有的借书记录 FindLogByDay通过模糊匹配得到一组最终记录时间的代码: select object(p) from UserLogBook as p where ( is null and like concat(concat('%',?1),'%') ) or ( is not null and like concat(concat('%',?1),'%') ) 数据逻辑层设计 session bean TheBook Session Bean设计 TheBook bean 实现图书的增删改查以及模糊搜索、通过书查读者等功能 方法内部实现所有的逻辑处理和转化,返回到远程接口值对象或值对象向量 TheUser Session Bean设计 TheUser bean 实现用户(读者)的增删改查以及模糊搜索、通过读者查书等功能 方法内部实现所有的逻辑处理和转化,返回到远程接口值对象或值对象向量 TheLog Session Bean设计 TheLog bean 主要实现对日志(借书记录)的各项操作,提供多种获得日志的方法(按读者、按图书、按日期、按借还状态等),方法内部实现所有的逻辑处理和转化,返回到远程接口值对象或值对象向量,另外还有如下方法: 方法 功能 public boolean userBorrowBook(String username, String bookISBN) 以一个事务封装读者借书的所有逻辑操作,借书成功返回真值,无法借书返回假值,调用enCode bean对中文进行转码 public boolean userReturnBook(String logbid) 以一个事务封装读者还书的所有逻辑操作,即实现使一笔借书记录销账的功能,调用enCode bean对中文进行转码 public Vector showLogBetweenDays(String dayBegin, String dayEnd) 返回两个日期之间的所有日志,主要利用Calendar类实现 网络应用层设计 本层本着面向对象思想的封装性、数据模糊性、可重用性等原则设计。 本着系统运行错误在系统中打印()、用户输入和误操作错误导向友好的错误处理页并给出友好的提示的错误处理原则。 每次对会话bean的调用写入系统运行日志文件,默认路径是C:\\。 CheckValue bean 封装多个静态方法。 可以用于检测某表中某个字段是否已经存在某个值(可用于检测重名用户、重号图书)、检测用户名合法性、检测密码合法性、检测年龄合法性、检测电子邮件合法性、检测数字合法性、检测日期合法性等。 EnCode bean 封装编码转码工作: html显示转码,例如:将<转为<,将>转为&rt;,将数据库中的换行转为html中的换行等等,这样可以屏蔽用户提交文本中的可执行代码。 可重载的中文转码。 密码的加密和解密编码。 JDBCBean bean 封装所有的数据库操作。包括一个带结果集返回的SQL执行方法和一个不带结果集返回的SQL执行方法。 Rank bean 封装4种权限(普通读者、用户管理员、图书管理员、系统管理员)的页面访问,相当于页面加锁功能。 SetUp bean public static String title="SuperLibrary";//系统名称 public static String dbS="booksManagerDS";//数据库的JNDI名 public static String errorPage="";//友好的错误处理页,用get方法传递出错原因 public static String homePage="";//默认首页 //权限------------------------------------------------------------------------- public static String Reader="Reader";//读者 public static String UserAdmin="UserAdmin";//用户管理员 public static String BookAdmin="BookAdmin";//图书管理员 public static String SuperAdmin="SuperAdmin";//系统管理员 //等级------------------------------------------------------------------------- public static String Undergraduate="Undergraduate";//本科生 public static int UndergraduateRenew=1;//本科生可续借的次数 public static int UndergraduateMaxday=30;//本科生一次可借的天数 public static String Graduate="Graduate";//研究生 public static int GraduateRenew=2;//研究生可续借的次数 public static int GraduateMaxday=45;//研究生一次可借的天数 public static String Teacher="Teacher";//教师 public static int TeacherRenew=3;//教师可续借的次数 public static int TeacherMaxday=60;//教师一次可借的天数 //---------------------------------------------------------------------------- public static int rsPerPage=5;//每页显示记录的数量 public static int minBooks=4;//系统默认的最小借书数 SplitPage bean 将数据记录分页的逻辑实现和页面显示(最简,可在外部由样式表美化)封装在一个bean中,重用时实际只需要传递一个记录集数量的为参数即可,可重用。一般作为session级java bean在页面中被调用,在会话中保存用户对此页面的访问状态,在会话结束之前始终记忆用户访问此页对应的页码。 UserLogin bean 将用户登录的逻辑实现和页面显示(最简,可在外部由样式表美化)封装在一个bean中,包括对用户各种登录情况的处理,可重用。 SearchBook bean 利用JDBC实现模糊查找和按指定类别精确查找图书的功能。 SearchDeadline bean 利用JDBC调用视图实现到期图书的催还功能。 ValidateIMG servlet 动态生成含有随机验证码的图片,在生成图片的同时将验证码写入session中,与用户的登录输入比较。可有效的防止机器人登录。 GetDelete servlet servlet 处理图书、用户、日志的注销操作,根据返回值进行相应页面的跳转。 GetBookSubmit servlet 处理图书的入库和图书信息的修改,根据返回值进行相应页面的跳转。 GetUserSubmit servlet 处理用户的注册和用户信息的修改,根据返回值进行相应页面的跳转。 GetRenewBook servlet 处理用户续借图书的请求(JDBC调用存储过程实现),从系统临时表中读取状态值,根据状态值进行相应页面的跳转。 GetBorrowBook servlet 处理用户的借书请求,将用户借书限额已满、库存为零等错误导向友好的错误页,如果借书成功则跳转到图书信息页面,并给与相应的提示。 GetReturnBook servlet 处理用户的还书请求,如果还书成功则跳转到用户的借书记录页面,并给与相应的提示。 4 程序架构 程序组织结构 说明:图书搜索和用户登录看作系统外部功能,通过JDBC直接调用数据库,其中用户登录模块封装在一个java bean中,可重用。另外,用户续借图书是通过存储过程实现,从而绕过了使用CMP技术管理事务的实体bean。 本系统其余程序的组织结构严格按照下图实现: 程序组织结构图 功能权限划分 站点页面地图 权限名称 系统定义字符 权限 可访问页面 普通读者 Reader 查看自己的信息(还书、续借); 修改自己的信息; 查看图书(借书); userModify userView booklist 图书管理员 BookAdmin 拥有普通读者的权限; 图书的增删改查; 到期催还; userModify userView booklist bookAdder bookModify deadline 用户管理员 UserAdmin 拥有普通读者的权限; 用户的增删改查; userModify userView booklist userRegister userModify userList 系统管理员 SuperAdmin 拥有图书管理员和用户管理员的权限; 查看系统日志; 删除系统日志; 系统设置; 包括(系统设置,利用application级java bean控制整个应用程序)在内的所有页面 WEB程序/页面设计 利用代码关闭客户端的输入法,实现用户名、密码不能出现中文的问题。 利用onfocus=() onmouseover=()代码使文本框自动吸附获得焦点,方便用户输入。 利用WMODE="transparent"参数使flash的背景透明,更好的融入网页。 在每页中,利用代码: 嵌入上下导航条,使网站导航明确,方便用户浏览。 在网页头部加入代码: 使客户端不缓存网页,保证了客户每次浏览该页都从服务器获得最新的版本,以求正确显示。 提供智能搜索(获得尽可能多的匹配)和精确搜索(获得尽可能精确的匹配)图书,服务器端编程都采用模糊查找的方式。 在客户端用javascript对表单提交进行第一次验码,通过后提交到服务器端,再进行第二次验码,验码包括:用户名是否重复、年龄是不是合适的数字,两次密码输入的是否一致、电子邮件是否合法、密码是否太短、用户名是否太短、用户名密码是否为空等等。 利用随机生成JPG图片验证码的方法,防止机器人登录。 在页面中使用session级java bean实现分页,在会话中保存用户对此页面的访问状态,在会话结束之前始终记忆用户访问此页对应的页码。 在页面中使用application级java bean实现安全的系统设置,当服务器启动后,即可对系统运行参数进行应用程序级的设置,只要服务器不关闭,此设置始终有效且作用于所有用户,如果设置不慎造成系统错误或想恢复系统默认设置,则只需重新启动服务器即可。 在对会话bean的调用包ejbClient中,创建系统运行日志,通过包中的writeF类写入web服务器的C:\\中,可做查询用。 本系统实现的功能 确定图书的基本信息,有书名、作者、出版日期、当前借阅状态等属性 系统的使用者包括读者、图书管理员、用户管理员、系统管理员四种 读者可以查询图书;图书管理员可以完成图书管理、借阅管理;读者管理员可以完成读者管理的功能;系统管理员可以使用系统的所有功能 图书管理:新书登记,图书查询,图书注销; 借阅管理:借书,还书,查询到期读者 读者管理:增加读者、删除读者、查询读者、读者类别管理(设置研究生,本科生,教师的可借册数,可借天数,可续借次数等) 系统管理:系统管理员使用,包括用户权限管理(增加用户,删除用户,密码修改等),系统借书日志,系统运行日志,系统设置等功能 页面输入有验码,密码存取有加密 图书到期催还 体现分层设计思想,使用MVC架构 实现了多个Beans,Bean之间实现了对应的关系 使用了EJB QL,事务控制等 使用了jsp->sessionBean->entityBean->数据库模式 数据库使用了触发器和存储过程等一些高级技术

绪论就是把你写这篇论文的目的以及你这篇论文的大体思想和论文的大体步骤给写上就行啦,要写引言 引言的主要任务是向读者勾勒出全文的基本内容和轮廓。它可以包括以下五项内容中的全部或其中几项: 介绍某研究领域的背景、意义、发展状况、目前的水平等; 对相关领域的文献进行回顾和综述,包括前人的研究成果,已经解决的问题,并适当加以评价或比较; 指出前人尚未解决的问题,留下的技术空白,也可以提出新问题、解决这些新问题的新方法、新思路,从而引出自己研究课题的动机与意义; 说明自己研究课题的目的; 概括论文的主要内容,或勾勒其大体轮廓。 引言与摘要(1)如何写引言的开头(2)如何写文献综述(3)如何写研究动机与目的(4)如何写引言的结尾 希望能帮到你

基于jsp的论文研究方法

比如可以通过springmvc, spring, mybatis写一套二手交易平台, 自己把分类改一下完全满足毕设要求

这个是我写的二手平台, 看起来还不错吧, 大概设计了十几个表, 能够在后台进行商品管理分类管理,登陆注册, 加入购物车等功能~可以参考一下

像这类信息管理系统还有很多, 比如你还可以做一个电商系统, 或者在线考试系统, 在线组卷系统等等, 用的技术框架差不多, 基于成品能很快的做出来

工科生一般有一个毕业设计,做一个项目,同时需要写一个论文也就是毕业论文讲述设计工作中做了什么,为什么做,得到了什么结论等理论性的东西。文史哲以及经济等和理科生一般都是需要写一个论文,阐述清楚以及涉猎的学科研究方向中的理论,突破,收获等。大致这样吧

1 前言 4 目的 4 范围 4 有关本系统中的定义 4 2 资料引用 4 3 设计思路 4 数据层设计 5 user_book表的触发器 5 用户续借图书的存储过程 6 到期催还表的视图 7 数据链接层设计 8 UserBook Entity Bean设计 9 UserConsumer Entity Bean设计 10 UserLogBook Entity Bean设计 11 数据逻辑层设计 12 TheBook Session Bean设计 13 TheUser Session Bean设计 14 TheLog Session Bean设计 15 网络应用层设计 15 CheckValue bean 16 EnCode bean 16 JDBCBean bean 16 Rank bean 16 SetUp bean 16 SplitPage bean 17 UserLogin bean 17 SearchBook bean 17 SearchDeadline bean 17 ValidateIMG servlet 17 GetDelete servlet servlet 17 GetBookSubmit servlet 18 GetUserSubmit servlet 18 GetRenewBook servlet 18 GetBorrowBook servlet 18 GetReturnBook servlet 18 4 程序架构 18 程序组织结构 18 功能权限划分 20 WEB程序/页面设计 21 本系统实现的功能 22 5 任务分工 22 1 前言 目的 本文档详细描述了图书管理系统的设计,主要是为开发人员提供,使其对本项目的构建和维护有深入的了解。 范围 本文档的描述只针对图书管理系统的版本。 有关本系统中的定义 以下是本说明书中用到的专门术语的定义和外文首字母组词的原词组: 术语或缩写 定义与描述 booksManager 本系统的名称 Reader 系统权限:普通读者 BookAdmin 系统权限:图书管理员 UserAdmin 系统权限:用户管理员 SuperAdmin 系统权限:超级管理员(系统管理员) Undergraduate 系统用户角色:本科生 Graduate 系统用户角色:研究生 Teacher 系统用户角色:教师 2 资料引用 清华大学《应用软件平台与核心技术》讲义 顾明 清华大学《应用软件平台与核心技术》助教文档 张伟业、魏岚、陈勇、林彩荣 《精通EJB(第二版)》 《J2EE应用与BEA Web Logic Server》,刑国庆等译,电子工业出版社 《设计模式——可复用面向对象软件的基础》,Erich Gamma等,机械工业出版社 3 设计思路 本系统严格按照4层结构设计,分为数据层(SQL server),数据链接层(entity bean),数据逻辑层(session bean),网络应用层(java bean, java servlet, java serverpage)。 四层之间完全独立,可以部署在四台服务器上运行,体现了分布式应用的思想。 数据层的功能严格来说是实现基本的数据存储(逻辑处理功能应该全部交给CMP管理),但因为学习原因,在数据库中也用到了一些逻辑处理,如使用了存储过程+系统级临时表处理读者续借图书的功能、使用触发器防止未还书的用户和未归还的图书被注销以及使用视图检测借书记录实现到期催还功能。 数据链接层实现了和数据库的连接,作用在于屏蔽数据库和平台之间的差异,做到底层无关性。本层利用了模糊查找、多表映射、Relationship等技术,通过find,select方法数据的查找功能,抛出聚集对象或远程接口对象给下一层。 数据逻辑层实现了对数据的逻辑处理,例如将远程接口对象转化为值对象、将聚集对象转化为值对象向量、利用日期类完成查找两个特定日期之间的记录等相对复杂的计算。 网络应用层完成页面跳转和页面显示等应用功能,还有一些附加功能如:图片验证,登录验证,等级控制,代码过滤,分页控制,输入值检测、借书日志打印、系统运行日志记录以及系统设置等。(使用了JDBC实现存储过程和模糊查找图书的功能) 数据层设计 数据库表 表名 功能描述 user_consumer 记录了用户的所有信息 user_book 记录了图书的所有信息 user_logBook 记录了用户使用本系统的信息,保留了所有的借书记录,可作为系统日志和报表资料 user_book表的触发器 用到的触发器之一,作用:如果要注销的图书被外借没有归还,则回滚此删除操作。 CREATE TRIGGER bookhavelog ON FOR DELETE AS declare @bookISBN varchar(50) select @bookISBN=book_ISBN from deleted if exists(select * from user_logBook where logb_book_ISBN=@bookISBN and logb_backdate is null) begin rollback return end 用户续借图书的存储过程 利用存储过程实现用户续借图书的逻辑操作,根据用户的当前信息判断其是否有续借的权限,并把处理结果输出到临时表中去。 CREATE PROCEDURE user_renew_book @xxxparm int AS CREATE TABLE ##temp(statement varchar(50)) DECLARE @username varchar(50) SET @username=(select logb_cons_username from user_logBook where ID=@xxxparm) IF @username is null BEGIN INSERT INTO ##temp VALUES ('The ID is not EXIST') RETURN END DECLARE @timelimit int SET @timelimit=(select logb_timelimit from user_logBook where ID=@xxxparm) DECLARE @renewday int SET @renewday=(select cons_maxday from user_consumer where cons_username=@username) DECLARE @maxrenew int SET @maxrenew=(select cons_maxrenew from user_consumer where cons_username=@username) IF (@renewday*@maxrenew)>=@timelimit BEGIN update user_logBook set logb_timelimit=logb_timelimit+@renewday where ID=@xxxparm --update user_consumer set cons_maxrenews=cons_maxrenews-1 where cons_username=@username INSERT INTO ##temp VALUES ('renew successful') RETURN END ELSE BEGIN INSERT INTO ##temp VALUES ('You are not allowed to renew the book') RETURN END GO 到期催还表的视图 利用DATEDIFF,DATEADD,CAST,GETDATE等函数从借书记录表中计算出到期的记录,然后根据此记录找出相应的读者信息,在网页上以email形式催还。 CREATE VIEW AS SELECT TOP 100 PERCENT , , DATEADD([day], , CAST( AS datetime)) AS deadline_date, GETDATE() AS now_date, , , , , , , , , , , , FROM INNER JOIN ON = INNER JOIN ON = WHERE (DATEDIFF([day], DATEADD([day], , CAST( AS datetime)), GETDATE()) >= 0) AND ( IS NULL) ORDER BY DESC 数据链接层设计 entity bean UserBook Entity Bean设计 userbook remotehome接口 方法 描述 findAllBook 得到所有的图书信息 findByISBN 通过图书的书号得到图书的信息 findSearcher 利用关键字模糊查找图书信息 selectUserByBookISBN (userbook remote) 利用select方法实现多表相关的查找 findSearcher实现模糊查找的代码: select object(p) from UserBook as p where like concat(concat('%',?1),'%') or like ?1 or like ?1 or like ?1 or like ?1 or like concat(concat('%',?1),'%') or like ?1 UserConsumer Entity Bean设计 UserConsumer remotehome接口 方法 描述 findAllUser 查找所有的用户信息 findByUsername 通过用户名查找用户信息 findSearcher 利用关键字模糊查找用户信息 selectBookByUsername (userconsumer remote) 利用select方法实现多表相关的查找 findSearcher实现模糊查找的代码: select object(p) from UserConsumer as p where like concat(concat('%',?1),'%') or like ?1 or like concat(concat('%',?1),'%') or like ?1 or like ?1 UserLogBook Entity Bean设计 UserLogBook remotehome接口 方法 描述 findallbybookISBN 查找此书所有的借阅记录 findbybookISBN 查找此书当前的借出记录 findallbyusername 查找此用户所有的借阅记录 findbyusername 查找此用户当前的借出书记录 findbacklog 得到所有已经归还图书的借书记录 findoutlog 得到所有尚未归还图书的借书记录 findbyID 通过记录流水号查找借书记录 findlogbyday 查找某一日期的借书记录 (模糊匹配,例如提交“2004-5”可得到最终记录时间——借阅或归还在2004年5月份的所有借书记录) findallog 得到所有的借书记录 FindLogByDay通过模糊匹配得到一组最终记录时间的代码: select object(p) from UserLogBook as p where ( is null and like concat(concat('%',?1),'%') ) or ( is not null and like concat(concat('%',?1),'%') ) 数据逻辑层设计 session bean TheBook Session Bean设计 TheBook bean 实现图书的增删改查以及模糊搜索、通过书查读者等功能 方法内部实现所有的逻辑处理和转化,返回到远程接口值对象或值对象向量 TheUser Session Bean设计 TheUser bean 实现用户(读者)的增删改查以及模糊搜索、通过读者查书等功能 方法内部实现所有的逻辑处理和转化,返回到远程接口值对象或值对象向量 TheLog Session Bean设计 TheLog bean 主要实现对日志(借书记录)的各项操作,提供多种获得日志的方法(按读者、按图书、按日期、按借还状态等),方法内部实现所有的逻辑处理和转化,返回到远程接口值对象或值对象向量,另外还有如下方法: 方法 功能 public boolean userBorrowBook(String username, String bookISBN) 以一个事务封装读者借书的所有逻辑操作,借书成功返回真值,无法借书返回假值,调用enCode bean对中文进行转码 public boolean userReturnBook(String logbid) 以一个事务封装读者还书的所有逻辑操作,即实现使一笔借书记录销账的功能,调用enCode bean对中文进行转码 public Vector showLogBetweenDays(String dayBegin, String dayEnd) 返回两个日期之间的所有日志,主要利用Calendar类实现 网络应用层设计 本层本着面向对象思想的封装性、数据模糊性、可重用性等原则设计。 本着系统运行错误在系统中打印()、用户输入和误操作错误导向友好的错误处理页并给出友好的提示的错误处理原则。 每次对会话bean的调用写入系统运行日志文件,默认路径是C:\\。 CheckValue bean 封装多个静态方法。 可以用于检测某表中某个字段是否已经存在某个值(可用于检测重名用户、重号图书)、检测用户名合法性、检测密码合法性、检测年龄合法性、检测电子邮件合法性、检测数字合法性、检测日期合法性等。 EnCode bean 封装编码转码工作: html显示转码,例如:将<转为<,将>转为&rt;,将数据库中的换行转为html中的换行等等,这样可以屏蔽用户提交文本中的可执行代码。 可重载的中文转码。 密码的加密和解密编码。 JDBCBean bean 封装所有的数据库操作。包括一个带结果集返回的SQL执行方法和一个不带结果集返回的SQL执行方法。 Rank bean 封装4种权限(普通读者、用户管理员、图书管理员、系统管理员)的页面访问,相当于页面加锁功能。 SetUp bean public static String title="SuperLibrary";//系统名称 public static String dbS="booksManagerDS";//数据库的JNDI名 public static String errorPage="";//友好的错误处理页,用get方法传递出错原因 public static String homePage="";//默认首页 //权限------------------------------------------------------------------------- public static String Reader="Reader";//读者 public static String UserAdmin="UserAdmin";//用户管理员 public static String BookAdmin="BookAdmin";//图书管理员 public static String SuperAdmin="SuperAdmin";//系统管理员 //等级------------------------------------------------------------------------- public static String Undergraduate="Undergraduate";//本科生 public static int UndergraduateRenew=1;//本科生可续借的次数 public static int UndergraduateMaxday=30;//本科生一次可借的天数 public static String Graduate="Graduate";//研究生 public static int GraduateRenew=2;//研究生可续借的次数 public static int GraduateMaxday=45;//研究生一次可借的天数 public static String Teacher="Teacher";//教师 public static int TeacherRenew=3;//教师可续借的次数 public static int TeacherMaxday=60;//教师一次可借的天数 //---------------------------------------------------------------------------- public static int rsPerPage=5;//每页显示记录的数量 public static int minBooks=4;//系统默认的最小借书数 SplitPage bean 将数据记录分页的逻辑实现和页面显示(最简,可在外部由样式表美化)封装在一个bean中,重用时实际只需要传递一个记录集数量的为参数即可,可重用。一般作为session级java bean在页面中被调用,在会话中保存用户对此页面的访问状态,在会话结束之前始终记忆用户访问此页对应的页码。 UserLogin bean 将用户登录的逻辑实现和页面显示(最简,可在外部由样式表美化)封装在一个bean中,包括对用户各种登录情况的处理,可重用。 SearchBook bean 利用JDBC实现模糊查找和按指定类别精确查找图书的功能。 SearchDeadline bean 利用JDBC调用视图实现到期图书的催还功能。 ValidateIMG servlet 动态生成含有随机验证码的图片,在生成图片的同时将验证码写入session中,与用户的登录输入比较。可有效的防止机器人登录。 GetDelete servlet servlet 处理图书、用户、日志的注销操作,根据返回值进行相应页面的跳转。 GetBookSubmit servlet 处理图书的入库和图书信息的修改,根据返回值进行相应页面的跳转。 GetUserSubmit servlet 处理用户的注册和用户信息的修改,根据返回值进行相应页面的跳转。 GetRenewBook servlet 处理用户续借图书的请求(JDBC调用存储过程实现),从系统临时表中读取状态值,根据状态值进行相应页面的跳转。 GetBorrowBook servlet 处理用户的借书请求,将用户借书限额已满、库存为零等错误导向友好的错误页,如果借书成功则跳转到图书信息页面,并给与相应的提示。 GetReturnBook servlet 处理用户的还书请求,如果还书成功则跳转到用户的借书记录页面,并给与相应的提示。 4 程序架构 程序组织结构 说明:图书搜索和用户登录看作系统外部功能,通过JDBC直接调用数据库,其中用户登录模块封装在一个java bean中,可重用。另外,用户续借图书是通过存储过程实现,从而绕过了使用CMP技术管理事务的实体bean。 本系统其余程序的组织结构严格按照下图实现: 程序组织结构图 功能权限划分 站点页面地图 权限名称 系统定义字符 权限 可访问页面 普通读者 Reader 查看自己的信息(还书、续借); 修改自己的信息; 查看图书(借书); userModify userView booklist 图书管理员 BookAdmin 拥有普通读者的权限; 图书的增删改查; 到期催还; userModify userView booklist bookAdder bookModify deadline 用户管理员 UserAdmin 拥有普通读者的权限; 用户的增删改查; userModify userView booklist userRegister userModify userList 系统管理员 SuperAdmin 拥有图书管理员和用户管理员的权限; 查看系统日志; 删除系统日志; 系统设置; 包括(系统设置,利用application级java bean控制整个应用程序)在内的所有页面 WEB程序/页面设计 利用代码关闭客户端的输入法,实现用户名、密码不能出现中文的问题。 利用onfocus=() onmouseover=()代码使文本框自动吸附获得焦点,方便用户输入。 利用WMODE="transparent"参数使flash的背景透明,更好的融入网页。 在每页中,利用代码: 嵌入上下导航条,使网站导航明确,方便用户浏览。 在网页头部加入代码: 使客户端不缓存网页,保证了客户每次浏览该页都从服务器获得最新的版本,以求正确显示。 提供智能搜索(获得尽可能多的匹配)和精确搜索(获得尽可能精确的匹配)图书,服务器端编程都采用模糊查找的方式。 在客户端用javascript对表单提交进行第一次验码,通过后提交到服务器端,再进行第二次验码,验码包括:用户名是否重复、年龄是不是合适的数字,两次密码输入的是否一致、电子邮件是否合法、密码是否太短、用户名是否太短、用户名密码是否为空等等。 利用随机生成JPG图片验证码的方法,防止机器人登录。 在页面中使用session级java bean实现分页,在会话中保存用户对此页面的访问状态,在会话结束之前始终记忆用户访问此页对应的页码。 在页面中使用application级java bean实现安全的系统设置,当服务器启动后,即可对系统运行参数进行应用程序级的设置,只要服务器不关闭,此设置始终有效且作用于所有用户,如果设置不慎造成系统错误或想恢复系统默认设置,则只需重新启动服务器即可。 在对会话bean的调用包ejbClient中,创建系统运行日志,通过包中的writeF类写入web服务器的C:\\中,可做查询用。 本系统实现的功能 确定图书的基本信息,有书名、作者、出版日期、当前借阅状态等属性 系统的使用者包括读者、图书管理员、用户管理员、系统管理员四种 读者可以查询图书;图书管理员可以完成图书管理、借阅管理;读者管理员可以完成读者管理的功能;系统管理员可以使用系统的所有功能 图书管理:新书登记,图书查询,图书注销; 借阅管理:借书,还书,查询到期读者 读者管理:增加读者、删除读者、查询读者、读者类别管理(设置研究生,本科生,教师的可借册数,可借天数,可续借次数等) 系统管理:系统管理员使用,包括用户权限管理(增加用户,删除用户,密码修改等),系统借书日志,系统运行日志,系统设置等功能 页面输入有验码,密码存取有加密 图书到期催还 体现分层设计思想,使用MVC架构 实现了多个Beans,Bean之间实现了对应的关系 使用了EJB QL,事务控制等 使用了jsp->sessionBean->entityBean->数据库模式 数据库使用了触发器和存储过程等一些高级技术

你的理解错误了。 jsp+servlet+javabean只是MVC的model2,mvc的model1是jsp+javabean。 这三个加在一起组成Web层。 J2EE的三层是web层,业务层和数据层。 jsp+servlet+javabean只是web层的一个解决方案。当然你可以使用struts2代替。

论文研究方法方法

论文的研究方法有哪些

论文的研究方法有哪些,研究方法是在一个研究中发现新的现象、新的事物,或者提出新理论、观点,论文研究方法需要大量阅读法,找到不足和创新点,来完善自己的论文,下面一起来学习一下论文的研究方法有哪些。

一、思维方法

思维方法是人们正确进行思维和准确表达思想的重要工具,在科学研究中最常用的科学思维方法包括归纳演绎、类比推理、抽象概括、思辩想象、分析综合等,它对于一切科学研究都具有普遍的指导意义。

二、内容分析法

内容分析法是一种对于传播内容进行客观,系统和定量的描述的研究方法。其实质是对传播内容所含信息量及其变化的分析,即由表征的有意义的词句推断出准确意义的过程。内容分析的过程是层层推理的`过程。

三、文献分析法

文献分析法主要指搜集、鉴别、整理文献,并通过对文献的研究,形成对事实科学认识的方法。文献分析法是一项经济且有效的信息收集方法,它通过对与工作相关的现有文献进行系统性的分析来获取工作信息。一般用于收集工作的原始信息,编制任务清单初稿。

四、数学方法

数学方法就是在撇开研究对象的其他一切特性的情况下,用数学工具对研究对象进行一系列量的处理,从而作出正确的说明和判断,得到以数字形式表述的成果。科学研究的对象是质和量的统一体,它们的质和量是紧密联系,质变和量变是互相制约的。要达到真正的科学认识,不仅要研究质的规定性,还必须重视对它们的量进行考察和分析,以便更准确地认识研究对象的本质特性。数学方法主要有统计处理和模糊数学分析方法。

一、规范研究法

会计理论研究的一般方法,它是根据一定的价值观念或经济理论对经济行为人的行为结果及产生这一结果的制度或政策进行评判,回答经济行为人的行为应该是什么的分析方法。

二、实证研究法

实证研究法是认识客观现象,向人们提供实在、有用、确定、精确的知识研究方法,其重点是研究现象本身“是什么”的问题。实证研究法试图超越或排斥价值判断,只揭示客观现象的内在构成因素及因素的普遍联系,归纳概括现象的本质及其运行规律。

三、案例分析法

案例分析法是指把实际工作中出现的问题作为案例,交给受训学员研究分析,培养学员们的分析能力、判断能力、解决问题及执行业务能力的培训方法,具体说来:

四、比较分析法

是通过实际数与基数的对比来提示实际数与基数之间的差异,借以了解经济活动的成绩和问题的一种分析方法。在科学探究活动中常常用到,他与等效替代法相似。

论文研究方法

调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。

观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。

实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。

文献研究法:通过调查文献来获取资料,从而全面的、正确的了解掌握研究方法。

实证研究法:依据现有的科学理论和实践的需要提出设计。

定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。

定性分析法:对研究对象进行质的方面的研究,这个方法需要计算数据较少。

跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。

功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。

模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。

论文研究方法规范研究方法

论文有哪些研究方法?:

论文的研究方法:规范研究法,实证研究法,案例分析法,比较分析法,思维方法,内容分析法,文献分析法,数学方法。研究方法是指在研究中发现新现象、新事物,或提出新理论、新观点,揭示事物内在规律的工具和手段。

论文常用来指进行各个学术领域的研究和描述学术研究成果的文章,它既是探讨问题进行学术研究的一种手段,又是描述学术研究成果进行学术交流的一种工具,那么论文研究方法有哪些呢?

论文的研究方法

论文的研究方法有调查法,指有目的,有系统地搜集有关研究对象;观察法,指用自己的感官和辅助工具去直接观察被研究对象;因果分析法,指分析现象之间的因果关系,认识问题的产生原因和引起结果的辩证思维方法。还有实验法,归纳方法与演绎方法,实证研究法,定量分析法等。

文献研究法是根据一定的目的或课题,通过搜集、鉴别、整理文献来获取资料,从而全面的、正确的了解所要研究问题的一种方法。是一种间接的、非介入性调查,被广泛运用于各种学科中。

优点:方便、自由、受外界约束条件少,只需找到文献便可随时随地进行研究;在前人研究的基础上获取知识,省时、省钱、效率高。

操作三步骤:

1. 确定课题内容

先通过一定的调研确定研究课题,再大致列出文献研究时所需要参考的什么方面的书籍,如此一来,我们就能确定在检索时的总体方向,按照大方向来搜索相关文献资料。

2. 搜索、筛选、整理文献资料

优先搜集近五年发表的、专业相关性较强的、发表在著名期刊上的文献,以确保文献资料的时效性、专业性与权威性。搜索工作告一段落之后,就是我们要进行整理与记录,推荐同学们建立专门的文件夹,分门别类的对文献进行整合与归纳。

3.撰写文献综述。

文献综述是在综合了解文献之后得到的关于研究领域的认知以及研究者个人的见解。组成部分为:研究领域的发展背景、发展现状、前人对于该领域的研究情况、研究者对于该领域的独到发现。(对这一部分有疑问的同学可以去看老王之前发的文献综述写作方法)

文献搜索的渠道与方法:

文献可以分为纸质版文献与电子版文献。

纸质版文献可以去到图书馆、档案馆进行搜集。

电子版文献主要渠道为如下:

① 综合搜索网站:谷歌学术、微软学术

② 中文数据库:中国知网、万方、维普

③ 外文数据库:Web of Knowledge、Science Direct、Engineering Village、Elsevier

一、规范研究法标准化分析方法的主要特点是在分析前确定相应的标准,然后根据这些标准分析研究对象的当前状态是否符合这些标准。如果不符合,则偏差程度如何,如何调整等。二、实证研究法实证研究方法是了解客观现象,为人们提供真实、有用、确定、准确的知识研究方法,重点是研究现象本身的是什么。实证研究方法试图超越或拒绝价值判断,只揭示客观现象的内在因素和因素之间的普遍联系,总结现象的本质及其运行规律。三、调查法该方法是有目的、系统地收集有关研究对象的具体信息。它也是一种实证分析。研究人员通过个人接触和广泛调查,有计划地掌握大量的第一手材料,在此基础上进行综合分析,研究教育的实际历史、现状和发展趋势,找出科学结论,指导教育实践。调查方法一般在自然过程中进行,通过访问、调查会议、问卷发送、测试等方式收集反映研究现象的材料。

毕业论文采用研究方法

毕业论文采用研究方法,毕业论文对大学生是很重要的一项内容,如果毕业论文不通过就可能毕不了业了,论文的研究方法是很重要的,下面我和大家分享毕业论文采用研究方法,一起来了解一下吧。

一、调查法

调查法:调查法是科学研究中最常用的方法之一,它是有目的、有计划、有系统地搜集有关研究对象现实状况或历史状况的材料的方法。它综合运用历史法、观察法等方法以及谈话、问卷、个案研究、测验等科学方式,对教育现象进行有计划的、周密的和系统的了解,并对调查搜集到的大量资料进行分析、综合、比较、归纳,从而为人们提供规律性的知识。

二、实验法

通过主支变革、控制研究对象来发现与确认事物间的因果联系的一种科研方法。特点:(1)主动变革性。观察与调查都是在不干预研究对象的前提下去认识研究对象,发现其中的问题。而实验却要求主动操纵实验条件,人为地改变对象的存在方式、变化过程,使它服从于科学认识的需要。(2)控制性。科学实验要求根据研究的需要,借助各种方法技术,减少或消除各种可能影响科学的无关因素的干扰,在简化、纯化的状态下认识研究对象。(3)因果性。实验以发现、确认事物之间的因果联系的`有效工具和必要途径。

三、规范研究与实证研究

实证研究方法排斥价值判断,规范研究方法却以价值判断为基础。(1)规范研究法。以某种价值判断为基础,说明经济现象及其运行应该是什么的问题,即要说明所要研究的对象本身是好还是坏,对社会具有积极意义还是具有消极意义。目的:提出一定的标准作为经济理论的前提,并以该标准作为制定经济政策的依据,以及研究如何使经济现象的运行符合或实现这些标准。(2)实证研究法。实证研究法是科学实践研究的一种特殊形式。其依据现有的科学理论和实践的需要,提出设计,利用科学仪器和设备,在自然条件下,通过有目的有步骤地操纵,根据观察、记录、测定与此相伴随的现象的变化来确定条件与现象之间的因果关系的活动。目的:说明各种自变量与某一个因变量的关系。该方法步骤:(1) 确定所要研究的对象,分析研究对象的构成因素、相互关系以及影响因素,搜集并分类相关的事实资料。(2) 设定假设条件。在研究的过程中,研究对象的行为是有其特征所决定,试图把所有复杂因素都包括进去,显然是不现实也不可能的。为此,必须对某一理论所使用的条件进行设定。当然,假设的条件有一些是不现实的,但没有假设条件则无法进行科学研究。运用实证研究法研究问题,必须正确设定假设条件。(3) 提出理论假说。假说是对于现象进行客观研究所得出的暂时性结论,也就是未经过证明的结论。假说对研究对象现象的经验性概括和总结,但还不能说明它是否能成为具有普遍意义的理论。(4) 验证。在不同条件和不同时间对假说进行检验,用事实检验其正确与否。检验包括应用假说对现象的运动发展进行预测。

四、定量分析与定性分析

(1)定量分析法。在科学研究中,通过定量分析法可以使人们对研究对象的认识进一步精确化,以便更加科学地揭示规律,把握本质,理清关系,预测事物的发展趋势。(2)定性分析法。定性分析法就是对研究对象进行“质”的方面的分析。具体地说是运用归纳和演绎、分析与综合以及抽象与概括等方法,对获得的各种材料进行思维加工,从而能去粗取精、去伪存真、由此及彼、由表及里,达到认识事物本质、揭示内在规律。

五、文献综合法和个案研究法

(1)文献综合研究法。文献研究法是根据一定的研究目的或课题,通过调查文献来获得资料,从而全面地、正确地了解掌握所要研究问题的一种方法。作用:1)能了解有关问题的历史和现状,帮助确定研究课题;2)能形成关于研究对象的一般印象,有助于观察和访问;3)能得到现实资料的比较资料;4)有助于了解事物的全貌。

(2)个案研究法。认定研究对象中的某一特定对象,加以调查分析,弄清其特点及其形成过程的一种研究方法。基本类型:1)个人调查,即对组织中的某一个人进行调查研究;2)团体调查,即对某个组织或团体进行调查研究;3)问题调查,即对某个现象或问题进行调查研究。

六、跨学科研究法

运用多学科的理论、方法和成果从整体上对某一课题进行综合研究的方法,也称“交叉研究法”。科学发展运动的规律表明,科学在高度分化中又高度综合,形成一个统一的整体。

(1)文献研究法:根据所要研究内容 ,通过查阅相关文献获得充足的资料,从而全面地了解所研究课题的背景、历史、现状以及前景。

(2)研究项目分析法:在进行理论的搜集与分析之后,根据现有的研究项目整体系统进行分析与设计,实现理论与实践的相结合,使理论有理有据,设计更合理。

根据许多论文的选题经验,这一级论文的选题可从以下几方面考虑:本专业的研究空白、发生争议的话题(自己的观点感到较为充分)、对比性的话题、从其他专业角度研究本专业的话题(这是一种选题的边际效应)、有新的插入角度的老话题、刚刚冒出来的本专业的新问题。

jsp方面的毕业论文

摘 要 近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念,本购物系统基于B/S模式,实现了当前购物网站的基本功能。 本论文就此购物系统进行了详细全面的论述。系统中用户的主要功能有:用户登录、注册、商品浏览、商品购买、订单管理以及个人信息管理。管理员的主要功能有:商品管理、用户管理以及订单信息管理。 全文共分为五个部分,第一部分是介绍相关理论知识;第二部分介绍系统总体设计;第三部分介绍系统具体实现过程;第四部分是测试工作。最后是结论。关键词:电子商务;购物系统;JSP;数据库 The Design and Realization of shopping Online System Based on JSPAbstract In recent years, Internet has become the best channel for collection of information and entered the traditional field of circulation with the rapid rising. E-commerce has been popular, and more and more online stores are established on the Internet, displaying a new idea of shopping. This Shopping system based on B/S mode, realize the base function of the current Shopping site. This paper introduces the Shopping system in detail. The main functions of people in system include login, registration, view and purchasing of goods, management of the Orders and customers. The main functions of administrator include management of the goods, users and Orders. There are five sections in this paper, the first is introduction of Related theoretical knowledge; the second is introduction of the design of system; the third is introduction of the process of realization; the forth is test; and the conclusion in the words: E-commerce; Shopping System; JSP; Database 目 录论文总页数:22页1. 引言 1 网上购物系统的发展 网上购物的现状 网上购物系统的构建 12. 相关理论基础 JSP技术 JSP的简介 JSP的优点 JSP的工作原理 数据库及相关技术简介 SQL语言简介 Microsoft SQL Server 简介 JAVA技术简介 TOMCAT简介 43. 系统总体设计 系统设计 本文来自: 一流设计吧( ) 详细出处参考:

学生考勤系统的毕业论文在天极计算机毕业设计网站上就可以找到的 网上订餐系统无论是在开辟过程中〖资料来源:天极毕业设计论文网-海量的毕业设计论文范文,计算机毕业设计,机械毕业设计论文,(工程)硕士毕业论文 〗照样建成后的日常保护过程中,都须要进行严格的检测,以包管订餐系统的办事质量。建议网上订餐系统应留意以下3点。(1)把握好食物质量和宣传内容环节。供给的菜品必须是新鲜的优质产品而决非过时剩菜。产品宣传告白内容应健康真实,既要反应客不雅事物又要有观赏价值。(2)办事功能的检测: 更多计算机毕业论文的参考可以点击 你可以去看下

1 前言 4 目的 4 范围 4 有关本系统中的定义 4 2 资料引用 4 3 设计思路 4 数据层设计 5 user_book表的触发器 5 用户续借图书的存储过程 6 到期催还表的视图 7 数据链接层设计 8 UserBook Entity Bean设计 9 UserConsumer Entity Bean设计 10 UserLogBook Entity Bean设计 11 数据逻辑层设计 12 TheBook Session Bean设计 13 TheUser Session Bean设计 14 TheLog Session Bean设计 15 网络应用层设计 15 CheckValue bean 16 EnCode bean 16 JDBCBean bean 16 Rank bean 16 SetUp bean 16 SplitPage bean 17 UserLogin bean 17 SearchBook bean 17 SearchDeadline bean 17 ValidateIMG servlet 17 GetDelete servlet servlet 17 GetBookSubmit servlet 18 GetUserSubmit servlet 18 GetRenewBook servlet 18 GetBorrowBook servlet 18 GetReturnBook servlet 18 4 程序架构 18 程序组织结构 18 功能权限划分 20 WEB程序/页面设计 21 本系统实现的功能 22 5 任务分工 22 1 前言 目的 本文档详细描述了图书管理系统的设计,主要是为开发人员提供,使其对本项目的构建和维护有深入的了解。 范围 本文档的描述只针对图书管理系统的版本。 有关本系统中的定义 以下是本说明书中用到的专门术语的定义和外文首字母组词的原词组: 术语或缩写 定义与描述 booksManager 本系统的名称 Reader 系统权限:普通读者 BookAdmin 系统权限:图书管理员 UserAdmin 系统权限:用户管理员 SuperAdmin 系统权限:超级管理员(系统管理员) Undergraduate 系统用户角色:本科生 Graduate 系统用户角色:研究生 Teacher 系统用户角色:教师 2 资料引用 清华大学《应用软件平台与核心技术》讲义 顾明 清华大学《应用软件平台与核心技术》助教文档 张伟业、魏岚、陈勇、林彩荣 《精通EJB(第二版)》 《J2EE应用与BEA Web Logic Server》,刑国庆等译,电子工业出版社 《设计模式——可复用面向对象软件的基础》,Erich Gamma等,机械工业出版社 3 设计思路 本系统严格按照4层结构设计,分为数据层(SQL server),数据链接层(entity bean),数据逻辑层(session bean),网络应用层(java bean, java servlet, java serverpage)。 四层之间完全独立,可以部署在四台服务器上运行,体现了分布式应用的思想。 数据层的功能严格来说是实现基本的数据存储(逻辑处理功能应该全部交给CMP管理),但因为学习原因,在数据库中也用到了一些逻辑处理,如使用了存储过程+系统级临时表处理读者续借图书的功能、使用触发器防止未还书的用户和未归还的图书被注销以及使用视图检测借书记录实现到期催还功能。 数据链接层实现了和数据库的连接,作用在于屏蔽数据库和平台之间的差异,做到底层无关性。本层利用了模糊查找、多表映射、Relationship等技术,通过find,select方法数据的查找功能,抛出聚集对象或远程接口对象给下一层。 数据逻辑层实现了对数据的逻辑处理,例如将远程接口对象转化为值对象、将聚集对象转化为值对象向量、利用日期类完成查找两个特定日期之间的记录等相对复杂的计算。 网络应用层完成页面跳转和页面显示等应用功能,还有一些附加功能如:图片验证,登录验证,等级控制,代码过滤,分页控制,输入值检测、借书日志打印、系统运行日志记录以及系统设置等。(使用了JDBC实现存储过程和模糊查找图书的功能) 数据层设计 数据库表 表名 功能描述 user_consumer 记录了用户的所有信息 user_book 记录了图书的所有信息 user_logBook 记录了用户使用本系统的信息,保留了所有的借书记录,可作为系统日志和报表资料 user_book表的触发器 用到的触发器之一,作用:如果要注销的图书被外借没有归还,则回滚此删除操作。 CREATE TRIGGER bookhavelog ON FOR DELETE AS declare @bookISBN varchar(50) select @bookISBN=book_ISBN from deleted if exists(select * from user_logBook where logb_book_ISBN=@bookISBN and logb_backdate is null) begin rollback return end 用户续借图书的存储过程 利用存储过程实现用户续借图书的逻辑操作,根据用户的当前信息判断其是否有续借的权限,并把处理结果输出到临时表中去。 CREATE PROCEDURE user_renew_book @xxxparm int AS CREATE TABLE ##temp(statement varchar(50)) DECLARE @username varchar(50) SET @username=(select logb_cons_username from user_logBook where ID=@xxxparm) IF @username is null BEGIN INSERT INTO ##temp VALUES ('The ID is not EXIST') RETURN END DECLARE @timelimit int SET @timelimit=(select logb_timelimit from user_logBook where ID=@xxxparm) DECLARE @renewday int SET @renewday=(select cons_maxday from user_consumer where cons_username=@username) DECLARE @maxrenew int SET @maxrenew=(select cons_maxrenew from user_consumer where cons_username=@username) IF (@renewday*@maxrenew)>=@timelimit BEGIN update user_logBook set logb_timelimit=logb_timelimit+@renewday where ID=@xxxparm --update user_consumer set cons_maxrenews=cons_maxrenews-1 where cons_username=@username INSERT INTO ##temp VALUES ('renew successful') RETURN END ELSE BEGIN INSERT INTO ##temp VALUES ('You are not allowed to renew the book') RETURN END GO 到期催还表的视图 利用DATEDIFF,DATEADD,CAST,GETDATE等函数从借书记录表中计算出到期的记录,然后根据此记录找出相应的读者信息,在网页上以email形式催还。 CREATE VIEW AS SELECT TOP 100 PERCENT , , DATEADD([day], , CAST( AS datetime)) AS deadline_date, GETDATE() AS now_date, , , , , , , , , , , , FROM INNER JOIN ON = INNER JOIN ON = WHERE (DATEDIFF([day], DATEADD([day], , CAST( AS datetime)), GETDATE()) >= 0) AND ( IS NULL) ORDER BY DESC 数据链接层设计 entity bean UserBook Entity Bean设计 userbook remotehome接口 方法 描述 findAllBook 得到所有的图书信息 findByISBN 通过图书的书号得到图书的信息 findSearcher 利用关键字模糊查找图书信息 selectUserByBookISBN (userbook remote) 利用select方法实现多表相关的查找 findSearcher实现模糊查找的代码: select object(p) from UserBook as p where like concat(concat('%',?1),'%') or like ?1 or like ?1 or like ?1 or like ?1 or like concat(concat('%',?1),'%') or like ?1 UserConsumer Entity Bean设计 UserConsumer remotehome接口 方法 描述 findAllUser 查找所有的用户信息 findByUsername 通过用户名查找用户信息 findSearcher 利用关键字模糊查找用户信息 selectBookByUsername (userconsumer remote) 利用select方法实现多表相关的查找 findSearcher实现模糊查找的代码: select object(p) from UserConsumer as p where like concat(concat('%',?1),'%') or like ?1 or like concat(concat('%',?1),'%') or like ?1 or like ?1 UserLogBook Entity Bean设计 UserLogBook remotehome接口 方法 描述 findallbybookISBN 查找此书所有的借阅记录 findbybookISBN 查找此书当前的借出记录 findallbyusername 查找此用户所有的借阅记录 findbyusername 查找此用户当前的借出书记录 findbacklog 得到所有已经归还图书的借书记录 findoutlog 得到所有尚未归还图书的借书记录 findbyID 通过记录流水号查找借书记录 findlogbyday 查找某一日期的借书记录 (模糊匹配,例如提交“2004-5”可得到最终记录时间——借阅或归还在2004年5月份的所有借书记录) findallog 得到所有的借书记录 FindLogByDay通过模糊匹配得到一组最终记录时间的代码: select object(p) from UserLogBook as p where ( is null and like concat(concat('%',?1),'%') ) or ( is not null and like concat(concat('%',?1),'%') ) 数据逻辑层设计 session bean TheBook Session Bean设计 TheBook bean 实现图书的增删改查以及模糊搜索、通过书查读者等功能 方法内部实现所有的逻辑处理和转化,返回到远程接口值对象或值对象向量 TheUser Session Bean设计 TheUser bean 实现用户(读者)的增删改查以及模糊搜索、通过读者查书等功能 方法内部实现所有的逻辑处理和转化,返回到远程接口值对象或值对象向量 TheLog Session Bean设计 TheLog bean 主要实现对日志(借书记录)的各项操作,提供多种获得日志的方法(按读者、按图书、按日期、按借还状态等),方法内部实现所有的逻辑处理和转化,返回到远程接口值对象或值对象向量,另外还有如下方法: 方法 功能 public boolean userBorrowBook(String username, String bookISBN) 以一个事务封装读者借书的所有逻辑操作,借书成功返回真值,无法借书返回假值,调用enCode bean对中文进行转码 public boolean userReturnBook(String logbid) 以一个事务封装读者还书的所有逻辑操作,即实现使一笔借书记录销账的功能,调用enCode bean对中文进行转码 public Vector showLogBetweenDays(String dayBegin, String dayEnd) 返回两个日期之间的所有日志,主要利用Calendar类实现 网络应用层设计 本层本着面向对象思想的封装性、数据模糊性、可重用性等原则设计。 本着系统运行错误在系统中打印()、用户输入和误操作错误导向友好的错误处理页并给出友好的提示的错误处理原则。 每次对会话bean的调用写入系统运行日志文件,默认路径是C:\\。 CheckValue bean 封装多个静态方法。 可以用于检测某表中某个字段是否已经存在某个值(可用于检测重名用户、重号图书)、检测用户名合法性、检测密码合法性、检测年龄合法性、检测电子邮件合法性、检测数字合法性、检测日期合法性等。 EnCode bean 封装编码转码工作: html显示转码,例如:将<转为<,将>转为&rt;,将数据库中的换行转为html中的换行等等,这样可以屏蔽用户提交文本中的可执行代码。 可重载的中文转码。 密码的加密和解密编码。 JDBCBean bean 封装所有的数据库操作。包括一个带结果集返回的SQL执行方法和一个不带结果集返回的SQL执行方法。 Rank bean 封装4种权限(普通读者、用户管理员、图书管理员、系统管理员)的页面访问,相当于页面加锁功能。 SetUp bean public static String title="SuperLibrary";//系统名称 public static String dbS="booksManagerDS";//数据库的JNDI名 public static String errorPage="";//友好的错误处理页,用get方法传递出错原因 public static String homePage="";//默认首页 //权限------------------------------------------------------------------------- public static String Reader="Reader";//读者 public static String UserAdmin="UserAdmin";//用户管理员 public static String BookAdmin="BookAdmin";//图书管理员 public static String SuperAdmin="SuperAdmin";//系统管理员 //等级------------------------------------------------------------------------- public static String Undergraduate="Undergraduate";//本科生 public static int UndergraduateRenew=1;//本科生可续借的次数 public static int UndergraduateMaxday=30;//本科生一次可借的天数 public static String Graduate="Graduate";//研究生 public static int GraduateRenew=2;//研究生可续借的次数 public static int GraduateMaxday=45;//研究生一次可借的天数 public static String Teacher="Teacher";//教师 public static int TeacherRenew=3;//教师可续借的次数 public static int TeacherMaxday=60;//教师一次可借的天数 //---------------------------------------------------------------------------- public static int rsPerPage=5;//每页显示记录的数量 public static int minBooks=4;//系统默认的最小借书数 SplitPage bean 将数据记录分页的逻辑实现和页面显示(最简,可在外部由样式表美化)封装在一个bean中,重用时实际只需要传递一个记录集数量的为参数即可,可重用。一般作为session级java bean在页面中被调用,在会话中保存用户对此页面的访问状态,在会话结束之前始终记忆用户访问此页对应的页码。 UserLogin bean 将用户登录的逻辑实现和页面显示(最简,可在外部由样式表美化)封装在一个bean中,包括对用户各种登录情况的处理,可重用。 SearchBook bean 利用JDBC实现模糊查找和按指定类别精确查找图书的功能。 SearchDeadline bean 利用JDBC调用视图实现到期图书的催还功能。 ValidateIMG servlet 动态生成含有随机验证码的图片,在生成图片的同时将验证码写入session中,与用户的登录输入比较。可有效的防止机器人登录。 GetDelete servlet servlet 处理图书、用户、日志的注销操作,根据返回值进行相应页面的跳转。 GetBookSubmit servlet 处理图书的入库和图书信息的修改,根据返回值进行相应页面的跳转。 GetUserSubmit servlet 处理用户的注册和用户信息的修改,根据返回值进行相应页面的跳转。 GetRenewBook servlet 处理用户续借图书的请求(JDBC调用存储过程实现),从系统临时表中读取状态值,根据状态值进行相应页面的跳转。 GetBorrowBook servlet 处理用户的借书请求,将用户借书限额已满、库存为零等错误导向友好的错误页,如果借书成功则跳转到图书信息页面,并给与相应的提示。 GetReturnBook servlet 处理用户的还书请求,如果还书成功则跳转到用户的借书记录页面,并给与相应的提示。 4 程序架构 程序组织结构 说明:图书搜索和用户登录看作系统外部功能,通过JDBC直接调用数据库,其中用户登录模块封装在一个java bean中,可重用。另外,用户续借图书是通过存储过程实现,从而绕过了使用CMP技术管理事务的实体bean。 本系统其余程序的组织结构严格按照下图实现: 程序组织结构图 功能权限划分 站点页面地图 权限名称 系统定义字符 权限 可访问页面 普通读者 Reader 查看自己的信息(还书、续借); 修改自己的信息; 查看图书(借书); userModify userView booklist 图书管理员 BookAdmin 拥有普通读者的权限; 图书的增删改查; 到期催还; userModify userView booklist bookAdder bookModify deadline 用户管理员 UserAdmin 拥有普通读者的权限; 用户的增删改查; userModify userView booklist userRegister userModify userList 系统管理员 SuperAdmin 拥有图书管理员和用户管理员的权限; 查看系统日志; 删除系统日志; 系统设置; 包括(系统设置,利用application级java bean控制整个应用程序)在内的所有页面 WEB程序/页面设计 利用代码关闭客户端的输入法,实现用户名、密码不能出现中文的问题。 利用onfocus=() onmouseover=()代码使文本框自动吸附获得焦点,方便用户输入。 利用WMODE="transparent"参数使flash的背景透明,更好的融入网页。 在每页中,利用代码: 嵌入上下导航条,使网站导航明确,方便用户浏览。 在网页头部加入代码: 使客户端不缓存网页,保证了客户每次浏览该页都从服务器获得最新的版本,以求正确显示。 提供智能搜索(获得尽可能多的匹配)和精确搜索(获得尽可能精确的匹配)图书,服务器端编程都采用模糊查找的方式。 在客户端用javascript对表单提交进行第一次验码,通过后提交到服务器端,再进行第二次验码,验码包括:用户名是否重复、年龄是不是合适的数字,两次密码输入的是否一致、电子邮件是否合法、密码是否太短、用户名是否太短、用户名密码是否为空等等。 利用随机生成JPG图片验证码的方法,防止机器人登录。 在页面中使用session级java bean实现分页,在会话中保存用户对此页面的访问状态,在会话结束之前始终记忆用户访问此页对应的页码。 在页面中使用application级java bean实现安全的系统设置,当服务器启动后,即可对系统运行参数进行应用程序级的设置,只要服务器不关闭,此设置始终有效且作用于所有用户,如果设置不慎造成系统错误或想恢复系统默认设置,则只需重新启动服务器即可。 在对会话bean的调用包ejbClient中,创建系统运行日志,通过包中的writeF类写入web服务器的C:\\中,可做查询用。 本系统实现的功能 确定图书的基本信息,有书名、作者、出版日期、当前借阅状态等属性 系统的使用者包括读者、图书管理员、用户管理员、系统管理员四种 读者可以查询图书;图书管理员可以完成图书管理、借阅管理;读者管理员可以完成读者管理的功能;系统管理员可以使用系统的所有功能 图书管理:新书登记,图书查询,图书注销; 借阅管理:借书,还书,查询到期读者 读者管理:增加读者、删除读者、查询读者、读者类别管理(设置研究生,本科生,教师的可借册数,可借天数,可续借次数等) 系统管理:系统管理员使用,包括用户权限管理(增加用户,删除用户,密码修改等),系统借书日志,系统运行日志,系统设置等功能 页面输入有验码,密码存取有加密 图书到期催还 体现分层设计思想,使用MVC架构 实现了多个Beans,Bean之间实现了对应的关系 使用了EJB QL,事务控制等 使用了jsp->sessionBean->entityBean->数据库模式 数据库使用了触发器和存储过程等一些高级技术

相关百科

热门百科

首页
发表服务