版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、常州信息职业技术学院 毕业设计(论文)报告常州信息职业技术学院学生毕业设计(论文)报告全套设计加扣 3012250582系 别: 软件学院 专 业: 软件技术 班 级: 中软132 学 生 姓 名: XX 学 生 学 号: 论 文 题 目 :基于WEB的交友博客网站的设计与实现指 导 教 师: 设 计 地 点: 起 迄 日 期: 2015.06.232014.07.24 毕业设计(论文)任务书专业 软件技术 班级 中软132 姓名 XX 一、课题名称: 基于WEB的交友博客网站的设计与实现 二、主要技术指标(或基本要求): 1.开发环境:Eclipse, 数据库mysql。 2.技术要求:系统
2、为B/S架构,基于Struts2、Hibernate框架,JQuery技术的应用,运用于前后台之间的操作;配置数据库连接池进行对数据库进行访问、操作。 3、 工作内容和要求:. 1、设计需求分析,系统结构功能,设计需求的业务流程;系统设计,制定计划,数据库架构,详细设计。 2、文章模块:文章的增加,删除,修改,以及文章的转载。 3、好友信息管理:显示好友,增加好友,删除好友。 4、文章管理:发表文章,删除文章,修改文章等功能。 5、图片专辑管理:图片的显示,添加,删除。 四、主要参考文献:1 Hibernate、Struts2官方文档 2Java编程思想M.第5版.机械工业出版社 北京 201
3、0年5月 3Eclipse从入门到精通M. 北京:清华大学出版社2005年4月 4Java编程思想M. 第4版. 机械工业出版社 北京 2005年5月学 生(签名) 年 月 日指 导 教师(签名) 年 月 日教研室主任(签名) 年 月 日系 主 任(签名) 年 月 日毕业设计(论文)开题报告设计(论文)题目基于WEB的交友博客网站的设计与实现一、选题的背景和意义:随着信息技术的发展和计算机的普及,计算机越来越深入到我们的生活领域中。由于人们生活水平的提高,生活质量的增加,人们不满足面对面的交流。另外随着计算机网络的持续发展,无论是工作、学习还是生活的节奏将会不断加快,因此我们需要快捷的信息来源
4、。而21世纪,电脑已经普及了,但是实际利用率不高,如果建立一个基于网站的交友的交流平台,必将大大的提高人与人之间的交流,对人们的生活起到积极的作用,所以无论从目前的现状还是面向未来,一个完备的交流平台的开发是非常必要的。二、主要研究(设计)方法论述:首先,通过调查文献来获得资料,以及从互联网上查询系统中使用到的相关材料,从而全面地、正确地了解掌握所要研究和分析交友系统中可能用到的开发技术,结构框架以及使用方法,并完成课题前期调研工作。其次,对交友系统的可行性进行的分析,然后确定系统设计目标,并明确整个系统结构规划,并完成系统各个模块的设计与开发,但是系统的功能要切合实际情况。最后,对系统主要页
5、面、数据库、应用程序的设计与实现作详细讲解。三、工作内容和要求: . 1、设计需求分析,系统结构功能,设计需求的业务流程;系统设计,制定计划,数据库架构,详细设计。 2、文章模块:文章的增加,删除,修改,以及文章的转载。 3、好友信息管理:显示好友,增加好友,删除好友。 4、文章管理:发表文章,删除文章,修改文章等功能。 5、图片专辑管理:图片的显示,添加,删除。四、设计(论文)进度安排:时间(迄止日期)工 作 内 容2015.06.202015.06.24联系指导老师、确定选题2015.06.252015.06.26提交开题报告,任务书由指导老师进行审核并修改2015.06.282015.0
6、7.03收集资料,分析项目,书写项目需求说明书2015.07.032015.07.08搭建项目开发环境,根据项目需求完成相关页面设计2015.07.092015.07.25毕业设计论文、全部编码以及项目测试2015.07.262015.07.30毕业设计答辩5、 指导教师意见: 指导教师签名: 年 月 日六、系部意见:系主任签名: 年 月 日毕业设计(论文)成绩评定表一、指导教师评分表(总分为70分)序 号考 核 项 目满 分评 分1工作态度与纪律102调研论证103外文翻译54设计(论文)报告文字质量105技术水平与实际能力156基础理论、专业知识与成果价值157思想与方法创新5合计70指导
7、教师综合评语: 指导教师签名: 年 月 日 二、答辩小组评分表(总分为30分)序 号考 核 项 目满 分评 分1技术水平与实际能力52基础理论、专业知识与成果价值53设计思想与实验方法创新54设计(论文)报告内容的讲述55回答问题的正确性10合计30答辩小组评价意见(建议等第):答辩小组组长教师签名: 年 月 日1 审定意见2审定成绩(等第)_ 系主任签字: 年 月 日三、系答辩委员会审定表目 录摘要IAbstractII第一章 绪论11.1 选题背景11.2 提出问题11.3 开发目标1第二章 相关技术介绍32.1 Struts2技术32.2 Spring技术42.3 Hibernate技术
8、62.4 JQuery技术7第三章 需求分析83.1 需求说明83.2 业务流程8第四章 系统设计114.1 系统结构设计114.2 数据库的设计12第五章 技术实现与测试155.1 项目结构155.2 系统实现165.2.1 注册模块185.2.2 登录模块195.2.3 发表文章模块215.2.4 文章删除模块265.2.5 文章修改模块275.2.6 图片管理模块285.2.7 好友模块315.2.8 文件处理的核心代码345.3 系统测试365.3.1配置测试环境365.3.2测试总结37第六章 总结与展望386.1 总结386.2 展望38致谢40参考文献41 基于WEB的交友博客网
9、站的设计与实现摘要这些年博客在全球获得了突飞猛进的发展。博客(Blob)即web log,有网络日志的意思,也有人说是网络日记。博客使用者可以很方便地用文字、链接、影音、图片建立起个性化的网络世界。博客记载着日常发生的事情还有自己的兴趣爱好,可以把自己的知识和思想和他人交流、分享,越来越多的人正在使用博客,通过博客Blog结识了志同道合的朋友,更多的技术博客更是蕴含了巨大的信息价值。随着使用博客的人正在逐渐的增加,博客慢慢的成为一种新的生活的方式,成为一种新的工作方式,成为一种新的学习方式,博客正在被越来越多的人所接受。本项目是采用了MVC模式设计的,实现了一个简单的博客系统。MVC模式极大地
10、提高了系统的灵活性、复用性以及开发效率、适应性和可维护性,充分发挥了JSP、Servlet等J2EE组件的特点和功能。从而,让更多的人们可以通过文字、图片、声音、视频、无线网络等,尽情地展示自我、分享感受、参与交流,美好着你我地生活。关键词:个人博客、交友博客、blog、技术博客Based on the dating WEB blog website design and implementationAbstractBlog over the years won the development which progresses by leaps and bounds in the world.
11、 Blog (Blob) or web log, there is the meaning of web logs, some say the network diary. Blog users can easily use text, links, audio, images, to build a personalized web world. A Blog with daily events and their own interests and hobbies, can put their knowledge and ideas to communicate with others,
12、sharing, more and more people are using Blog, through Blog Blog made a like-minded friends, more technology Blog also contain a huge information value. With the increase of using blog is gradually, blog gradually become a new way of life, become a kind of new way of working, become a new kind of stu
13、dy way, blog is accepted by more and more people.This project is designed using the MVC pattern, implemented a simple blog system. The MVC pattern has greatly improved the system flexibility, reusability and development efficiency, adaptability and maintainability, give full play to the JSP, Servlet
14、, etc. The characteristics of the J2EE components and functions. Thus, let more people can through the text, pictures, sounds, video, wireless network, etc., fully display themselves, sharing feelings, participate in communication, good for you in our life.Keywords:Java, personal blog, blog, blogs,
15、technology blog第一章 绪论1.1 选题背景 博客这几年是很流行的,如CSDN博客,51CTO,QQ空间等,每个人都拥有一个独立的空间,人们可以在这里展示自己的个性,非常方便与他人进行互动交流,在这里每个人都是独立的。博客也让数据的传输变得更便利,每天都有大量的文档中在这里被发表,这里也渐渐成为了人们的技术平台。博客正在逐渐地形成一种新文化,有游戏博客,影视博客,等等各种博客,这些博客都是以一种交友,谈论的形式,让人与人之间的关系更加密切,博客传播着人们的情绪,传播这人们的智慧,传播着人们的经验。随着博客的出现,网络的价值才变得更加突出,也标志这互联网发展进入了一个新时期。博客秉
16、承这自由的精神,也激发了互联网的活力,让互联网更具有建设性及开放性。1.2 提出问题互联网的高速发展是博客产生的条件,博客是互联网发展的产物。正是因为博客促进了人与人间的交流,促进了技术的发展,所以很有必要设计一个博客系统去验证自己的技术与能力,在这里不同的人都可以在自己的空间里,记录生活的点点滴滴,分享生活中的经验,在这里志同道合的人相聚了,知识在这里分享,知识在这里传播,人们的生活必定会变得更加丰富多彩。完成一个完整的博客系统同样是对我们技术的一个重大的考验。1.3 开发目标利用这一个月的时间,利用这几个月学习的java se及java ee的技术,使用Struts2、Spring、Hib
17、ernate三大开源框架技术开发一个小型博客的开发。博客需要简单实用,界面优良。用户通过注册之后,可以通过账号和密码登录自己的独立空间,就可以发表文章,显示图片,上传图片,删除图片,添加好友,删除好友,给好友发送消息等功能,用户也可以访问别人的文章,当点击别的用户之后,就可以查看对方信息,添加对方为好友,或者是给对方留言。41第二章 相关技术介绍2.1 Struts2技术1. Struts2的定义Struts2是一个轻量级的MVC框架,解决的是一个请求分发,重心在控制层和表现层,轻量级;简单讲Struts2相当于一个大的Servlet,实现了页面的跳转操作。2. Struts2的原理Strut
18、s2框架的运行流程非常相似于WebWork框架的流程,Struts2其实就是WebWork2.2的升级版,因此,Struts2的运行流程与WebWork运行流程完全相同,如下图所示为WebWork的运行流程:图2-1 WebWork的运行流程总的来讲Struts2的运行原理有如下几个步骤:第一步:把Struts2的配置所需要用到的jar包加入的项目中;第二步:将拦截器相关的配置在web.xml文件中加入进去;第三步:在项目src的目录下新建一个空struts.xml配置文件;第四部:新建一个java文件编写的action类;第五步:相关数据配置在struts.xml文件中;第六步:编写具体的j
19、sp文件;第七步:部署tomcat,启动tomcat,通过浏览器访问。2.2 Spring技术1. 为什么要使用SpringSpring是一种轻量级框架,轻量级是指该框架是非入侵式的,用Spring开发的系统不需要依赖Spring中类,它不需要容器支持。2. Spring技术a) Ioc:控制反转b) AOP:面向切面编程c) Spring模块图:图2-2 Spring模块图3. Spring开发环境的搭建a) 添加Spring的jar包:spring-core.jar,spring-beans.jar,spring-aop.jar,spring-context.jar,spring-expr
20、ession.jar,commos-logging.jarb) 编写一个类c) 配置这个类i. 新建beans.xml,添加头文件信息ii. 添加bean节点Configuration Metadata、Yours Business Objects(POJOS)、The Spring Container图2-3 Spring注入POJOs2.3 Hibernate技术1. Hibernate的定义Hibernate是三大框架中用来操作数据库的框架,可以把数据库中的表,转换成java实体类,然后通过hibernate.cfg.xml主配置文件实现了实体类与数据库表之间的相关映射关系。这样的好处在
21、于间接访问数据库,大大简化数据访问层的代码开发。2. Hibernate的工作原理将类对应的配置文件和Hibernate的配置文件配置好了后,启动tomcat服务器,服务器将实例化Configeration对象,读取到hibernate.cfg.xml主配置文件中的相关配置信息,根据相关的配置中的数据建好映射关系,通过实例化的Configeration对象建立sessionFactory实例,再通过sessionFactory实例就可以创建session对象,在session获得了以后,对数据库数据的增删改查操作就很容易操作了。3. Hibernate的使用步骤(1)导如jar包;(2)引入主
22、要的配置文件hibernate.cfg.xml;(3)创建Model的实体类;(4)创建映射关系文件.hbm.xml;(5)调用相应API实现增删改查。2.4 JQuery技术1. 如何定义JQuery JQuery是当前非常流行JavaScript库之一,实质是由js编写的一个框架。他是轻量级的js库,并且JQuery兼容大多数的浏览器(IE 6.0以上,FF 1.5以上,Safari 2.0以上, Opera 9.0以上),但是包括JQuery2.0在内以及JQuery后续的所有的版本将不再支持IE6s和IE7以及IE8浏览器。2.JQuery的优势JQuery的优势有以下几点:(1) 轻
23、量级:所谓的轻量级就是JQuery是非常轻巧的,压缩后将变得很小。(2) 选择器:JQuery拥有独创的选择器,使用起来极其方便。(3) DOM操作的封装:JQuery封装的DOM操作,让开发者编写的程序变得更快捷。(4) 事件处理机制:JQuery设计了有许多事件处理的函数,使得在处理事件上是非常可靠的。(5) 完善了Ajax:Ajax所有的操作都被JQuery封装到函数中,让开发者开发时不用考虑浏览器的兼容问题等等。第三章 需求分析本章主要对博客系统的需求说明进行了详细的描述,对业务流程,系统的结构框架以及各个模块的功能进行了详细的分析,对非功能需求的一个说明。3.1 需求说明博客系统主要
24、内容包括:博客用户的登录以及注册;文章管理:注册用户的的文章展示,文章修改,文章删除,转载用户的文章等;用户个人信息管理:修改个性签名,修改邮箱,忘记密码时可修改密码;好友的管理:添加好友,删除好友,给别的用户留言,管理消息,删除消息;图片管理:图片显示,上传图片,图片删除等功能。评论管理:显示文章评论列表,博主可删除文章的评论,游客和一般的用户都有权限添加评论。3.2 业务流程用户注册成为用户之后,用户就可以登录博客系统,然后用户可以发表文章,然后可以对这篇文章增删改查,可以查看别人给文章的评论,也可以给别人的文章评论,上传图片,图片的删除,当用户点击别的用户后还可以,给别的用户留言打招呼,
25、也可以添加对方为好友。添加为好友后在你的好友列表里就可以看到对方了,可以给该用户发消息,也可以删除该用户。下面是博客系统的功能展示:图3-1 博客功能展示一般的访客具有这样的权限:访客权限阅读博文访问博客空间给用户留言图3-2 一般访客权限如果没有在本博客系统注册只能查看别人写的文章,而不能自己写文章,但是也可以使用匿名身份给用户留言,这样可以让不想注册的人也可以拥有一定的权限,更符合人们所想,因为很多时候我们访问一个网站的时候并不希望注册,就可以给别人留言的。这样做就可以将范围缩小。首页向注册的用户提供了登陆的模块,注册用户在博客网站首页跟上网网友一样可以查看博客和博文推荐。上网网友可以注册
26、用户,然后成为博客用户,就可以拥有自己独立的空间。注册用户有这样的权限:注册用户发布博文添加好友上传图片发送消息个人空间访客权限图3-3 注册用户权限在博客主界面中用户发表博文时可以选择博文类型,这样就可以更好管理自己的博文了。然后查看、删除网友对自己的博文的一些见解、评论、查看以及删除网友留下的一些留言,提供了与其他网友交流的空间。更好的交流,在这个信息的时代里,人们就通过个人空间沟通也用来但不能在自己的博客主页面中提交评论和留言。这样在本系统中就可以为博友提供了非常多的个人色彩。在管理页面中可以添加和删除友情连接。这样博友可以在自己空间中快速的定位让自己的关心的网站。这样还可以让网友看到与
27、自己有关的一些信息。友情链接和网页访问量统计可以显示:在博客的个人页面中我们还提供了推荐给普通网络用户的相关友情链接,此外,对个人页面的访问量也在时时刻刻进行着统计,并可以在个人页面中很容易就能看到。第四章 系统设计 4.1 系统结构设计在项目的开发之前,一定要有一个明确的构思,这样才可以设计出最优的方案,还要考虑选择使用不同系统之间的不同兼容,及不同的运行环境.当前比较流行的网页技术是jsp和php,相比较而言,php功能要简单些,不适合做大型程序。由于j2ee的开源框架中提供了mvc框架struts,对象关系模型hibernate,依赖注入的spring,所以开发系统就要简单多了。本blo
28、g系统采用了jsp技术作为开发技术,b/s架构,使用的mvc的分层结构给项目布局,为了不让自己去处理数据库的创建,以及事务的管理,本系统使用hibernate技术,管理数据库操作,同时,对于多数层对象的创建,使用了spring注入技术。使用稳定的SSH框架技术,从简单性、可测试性和松耦合的角度而言,能够构建一个健壮、高效、易于扩展和可维护的业务应用系统。图4-1 基于SSH框架的系统分层架构图本系统使用如下配置:1).服务器端操作系统:win 8.1操作系统2).Web服务器:Tomcat 7.0;3). 客户端: google浏览器4).开发工具: eclipse编译器, notepad+编
29、辑器本系统技术方案:伴随着Internet的迅速发展,计算机技术正在由基于C/S(client/ Server)模式的应用系统转变为基于B/S模式的应用系统。过去,网络软件的开发都采用C/S(client)模式,导致了系统安装、调试、维护和升级困难,而B/S模式就可以避免这些问题,所以系统使用了B/S模式。本网站以win 8.1为Web平台,JSP + Ajax +Struts2 + Spring + Hibernate为网站实现技术,建立基于MySQL数据库系统的动态网页,实现博客的前台和博客的个人数据管理等功能性模块。系统设计关注的一些问题:系统处理问题有准确性、及时性,系统处理的准确和即
30、使是系统的必要性能。系统的开发要考虑可扩充性:在系统开发的过程中要充分的考虑以后系统的可扩充能力,尽可能的让后期的维护工作变得轻松。也可以让系统今后的升级提供了方便。系统易用性以及易维护性:让系统应该尽量使用用户都熟悉的术语和中文界面;针对用户可能出现的问题,要提供足够的帮助,让用户更快的熟悉系统。4.2 数据库的设计本系统的数据库是MySQL 数据库,版本号是5.5.36-win32。总体的结构如下:图4-2 所有表之间的联系以下是每个表的结构:表4-1 用户表 UserId:主键,自增字段Email:保存emailPassword保存密码Username:保存用户名表4-2 文章表 Art
31、icleId: 主键,自增字段Caption:保存标题Content:保存内容Time:保存时间User:外键,关联用户,写这篇文章的人表4-3 好友表 FriendId: 主键,自增字段Me:外键,保存着我自己Other:外键,保存着好友表4-4 用户表 UserId: 主键,自增字段Content:消息内容Time:消息的时间Receiver:外键,接受人Sender:外键,发送人第五章 技术实现与测试 5.1 项目结构图5-1 项目总结构本项目的名字是blog,前台目录是WebContent,index.jsp是首页面,src是后台根目录,struts.xml,applicationCo
32、ntext.xml,perties,perties这几个文件分别是struts2、spring、hibernate、数据库、调试日志的配置文件。后台结构是这样的:图5-2 后台代码结构整体结构还是很清晰的,base包里是封装的基本功能,mx.blog包下是项目的主要结构,有action、dao、entity、service以及测试的test包。 5.2 系统实现当第一次来到博客Blog时,看到的是这样的样子:图5-3 博客首页可以看用户写的文章,但是没有写文章的权限这时候你需要注册一个用户:图5-4 注册注册成功之后你就可以点击右上角的管理进入后台发表文章了。
33、图5-5 注册成功这个是文章列表:图5-6 文章列表点击写一篇文章,就发表文章了,在这里你可以写入文字,上传一张图片,也可以截一张图,直接ctrl+v截到编辑器里面,然后提交就可以发表一篇文章了。5.2.1 注册模块在action包中实现UserAction,该action名字是userAction,实现register方法:/注册一个用户public void register()Json json = new Json(userService.register(user);writeJson(json);在service包中实现UserService,该service名字是userServ
34、ice,实现register方法:/注册一个用户Overridepublic String register(User user) ObjAttr.Object_ToString(user, user);user = (User)userDao.saveOrUpdate(user);if( user != null)setSession(u,user);return success;return error;在前台页面使用ajax操作:/使用ajax完成用户的注册function register()$.ajax(type:post,url:userAction!register,data:
35、$(#registerform).serialize(),/表单的序列化dataType:json,success:function(data,msg)if(data.msg = success)window.location = index.jsp;/注册成功就重定向,beforeSend:function();页面发起userAction!register请求,并把把form表单序列化的值传到后台,后台执行hql语句把数据插入到数据库然后就注册成功了,就可以插入一条记录到数据库,同时还会设置一个session,于是一个用户产生了,页面又重定向到index.jsp首页,这样你就可以使用本博客
36、系统了。5.2.2 登录模块用户登录的时候操作先登录,然后再回到index.jsp:图5-7 登录技术实现的细节:在UserAction中实现login方法:/用户的登录public void login()Json json = new Json(userService.login(user);writeJson(json);在UserService中实现login方法:/用户的登录Overridepublic String login(User user) ObjAttr.Object_ToString(user, 从页面传入的user);String hql = from User wh
37、ere username=+user.getUsername()+;List users = userDao.queryFind(hql);if(users.size() 0)user = (User)users.get(0);if(user.getPassword().equals(user.getPassword()ObjAttr.Object_ToString(user, 从数据库加载后的user);setSession(u,user);return success; elsereturn password_error;elsereturn username_error;在页面中: /使
38、用ajax完成了用户的登录function login()$.ajax(type:post,url:userAction!login,data: $(#loginform).serialize(),dataType:json,success:function(data,msg)if(data.msg = success)window.location = index.jsp;);页面使用一个ajax操作,把form表单的数据序列化,然后发起userAction请求,把序列化数据发送到服务端,执行userAction中的login方法,然后后台执行一个hql语句查询要登录的用户,如果这个用户存在
39、的话,就设置一个session,OK,你就登陆成功了。否则就弹出登录失败!5.2.3 发表文章模块图5-8 发表文章当点击提交的时候,就是这样:图5-9 后台的文章列表然后点击“我的博客”,进入博客首页,就可以看到发表的文章了:图5-10 首页显示文章技术实现细节:编写ArticleAction,名字是articleAction,使用Spring通过名字注入,在ArticleAction中实现save方法,在articleService中实现save具体操作:/文章的保存public void save()article.setCaption(caption);Json json = new
40、Json(articleService.save(article);writeJson(json);在articleService中:/保存一篇文章public String save(Article article)article.setUser(User)getSession(u);article.setTime(new Date(System.currentTimeMillis();if(articleDao.saveOrUpdate(article) != null)return success;return error;Save方法从页面中获取值,然后从session中获取当前的用户
41、,设置article对象,使用hibernate方法保存article对象,然后就成功添加了一篇文章。在添加文章的过程需要处理两个问题:图片是如何插入的?我还使用了截图放入编辑器的功能,类似于qq的ctrl+alt+a的截图完成之后,ctrl+v就可以取到图片,这是怎么做的?图片插入实现的过程(我解决的过程):有文字有图片开始我实在不知道怎么处理,但是在我询问了qq群的网友之后,有人给我提了个注意,一张图片一个链接,就这么一句话,我就想到了怎么处理我的这个问题:在点击图片上传的按钮,当选择了图片,点击了确定之后,就会有一个change事件,这个事件触发了就马上执行一次ajax事件:把这个图片发
42、送到服务端,然后服务端返回一个链接地址(服务器的上该图片的地址),img标签的src有一个特点,只要有了有效地址,图片会立马加载,因此,这个问题就基本有了解决方法,然后就是实现了了。/上传文件至path目录public void upload(String path)System.out.println(nnnupload:测试的路径是: +path);File directory = new File(path);if(!directory.exists()/判断是否存在upload文件夹directory.mkdirs();/文件名过长,就重命名if(fileFileName.length
43、()64)String arr = fileFileName.split(.);fileFileName = this.getRandom(32) + . + arrarr.length-1;File distFile = null;/目标文件FileInputStream filein = null;FileOutputStream fileout = null;try distFile = new File(directory,fileFileName);/判断文件是否存在if(!distFile.exists()/如果不存在,就生成一个新文件String arr = fileFileNa
44、me.split(.);fileFileName = this.getRandom(32) + . + arrarr.length-1;distFile = new File(directory,fileFileName);distFile.createNewFile();filein = new FileInputStream(file);fileout = new FileOutputStream(distFile);byte b = new byte1024;int len = 0;while(len = filein.read(b, 0, b.length)!=-1)fileout.w
45、rite(b, 0, len);System.out.println(文件上传成功!);status = upload-success;elseSystem.out.println(文件已存在!);status = upload-exist; catch (Exception e) status = upload-error;e.printStackTrace();finallytry if(filein!=null)filein.close();if(fileout!=null)fileout.close(); catch (IOException e) e.printStackTrace(
46、);从请求中获取File,然后获取FileInputStream,从FileInputStream中获得二进制数据,再把二进制数据写入FileOutputStream,然后文件就保存到了服务端了,不过有一个问题要解决,就是文件要保存到哪个地方浏览器才可以正确访问呢,/获取根路径public String getRootPath()request = this.getRequest();return request.getScheme()+:/+request.getServerName()+:+request.getServerPort()+request.getContextPath() +
47、 /;/获取上传的根路径public String getPath()return ServletActionContext.getRequest().getSession().getServletContext().getRealPath(/);getRootPath方法可以获取网络地址的根目录(带有ip的地址),这个地址可以被浏览器访问的地址(通过request获得协议、端口、ip以及upload文件夹和文件名,拼出一个地址)。getPath方法获取的是服务器的物理地址(比如:D:/web这样的地址,d:web/upload/1.png),这个地址是项目保存在服务器中的物理路径,它保证了上
48、传的文件是否可以被用户访问到,这个两个方法可以很好的实现文件路径的获取。如何实现从剪贴板获取图片呢?这是我的当时解决问题的记录:编辑器支持剪切板复制图片,这是编辑器的功能,但是我需要找到内部的上传路径,修改成我的服务器地址。所幸,在几千行代码中还是让我找到了。但是我不高兴,因为又报错了,是编码的问题。我使用剪贴板粘贴的图片是一个庞大的字符串,开头是data:image/png;base64,有上万个字符,我把代码截图给网友,得知是base64编码的东西,于是我又简单的学习了一下base64与图片之间的转码,转码之后,还要操作输入流输出流才可以将图片保存到起来,然后将链接地址发送给浏览器,中间也
49、是不太容易,不过总算是解决了5.2.4 文章删除模块当显示文件列表时,可以删除一个文件:图5-11 删除文章在ArticleAction中删除的实现:/删除一篇文章public void delete()articleService.delete(article);Json json = new Json(已删除!);writeJson(json);在ArticleService中删除的实现细节:/删除一篇文章public void delete(Article article)articleDao.delete(article);直接使用hibernate的delete方法就可以删除文章了!
50、5.2.5 文章修改模块 图5-12 修改文章当点击了修改之后,你的文章数据会被加载到一个新的form表单, 当你修改了文章之后,数据会被发送到ArticleAction中进行保存,执行了action中的save方法。/文章的保存public void save()article.setCaption(caption);Json json = new Json(articleService.save(article);writeJson(json);然后执行Service中的save方法:/保存一篇文章public String save(Article article)article.setUser(User)getSession(u);article.setTime(new Date(System.currentTimeMillis();if(articleDao.saveOrUpdate(article) != null)return success;return error;当点击文章标题的时候,会直接显示这篇文章的:图5-13 后台显示文章5.2.6 图片管理模块当上传图片时是这样子的,这个进度条很简洁,挺漂亮的。图5-14 上传图片图片上传时效果还是挺好看,上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能化楼宇控制系统工程竣工验收报告
- 2026年浙江省建德市高二生物下册期末考试模拟卷【网校专用】附答案
- 数智化机械专业课堂互动优化方案
- 基于行为数据的网络广告价格动态优化研究-洞察与解读
- 深度神经网络在手势识别中的应用-洞察与解读
- 智能化水泥生产-洞察与解读
- 分布式能源接入对电网稳定性的挑战-洞察与解读
- 社会支持对气管肿瘤患者心理健康的影响-洞察与解读
- 环保导向的丝状纳米材料合成方法-洞察与解读
- 雷暴哮喘防控专家共识重点2026
- 雨课堂学堂云在线《人工智能原理》单元测试考核答案
- 2025年内蒙古呼道德与法制中考试卷和浩特
- 2025年江苏省苏州工业园区管委会招聘14人历年高频重点提升(共500题)附带答案详解
- (高清版)DB52∕T 1450-2019 河道管理范围划界技术规程
- 卫生化学(人卫第七版)考点全套
- 《财务管理学(第10版)》课件全套 王化成 第1-12章 总论、财务管理的价值观念-并购与重组
- 中国戏曲剧种鉴赏智慧树知到期末考试答案章节答案2024年上海戏剧学院等跨校共建
- 汽车维修工时收费标准(二类企业)
- 韶音供应商QSA+QPA审核-checklist-V1
- JGT483-2015 岩棉薄抹灰外墙外保温系统材料
- 墩柱模板计算书1
评论
0/150
提交评论