1、河北农业大学 本科毕业论文(设计)题 目:基于Web的校园二手市场信息发布 系统的设计与实现(后台部分)摘要目前,在软件开发活动中,无论何种服务,应用系统的开发仍然是开发的主题,校园二手信息发布系统就是这样的应用系统。一个校园二手信息发布系统面向的用户很多,提供的功能也很多,如提供用户注册、用户管理、信息发布、留言等。本系统采用了Spring+Struts1+Hibernate框架进行开发。本文主要分析了该系统实现的相关技术原理,给出了校园二手信息发布系统实现的系统架构,并对架构及管理模块结构作了划分及设计。本系统采用了当前流行的B/S 结构,通过运用JSP、Java 、Spring、Stru
2、ts1、Hibernate和MySql数据库等软件的强大功能完成了该系统的设计。本系统完成了普通用户注册功能,用户需要设定自己的帐户和密码以及自己的基本信息;普通用户登录功能、管理员登录功能,用户只有输入正确的帐户密码才可以登录;普通用户修改个人的基本信息功能,用户修改的只是自己的基本信息;管理员修改用户的所有信息功能;管理员删除用户功能;用户发布、修改、删除二手信息功能;用户对二手信息留言功能等。关键词:Java,Struts2,Hibernate,Spring,Eclipse,JspAbstract At present, in the software development activ
3、ities, no matter what kind of service, the development and application of the system is still the development theme, the campus second-hand information release system is one such application system. A lot of the campus second-hand information release system for the user, provide the function a lot o
4、f, such as user registration, user management, information issue, such as message. The system uses the Spring+Struts1+Hibernate framework development.This paper mainly analyzes the related technical principles of the implementation of the system, the campus of second-hand information release system
5、architecture and implementation of the system, and made the division and design of the architecture and management module structure. This system uses the current popular B/S, the powerful function using JSP, Java, Spring, Struts1, Hibernate and MySql database software to complete the design of the s
6、ystem.The system completed the common user registration, the user needs to set the account and password themselves as well as their basic information; the ordinary user login, the administrator login, the user only to enter the correct password before you can login; ordinary users to modify personal
7、 basic information function; the administrator to modify all information users; the administrator to delete user function, modify, delete; the user releases the second-hand information function; on the second-hand information message function etc.Keywords: Java, Struts2 Hibernate, Eclipse, Jsp目录1概述4
8、1.1Struts1简介41.2Spring 简介41.3Hibernate简介41.4MySQL简介42系统开发和环境介绍52.1基本环境52.1.1安装TOMCAT52.1.2配置TOMCAT52.1.3安装、配置Eclipse63系统分析83.1开发背景83.2系统功能需求分析83.3需要实现的功能及功能模块83.3.1 用户注册83.3.2用户登录83.3.3修改用户信息93.3.4发布二手信息功能93.3.5修改、删除发布信息93.3.6物品留言、删除留言93.3.7搜索二手信息93.4系统流程分析93.4.1系统的功能图93.4.2系统的用例图113.4.3系统的流程图114设计与
9、实现124.1模块功能界面124.1.1 主页124.1.2 登陆124.1.3 查看二手信息134.1.4 搜索二手信息144.1.5 发布二手信息154.1.6 管理二手信息154.1.7 发布留言174.1.8 留言管理174.2 部分功能界面代码184.2.1 发布二手信息184.2.2 发布留言19总结21参考文献22致谢231概述1.1 Struts1简介Struts1是Apache Software Foundation(阿帕奇软件基金会)的一个开源项目1。它是一个基于标准技术(比如Servlet,JavaBean,ResourceBundle,XML还有Apache Commo
10、ns组件)的灵活的控制层。Struts11框架可以帮助你的应用程序创建基于发布标准和成熟设计模式的可扩展开发环境。Struts1提供了它自己的Web控制(Controller)组件,并且整合了其它技术来提供模型(Model)和视图(View)。对于模型来说,Struts1可以和标准的数据访问技术(比如JDBC和EJB)和第三方开发包(比如Hibernate,iBatis或其它对象关系框架)来交互。对于视图,Struts1和JSP(Java Server Pages)技术良好协作,也包含JSTL,JSF,Velocity Template,XSLT和其它视图展现系统2。Struts1控制器担当了
11、沟通应用程序模型和Web视图之间的桥梁。当收到请求时,控制器可以调用Action类3。Action类和模型(或者最好是一个代表模型的门面)来咨询沟通来检查或更新应用程序的状态1。1.2 Spring 简介Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架2。在这篇由三部分组成的 Spring 系列 的第 1 部分中,我将介绍 Spring 框架。我先从框架底层模型的角度描述该框架的功能,然后将讨论两个最有趣的模块:Spring 面向方面编程(AOP)和控制反转
12、(IOC) 容器。接着将使用几个示例演示 IOC 容器在典型应用程序用例场景中的应用情况3。这些示例还将成为本系列后面部分进行的展开式讨论的基础,在本文的后面部分,将介绍 Spring 框架通过 Spring AOP 实现 AOP 构造的方式4。 1.3 Hibernate简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibern
13、ate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任5。1.4 MySQL简介MySQL是一个真正的多用户、多线程SQL数据可服务器。SQL是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构实现的,是有一个服务器守护程序MySQL和很多不同的客户程序和库组成的6。 SQL是一种标准化语言,它使得存储、更新和存取信息更容易。如果您想用SQL语言为一个网站检索产品信息及存储顾客信息,那么,MySQL能够以足够快的速度和灵活来允许您存储纪录文件和图像。 尽管MySQL还在不断的开发中,但它已经提供了一个丰富的和极其有用的功能集7。2系统开发和环境介绍2.1基
14、本环境以Java语言为基本开发语言,通过运用集成开发环境Eclipse,Hibernate,Spring,Struts1,Tomcat服务器等相关知识,利用java语言的面向对象的特性及MVC设计思想,设计一个校园二手信息发布系统。2.1.1安装TOMCAT由于使用的操作系统是Windows 7,需要安装 TOMCAT6.0。在安装TOMCAT之前,首先要安装JDK。2.1.2配置TOMCAT1将mysqldriver.jar,tools.jar,serlet-api.jar,复制到%tomcat_home%commonlib下环境变量设置:(1). JAVA_HOME jdk的路径:C:Pr
15、ogram FilesJavajdk1.5.0_06(2).mysql_home mysql的路径:D:Program Filesmysql(3). CATALINA_HOME tomcat的路径:D:Program Filesapache-tomcat-6.0.18(4).将;%java_home%bin;%mysql_home%bin;%tomcat_home%bin加入到PATH中;(5). .;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;%CATALINA_HOME%commonlibservlet-api.jar加入到CLASSPATH中
16、图2.1 设置环境变量图2-2.测试TOMCAT的安装2.1.3安装、配置Eclipse解压下载的eclipse,完成eclipse的安装。安装Eclipse后,运行Eclipse,在工具栏Window-Preferences-Java-InstalledJREs下选择自己安装的JDK路径,如下图2-3图2-3 .配置JDK在工具栏Window-Preferences-Server-runtime environment下选择自己安装的Tomcat路径,如下图2-4图2-4 .配置TOMCAT3系统分析3.1开发背景Java程序设计语言在Internet舞台名声大噪,其原因在于它有望成为连接用
17、户与信息的万能胶,而不论该信息来处Web服务器、数据库、信息提供商,还是任何其他的信息源。事实上,就发展前景而言,Java的地位是独一无二的。它是一种完全可信赖的程序设计语言,获得了除微软之外的所有主要厂商的认可。其固有的可靠性与安全性不仅令Java程序员放心,也令使用Java程序的用户放心。Java内建了对网络编程,数据库连接、多线程等高级程序设计任务的支持。目前,在软件开发活动中,无论何种服务,应用系统的开发仍然是开发的主题,校园二手信息发布系统就是这样的应用系统。一个校园二手信息发布系统面向的用户很多,提供的功能也很多,如提供用户注册、用户管理、发布二手物品信息、搜索二手物品信息、留言、
18、购买等。本票务系统采用了Spring+Struts1+Hibernate框架进行开发。为了更熟悉地使用一些主流的开发技术,就是我选题的依据。3.2系统功能需求分析一个好的校园二手信息发布系统,不仅包括前台的美观同时后台的优化也很重要,本系统运用Spring+Struts1+Hibernate构架与MVC设计思想,普通用户可以完成用户注册、登录、注销、修改个人信息等功能,管理员具有对用户的信息进行修改、删除的功能。普通用户能够发布、修改、删除自己发布的二手信息,发布留言功能。管理员除了以上的功能外,还能够修改、删除其他人发布的二手信息,删除其他用户的留言的功能。3.3需要实现的功能及功能模块3.
19、3.1 用户注册用户登录是一个网络系统必需的功能之一,用户想要使用系统提供的功能,就必须先拥有一个帐户,因此要到系统中注册一个帐户,用户在注册时系统要求用户输入注册信息,包括用户名,密码,确认密码(用户编号自动增长)等,如果用户帐户已经存在或者用户输入的信息格式不正确系统将向用户显示相应错误的提示信息,并提示用户使用其他的用户帐户或者输入正确的信息,注册完以后,可以进行登录。3.3.2用户登录利用注册的帐户登录到系统,登录页面要求用户输入用户帐户和密码。在输入用户帐户和密码之后,系统将验证用户帐户和密码是否正确,如果验证成功,就使用户处于登录状态。否则,系统显示用户帐户或密码错误的提示信息。3
20、.3.3修改用户信息根据数据库中的管理员标示判断是普通用户还是管理员登录,无论是管理员还是普通用户都可以在登录后修改用户的个人信息。3.3.4发布二手信息功能当用户注册成功登录该网站之后可以发布自己的二手物品信息,发布的时候需要填写物品名称、新旧程度、售价等信息。3.3.5修改、删除发布信息用户能够对自己发布的信息进行修改、删除。普通用户只能修改、删除自己发布的信息,管理员能够修改、删除所有的物品信息。3.3.6物品留言、删除留言用户成功登录之后,可以对自己感兴趣的物品进行留言。管理员能够删除用户对物品的留言3.3.7搜索二手信息用户能够输入关键字,对自己想获得的二手信息进行搜索。3.4系统流
21、程分析本网站是为实现在线进行二手信息发布的一个网站,实现了网上信息发布平台、客户信息反馈方便了卖家与买家之间信息交流。页面包括用户登录页面,用户注册页面,用户修改信息页面,发布二手信息页面,二手信息查看页面,搜索页面等。3.4.1系统的功能图本系统的功能图如图所示:校园二手信息发布平台登录注册查看个人信息 更新个人信息查看二手信息发布留言用户登录成功管理员登录个人二手信息发布/修改/删除查看个人信息安全退出系统查看个人信息 更新个人信息查看二手信息发布留言所有二手信息发布/修改/删除查看个人信息删除留言安全退出系统图3-1 系统功能图3.4.2系统的用例图 图3-2 系统用例图3.4.3系统的
22、流程图开始注册YYYAdminUserY登录普通用户管理员安全退出身份判断图3-3 系统流程图4设计与实现4.1模块功能界面4.1.1 主页主页是用户进入该网站的的显示页面,本页面包括登陆、搜索、导航、简单二手信息列表等功能。图4-1-1-1主页4.1.2 登陆用户可以在主页的左侧登陆模块,输入用户名和密码后登陆本系统。如果用户名密码错误将会给出错误提示,然后跳转到主页。用户在没有登陆的情况下,只能查看系统中的二手信息,没有发布、删除等功能。登陆成功后,原登陆模块将会出现发布二手信息、修改资料、退出等功能。图4-1-2-1 登陆页面图4-1-2-2 登陆失败图4-1-2-3 登陆成功4.1.3
23、 查看二手信息 在首页上右半部分显示的二手信息的部分列表,总共分为电脑及配件、通讯器材、视听设备、书籍报刊、生活服务、房屋信息、交通工具、其他物品六个类别。点击每个类别上的more会进入对应的详细列表。点击某个二手信息,会转到二手信息的详细显示页面。图4-1-3-1 more按钮图4-1-2-2二手物品详细信息页面4.1.4 搜索二手信息用户在左侧的信息搜索功能模块可以搜索二手物品信息。搜索提供了按关键字、分类、地区、属性的搜素方式。用户输入关键字,设置对应的查询条件后点击查询,结果会在右侧显示。图4-1-4-1搜索功能图4-1-1-4 搜索结果页面4.1.5 发布二手信息用户点击左侧的添加二
24、手信息,可以添加二手信息。填写对应的信息后点击提交完成二手信息发布。图4-1-5-1 二手信息发布4.1.6 管理二手信息普通用户可以修改删除自己发布的二手信息,管理员可以修改和删除所有的二手信息。图4-1-6-1二手信息管理页面对于普通用户没有会员二手信息管理按钮,只有管理员才有这个按钮。用户点击修改将会进入信息的修改页面,修改完成后点击提交将会修改此二手信息。图4-1-6-2 二手信息修改的页面4.1.7 发布留言用户可以在对应物品的详细页面的最下面点击发布留言,这时候页面会如图4-1-7-1显示,我们填写好内容后点击提交完成留言。图4-1-7-1 发布留言4.1.8 留言管理管理员可以删
25、除用户对二手物品信息的留言。管理员点击物品留言后面的管理员删除留言即可删除对应的物品留言。在点击后会弹出一个确认框,最后确认是否删除此留言。图4-1-8-1 管理员删除留言图4-1-8-2 删除留言确认页面4.2 部分功能界面代码4.2.1 发布二手信息这个功能就是实现用户可以发布一个二手信息的功能,主要使用到的是前端的post.jsp、后端用到了PostMessageForm.java、PostMessageAction.java、MessageDAO.java、Message.java这几个java类。其中后端页面的PostMessageAction.java代码如下:package cn
26、.xiangyue.market.struts.action;import java.util.Date;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.act
27、ion.ActionMapping;import cn.xiangyue.market.dao.AreaDAO;import cn.xiangyue.market.dao.MessageDAO;import cn.xiangyue.market.dao.TypeDAO;import cn.xiangyue.market.model.Message;import cn.xiangyue.market.model.Type;import cn.xiangyue.market.model.User;import cn.xiangyue.market.struts.actionform.PostMes
28、sageForm;public class PostMessageAction extends Action public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws Exception MessageDAO mDao = new MessageDAO();TypeDAO tDao = new TypeDAO();AreaDAO aDao = new AreaDAO();PostMessage
29、Form postForm = (PostMessageForm)form;/System.out.println(postForm);User user = (User)request.getSession().getAttribute(user);Message message = null;if(postForm!=null)/System.out.println(新增!);message = postForm.getMessage();message.setCreate_time(new Date();message.setMArea(aDao.findById(postForm.ge
30、tAreaid();message.setMType(Type)tDao.findById(postForm.getTypeid();message.setTUser(user);String messageid = request.getParameter(messageid);/有警告:Parameters: Invalid chunk ignored./System.out.println(messageid:+messageid);if(messageid!=null&!.equals(messageid)message=mDao.findById(messageid);message
31、.setMessage_title(postForm.getMessage_title();message.setold_value(postForm.getOld_value().shortValue();message.setFlag(short)postForm.getFlag();message.setMessage_desc(postForm.getMessage_desc();message.setPrice(postForm.getPrice();message.setR_user(postForm.getR_user();message.setR_email(postForm.
32、getR_email();message.setR_phone(postForm.getR_phone();message.setMArea(aDao.findById(postForm.getAreaid();message.setMType(Type)tDao.findById(postForm.getTypeid();elsemDao.save(message);/request.setAttribute(message, message);return mapping.findForward(mymessage);4.2.2 发布留言用户能够给自己感兴趣的物品信息,发布留言这里主要使用
33、了messageDetail.jsp、AddCommentAction.java、CommentDAO.java、Comment.java。其中AddCommentAction.java的代码如下:package cn.xiangyue.market.struts.action;import java.util.Date;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import o
34、rg.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import cn.xiangyue.market.dao.CommentDAO;import cn.xiangyue.market.dao.MessageDAO;import cn.xiangyue.market.dao.UserDAO;import cn.xiangyue.market.model.Comment;import cn.xia
35、ngyue.market.model.Message;import cn.xiangyue.market.model.User;public class AddCommentAction extends Action public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws Exception String content = (String)request.getParameter(cont
36、ent);String messageid = (String)request.getParameter(messageid);CommentDAO cDao = new CommentDAO();MessageDAO mDao = new MessageDAO();Message message = mDao.findById(messageid);Comment comment = new Comment();comment.setTMessage(message);comment.setContent(content);comment.setCreate_time(new Date();
37、User user = (User)request.getSession().getAttribute(user);comment.setTUser(user);cDao.save(comment);/RequestDispatcher rd = request.getRequestDispatcher(message.do?messageid=+messageid);/rd.forward(request, response);request.setAttribute(messageid, messageid);return mapping.findForward( messageDetai
38、l );总结此次毕业设计是以Java语言为基本开发语言,通过运用集成开发环境Eclipse(版本7.0),Hibernate,Spring,Struts1等相关知识,利用java语言的面向对象的特性及MVC设计思想, 设计一个校园二手信息发布系统。我的毕业设计就是在不断的遇到问题解决问题的循环过程中完成的,就是在这样的过程中,我才不断的学习新的知识;我才更好的、灵活的运用这些技术,并且通过向老师,同学以及从事相关工作的人的交流,让我的思路,思维更加开阔,这让我也深刻体会到团队精神的重要情。总之,本次设计加强了我的独立学习和运用知识解决实际问题的能力,也是对我这几年以来在学校系统学习的基础理论课
39、程、专业知识及基本技能的一次全面的检验,并且达到了巩固、扩大、深化所学的专业技术的目的,使自身的研究、实践能力得到了一定的提高。参考文献1. 郭锋等 我的J2EE 成功之路 电子工业出版社,2009;2. 刘乃丽JavaEE项目案例-基于Eclipse Spring Struts Hibernate. 人民邮电出版社,2008;3. Allen Holub;If I were King: A proposal for fixing the Java programming languages threading problems,J2000,p101;4. Renaud Pawlak;JAC:
40、 A Flexible Solution for Aspect-Oriented Programming in Java;J; 外文会议; 2001年01月01日,p38;5.参考网址:6. 致谢在历时半年的毕业设计中,要感谢我的指导教师赵洋老师,从本次设计实现的基本功能到设计中遇到的问题,都离不开老师的教诲帮助和严格的要求,这样我才顺利达到了设计的要求。当然这与学校提供的优越的环境,完善的设备和同学之间日益加深的默契和团队精神分不开。正因为此我才顺利地完成了这次毕业设计,同时也从中获益匪浅。在此衷心地感谢所有关心本次毕业设计和实现的老师和同学,能够给我这次学习和交流的机会。同时向关心和支持我
41、学习的所有曾帮助过我的老师、同学和朋友们表示真挚的谢意!感谢他们对我的关心和支持!最后谨向我的论文评阅人、答辩委员会的各位老师表示最真诚、最衷心的感谢!目 录1 总 论11.1 项目概况11.2 建设单位概况31.3 项目提出的理由与过程31.4 可行性研究报告编制依据41.5 可行性研究报告编制原则41.6 可行性研究范围51.7 结论与建议62 项目建设背景和必要性92.1 项目区基本状况92.2 项目背景112.3 项目建设的必要性113 市场分析143.1 物流园区的发展概况143.2 市场供求现状163.3 目标市场定位173.4 市场竞争力分析174 项目选址和建设条件194.1
42、选址原则194.2 项目选址194.3 场址所在位置现状194.4 建设条件205 主要功能和建设规模225.1 主要功能225.2 建设规模及内容266 工程建设方案276.1 设计依据276.2 物流空间布局的要求276.3 空间布局原则286.4 总体布局296.5 工程建设方案306.6 给水工程336.7 排水工程356.8 电力工程386.9 供热工程466.10 电讯工程477 工艺技术和设备方案517.1 物流技术方案517.2 制冷工艺技术方案678 节能方案分析738.1 节能依据738.2 能耗指标分析738.3 主要耗能指标计算748.4 节能措施和节能效果分析769环
43、境影响评价839.1 设计依据839.2 环境影响评价应坚持的原则839.3项目位置环境现状849.4项目建设与运营对环境的影响849.5项目建设期环境保护措施849.6 项目运行期环境保护措施8610 安全与消防8710.1安全措施8710.2消防8811 组织机构和人力资源配置9211.1 施工组织机构9211.2 基建项目部的主要职责9211.3 运营管理9311.4 人员来源、要求及培训9412 工程进度安排9612.1 建设工期9612.2 工程实施进度安排9613 投资估算与资金筹措9813.1 投资估算98投资估算包括建设项目的全部工程,主要内容有:主体建筑工程、道路硬化工程、绿化工程、其他费用及基本预备费。9813.2 资金筹措9914 财务评价10214.1 评价依据及方法10214.2 基础数据与参数选取10214.3 营业收入及总成本费用估算10314.4 利润总额估算10514.5 盈亏平衡分析10514.6 财务评价10615 综合效益评价10716 招投标管理10816.1 编制依据10816.2 招标原则10816.3 招标方案10916.4 评标要点11017 结论及建议11117.1 结论11117.2 建议11227