《e品书香网站建设大学本科毕业论文.doc》由会员分享,可在线阅读,更多相关《e品书香网站建设大学本科毕业论文.doc(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘 要随着网络技术的不断发展。人们对于网络有了越来越多的要求Ebay,阿里巴巴,淘宝的出现,让电子商务重现曙光,google,baidu的 出现,让人们通过网络进行信息检索,获取到有效信息的途径更加丰富。电子读物也是在网络产业中一枝独秀,如起点中文网,天下电子书等,许多人都走向了网络作家这个方向,而电子书网站正式为广大的爱好电子读物的人们提供了交流与共享的平台。 E品书香网站基于电子读物资源共享、用户之间互动的功能,在开发设计中,采用B/S(Browser/Server),这种结构使得数据结果集合在浏览器中显示,数据的处理在服务器进行,用户只需要一个浏览器就可以遨游于使用本系统了了。数据库方面
2、,业界具有常用的关系数据库管理系统Mysql,使系统安全性能更高。同时采用当前正在流行的J2EE技术开发,采用jsp用户界面更加的友好简单易操作。当今论坛的界面设计非常的炫耀富丽,用户体验非常的良好,主要要到了jquery这个流行的JavaScript框架。在开发中选择了struts2+spring+hibernate(SSH)三大框架,dao层+service层+action层+view显示层的mvc分层的开发模式,实现了应用程序逻辑和页面显示分离,界面设计更简单。关键词:java;web;mysql ;电子书,社交,SSH,MVC,JavaSricpt, JqueryAbstractWit
3、h the continuous development of network technology. requirements for network has been increasing. Ebay, alibaba, taobao occurrence, let the electronic commerce recreate popular, Google, the emergence of baidu, let people through the network for information retrieval, obtain the effective ways of mor
4、e abundant information rich. Of course,ebooks is most popular in the network ,such Qiandian , The Book Sky and so on.More and more people get to be netwriter.So the net of ebook is provide a plat for these men who like to read ebook or to write ebook. When the E Book Home bases on sharing resource a
5、nd users can communicate to each other. In the development of design, adopts B/S (is clicked/Server) structure, this kind of structure allows data only result sets in the Browser display, data processing in Server, users need not install client, and because by the Server unified management data, eas
6、y to ensure the consistency of the data. Database, recommend industry of the leading relational database management system, the system Mysql safety performance is higher. By adopting the JSP, popular web Server (Java) programming, are more friendly user interface currently.In developing chose JSP +
7、JavaBean + Mysql model, realized the application logic and page shows the separation, interface design more simple. JavaBean reusable software component meet, and meanwhile make small application programmer inputs, energy and reusable components, in simple applications to consider.Keyword: java ,ebo
8、ok, sns,struts2,spring,hibernate,B/S,JSP,JavaBean,ssh,mvc, JavaScript,jquery.目录1 系统概述11.1 课题的目的和意义11.2 国内现状分析11.3 开发环境简介12 可行性研究与需求分析22.1 可行性研究22.1.1 技术可行性22.1.2 经济可行性22.1.3 运行可行性22.2 需求分析22.2.1 系统需求32.2.2 性能需求32.2.3 应用需求分析32.2.4其他需求分析33 实现技术简介43.1 Html5+Css3.0+Javascript简介43.2 Ajax和JSON43.3 JSP技术简介
9、43.4 Struts+Spring+Hiberate技术53.4.1 Struts2.x技术53.4.2 spring技术63.4.3.hibernate技术64系统的概要设计74.1 项目的功能概述74.2数据库概要设计134.3文件结构155项目的详细设计165.1项目架构图165.2项目AJAX的请求175.3项目功能模块的详细实现175.4数据表库的详细设计235 总结27参考文献28致谢291 系统概述1.1 课题的目的和意义随着互联网和宽带上网的普及,娱乐性的网站也是在IT领域占有极大的比例,并日益渗透到人们的日常生活中。如书籍的在线阅读,对于闲暇时候,看看书陶冶情操的时候,无需
10、去拿着一本厚厚的笨重的书籍走来走去,一个移动设备及可以满足我们的需要。电子书网站是运用现代通信技术、计算机和网络技术进行的一种社会形态,其目的是通过互联网共享知识资源,从而实现社会财富的最大化利用。在E品书香的网站中,涉及书籍资源的提供,查询,以及供用户的阅读,同时网站提供了会员模式,用户可以注册网站的会员,然后可以对网站的书籍做一些评价,并且可以和其他用户在论坛里进行交流。本课题所研究的E品书香网站主要是为个人提供电子读物的搜索,阅读和用户之间交流 的一个平台,从而给个人带来方便。课题目标是设计并实现一个B/S体系结构的电子书资源提供网站。结合实践,加强网页开发技术和数据库方面知识,学习相关
11、开发工具和应用软件,体验网站建设的过程,熟练掌握网络数据库编程方法。1.2 国内现状分析现在我国的信息管理水平还比较落后,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代传统的管理方法必然被计算机为基础的信息管理所取代。软件作为一项有力的工具,只能当此种工具,与我们的实践相结合起来的时候,才具有重大的社会价值及使用价值。因此根据目前实际的情况开发这样一套管理系统是十分必要的。随着科学技术的不断提高,计算机科学技术日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机进行管理,具有着手工管理所无法比拟
12、的优点。例如:可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工作的效率,也是信息正规化管理与世界接轨的重要条件。1.3 开发环境简介本项目开发工具及版本如下:Eclipse,jdk6.0,mysql5.6,Tomcat6.0,struts2,spring3.0,hibernate3.6 final,在window7系统平台进行项目的开发,调试,与运行。本系统用时下流行的javaweb开发框架SSH(Spring+Struts+Hibernate)进行开发,数据库采用轻巧稳定的MySql,界面使用jsp实现。本论文主要涉及软件,数据库与网络技术等。涵盖知识面广,可有效地提
13、高综合运用所学知识分析解决问题的能力,增强对事物的理解与掌握能力,掌握科学的研究方法,正确的设计思想,独立思考,勇于进取,探索创新,为今后进一步学习与工作奠定了良好的基础。 2 可行性研究与需求分析2.1 可行性研究2.1.1 技术可行性技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。本系统用的是SSH框架开发,主打语言是JAVA,由于框架对一些复用的代码做了很好的封装,并且提供了友好的API,所以上手较快,开发效率也大大提高,采用流行的开发IDE: Eclipse,对开发调试都有很好的支持,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对
14、可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。2.1.2 经济可行性 开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得.因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。2.1.3 运行可行性运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。当前信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运
15、行上是可行性的。2.1.4 法律可行性 所有技术资料都为合法。 开发过程中不存在知识产权问题。 未抄袭任何系统,不存在侵犯版权问题。 开发过程中未涉及任何法律责任。2.2 需求分析需求分析是软件设计的一个重要的环节。本阶段对系统管理系统的应用情况作全面调查,以确定系统目标。确定用户的需求。用户对系统的需求我们从以下几方面进行分析。2.2.1 系统需求用JSP开发系统管理系统基于B/S模式,系统软件和数据集中存放于服务器中,软件的安装与升级在服务器上进行。所有的工作基于浏览器,安装、使用、维护、升级十分简单。2.2.2 性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行。系统处理的准确性
16、和及时性是系统的必要性能。由于本系统的添加功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,其准确性和及时性很大程度上决定了系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。2.2.3 应用需求分析(表2-1)系统需求硬件分析服务器硬件处理器:Intel 酷睿 i3内存:512M 或更大硬盘:20G或更大软件Microsoft Windows XP或以上客户机硬件无特殊要求软件Microsoft Windows XP系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性,运行效率等方面的考虑。 硬件系统环境:C600、1G MB(RAM)、
17、500MB(HD)。系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好。2.2.4其他需求分析本系统有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可修改性、可测试性、等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。3 实现技术简介本系统开发使用了主流的javaweb开发技术,该系统核心开发部分Sturts+Spring+Hibernate,用户视图使用的是jsp做数据处理,使用aj
18、ax异步使用后台的数据到传输到视图层,并用Html5.0+CSS3.0+javascript对视图进行了修饰。数据的存储使用的是mysql数据库。3.1 Html5+Css3.0+Javascript简介2012年12月17日,万维网联盟(W3C)正式宣布凝结了大量网络工作者心血的HTML5规范已经正式定稿。根据W3C的发言稿称:“HTML5是开放的Web网络平台的奠基石。到现在html5技术已经成熟,并在许多网站得以使用。Html5相比html4有了更好的扩展,而且比之前的html语言要简练好用,增加了许多新的标签。同时也将一部分常用的javascript的交互操作进行了封装。用html5.
19、0生成的页面,具有更好的效果。配合上CSS3.0的使用更是如虎添翼。在页面开发占据了重要的地位。目前许多浏览器厂商都兼容html这种语言,html5还支持移动的app开发。所以通过这次使用html5开发页面,着实加深了对html的掌握。页面的交互使用了jQuery,jQuery是用javascript开发的一个框架。使用jQuery我们无须操心浏览器的兼容问题。jQuery在浏览器兼容方面有了很好的支持,而且jQuery语法简单,优雅简洁。可以使我们更好的维护前端部分。3.2 Ajax和JSONAjax并不是一门单一的技术,而是将多技术融合形成的一种数据处理方式,通过ajax可以实现视图的局部
20、更新。是的页面数据显示更加灵活。而对于javascript 一下简称js来说,ajax从服务器请求到的数据时经过js做处理的。Js可以处理xml,JSON,但是JSON成了本项目的ajax操作的数据传输格式。JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式。js操作JSON也是非常简单的,相对于XMl,JSON更易于js解码。3.3 JSP技术简介JSP(Java Server P
21、age服务器网页)是从1998年开始出现的新技术。由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于JavaServlet以及整个Java体系的web开发技术。在传统的网页HTML文件(*.htm,*.html)中加入脚本片段和JSP标记(Tag),构成JSP网页(*.jsp)。JSP技术为创建显示动态生成内容的web页面提供了简便的方法。JSP作为Java家族的一员,承袭了Java的特点,即跨平台的特性,也即一次编译,到处运行。在国外,己经大量使用JSP作为网络应用程序的开发工具,而在国内,尽管JSP还不是主流开发技术,但是由于JSP的强大优势,许多网站都已经准备转向JSP
22、,利用JSP来开发动态网站。 本系统使用通过使用jsp对将后台处理过的数据进行格式化后给用户显示,是视图(view)核心部分。3.4 Struts+Spring+Hiberate技术本项目的服务端是在Struts+Spring+Hiberate这三大框架的基础上进行的开发的。对于javaweb的开发,这三大框架式目前开发领域比较流行,也是比较的经典和比较成熟的技术。3.4.1 Struts2.x技术Struts是建立在MVC这种公认的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一个好的控制器和一套定制的标签库上,也就是说它的着力点在C和V上,因此,它天生就有MVC所带来的一
23、系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化、日志等等;其次,它是个开源项目得到了包括它的发明者Craig R.McClanahan在内的一些程序大师和高手持续而细心的呵护,并且经受了实战的检验,使其功能越来越强大,体系也日臻完善;最后,是它对其他技术和框架显示出很好的融合性。Struts可以规范程序员的行为Struts是对MVC2模型的实现,下图是spring的基本原理:图3-1 struts流程图3.4.2 spring技术 Spring框架对于在java开发领域是一个并不陌生的框架,是一款优秀的组件管理框架
24、,其框架有着如下特点:1、spring能简化企业级开发, spring可以用简单的java bean来代替实现复杂的EJB。 2、spring是一个轻量级的IOC和AOP框架,可以spring的IOC实现松耦合,而作为一个AOP框架他又能分离系统服务,实现内聚开发 。3、spring是非侵入式,基于spring的系统可以不依赖于spring的类。良好的spring运用可以使程序代码清晰,容易维护,容易测试。使用Spring可以避免factory和siglton的泛滥 ,Spring 的IOC容器通过配置文件,帮我们将业务逻辑类对象和依赖于它的对象全部实例化 ,不用我们去手工new对象,不仅降低
25、了耦合性,而且使得程序员可以更关注于业务逻辑的实现。数据操作层和业务逻辑层用spring管理,因为这些包含到事务注入以及以后的扩展,pojo如果仅仅是用来传值,也不会在上边做什么改动的,则不用放在spring容器里好了. 同理 ,业务对象和持久层加以来让Spring管理,这样可以使用Spring的事务支持,简单的pojo,只充当dto功能的,不存在状态改变的,就不需要让Spring来管理了DAO模式需要为每个DAO组件编写DAO接口,同时至少提供一个实现类,根据不同需要,可能有多个实现类。用Spring容器代替DAO工厂。通常情况下,引入接口就不可避免需要引入工厂来负责DAO组件的生成。Spr
26、ing实现了两种基本模式:单态模式和工厂模式。而使用Spring可以完全避免使用工厂模式,因为Spring就是个功能非常强大的工厂。因此,完全可以让Spring充当DAO工厂。由Spring充当DAO工厂时,无须程序员自己实现工厂模式,只需要将DAO组件配置在Spring容器中,由ApplicationContext负责管理DAO组件的创建即可。借助于Spring提供的依赖注入,其他组件甚至不用访问工厂,一样可以直接使用DAO实例。3.4.3.hibernate技术Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用
27、对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任.这样我们就可以专注在业务逻辑代码中了。采用Hibernate作为持久层技术的最大的好处在于:可以完全以面向对象的方式进行系统分析、系统设计。这样更加方便清晰地处理业务逻辑,更多的精力放在处理逻辑的上面。4系统的概要设计系统的概要设计是在系统分析的基础上由抽象到具体的过程。主要包括系统设计、数据库的需求分析以及网站的整体设计三大块。系
28、统设计主要目标是将系统分析阶段所提出的反映了信息需求的系统逻辑方案转换成可以实施的基于计算机运行环境的具体方案,进行系统的概要设计,为下一阶段系统详细设计提供必要的技术资料。4.1 项目的功能概述该项目以一个网站的形态存在,该网站的功能模块结构如下图:图4-1-1 系统架构流程图 图4-1-2 网站首页图首页:首页是用户浏览网站首先看到的信息页面:其算法是从书榜中随机获取到10本热门小说展现给用户。图4-1-3 书库图书库:书库可以说是本站的重要功能,该模块为用户提供了海量的书籍供用户阅读浏览,网站中任何地方的有关书籍的信息都可以从书库里获得。图4-1-4 论坛效果图论坛:展现给用户的是论坛的
29、版块,以瀑布流的模式展现给用户:每个论坛版块的底部都会显示1-3条不等的最新帖子。图4-1-5 书页排行榜效果图书榜:书榜是为用户提供建议读物的一种方式,通过书榜,可以了解到哪些书籍是广大用户正在阅览的,书榜分日点击,周点击,月点击,日推荐,周推荐,月推荐等六个榜单:分别统计出每天,每周,每个月的用户阅读数,推荐书最高的榜。搜索:输入关键字,可以找到与关键字有关的作者,书名等书籍。图4-1-6 登录效果图 登录:用户输入用户名,密码,系统检测后可进行相关的操作,登录的流程采用的ajax操作。图4-1-7 注册效果图图4-1-6搜索效果图注册:用户输入注册信息便可成为本站的会员。从而进行推荐,评
30、论,发帖等操作。图4-1-8 小说详情效果图小说详情:在这里可以收藏该小说(加入书架),推荐小说,评论该小说,并且系统会随机推荐给用户与之相关的书籍.图4-1-6 帖子列表效果图帖子列表:用户可以在这里发表帖子:图4-1-7 用户首页效果图 用户中心,在这里可以看到自己的昵称,个性签名,等级等,也能看到自己曾经读过的书,收藏的书,以及推荐过的书。图4-1-8 用户设置中心效果图设置中心,用户可以设置密码,昵称,用户头像等个人信息,4.2数据库概要设计数据库作为系统的基础,在信息管理系统中占有非常重要的地位,首先要保证其设计的合理性,一个设计合理的数据库,可以提高数据的存储效率,是对数据有效管理
31、的前提条件,保证数据的完整和一致,也是系统设计的关键。拥有设计合理的数据库往往可以起到事半功倍的效果。数据库如果设计不当,系统运行当中会产生大量的冗余数据,从而造成数据库的极度膨胀,影响系统的运行效率。本项目是面向大量用户而开发的一个系统,面对大数据时代,有必要去设计合适的数据库来进行对数据的存储管理。数据的。本系统主要设计了如下的数据表:board 这里主要存放论坛的版块信息;book信息,项目的所有与书籍相关的数据都存放在这个表里bookread:当用户对一本书籍进行阅读的时候,会在该表插入记录bookshelf:当用户收藏书籍的时候,会在该表存放那个记录。Booksort:对书籍的分类情
32、况在这个表里存放。Booktop:项目里榜单的信息都放在这里Comment:存放在用户对于发的帖子,评论,回复Explog:记录用户加经验的详细情况.Recommend:记录了用户推荐书籍的记录User:这是记录用户的名称,密码,等级等信息。Userinfo:记录用户的收藏数,推荐数,阅读数等统计信息。 数据模型如下:图4-2-8 数据模型图4.3文件结构为了是项目在开发过程中能够明确,清晰,所以搭建一个好的目录也是必须的,这样在日后的维护与更新也是非常容易的:下图是本项目的目录结构图: 图4-3-1 项目源码目录结构各个目录简介:SRC包下放的是后台业务相关的代码:action包存放的是自定
33、义的Action类,dao包里是与操作数据相关的接口,旗下的impl包是对其接口的实现类entity是与数据表对应的java实体类json包存放的是将数据下发的结构进行封装成json的方法类。Service里存放的是业务逻辑的接口。旗下的impl是对接口的实现。Servel包里存放的是自定义的一些servlet ,fileter等Util包里是一些通用的自定义工具类,如MD5加密工具类,系统提示的字符串常量类等。Vo包中是对多参数请求的参数封装。5项目的详细设计5.1项目架构图通过概要设计可以总结出项目的具体架构,为了对项目进行更好的开发和日后的管理,所以对项目的封层是很有必要的下图便是本项目
34、的分层结构图:图5-1-1 项目架构图下面对各个分层做详细的介绍1.View层:主要有Jsp构成,其中包含少量的html,用来讲数据结果格式化后显示给用户。2.Action层:是控制层的一部分,有Struts组件进行开发,主要负责解析校验请求参数和执行请求方法吗以及对请求的转发。3.Service层,是控制层的核心部分,实现整个业务逻辑,通过调用Dao层的基本业务操作方法来完成整个业务流程的实现。4.Dao层,该层是业务基本方法的实现,有hibernate组件实现,从数据持久层获取期望的数据。5.数据持久层,是系统与数据库的中间件,实现了对象与关系的封装。主要给Dao层提供结果映射。5.2项目
35、AJAX的请求本项目的页面显示用了大量的异步请求,使用了ajax技术,每个页面的各个部分都是通过不同的异步请求得到数据而对页面进行显示的:如下图:图5-2-1 项目架构图小说的信息是一个ajax请求,然后填充数据,书香纷纭的版块是一个ajax请求的数据,你可能喜欢的版块同样也是一个ajax请求。5.3项目功能模块的详细实现项目中使用了众多的业务,每个功能同时关联着多个业务功能,所以从项目择取了几个经典的模块供以介绍:登录模块:客户端在登录窗口输入登录号码和登录密码,点击“登录”按钮。客户端发送“login”请求,表示需要登录,连接服务器。服务器接收到客户端发送过来的账号和密码信息后,业务逻辑层
36、Service比较输入的用户名和密码和数据库中信息是否相符,如果相符则表示登录成功,并封装好跟踪用户的信息转入本项目的网站。否则,则出现信息出错提示框:图5-3-1 登录流程图图5-3-3 登录成功图图5-3-2 登录失败效果图1. 相关代码public String login(String username, String password , HttpServletRequest request ) throws Exception / TODO Auto-generated method stubString md5Pass = MD5Util.getMd5(password) ;Us
37、er u = userDao.getUser(username) ;if(null = u )return JSONUtil.result(0, TipString.ERR_LOGIN);if(!u.getPassword().equals(md5Pass) return JSONUtil.result(0, TipString.ERR_PASS) ; SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd);List list = explogDao.get(u.getUserid(), Constants.EXP_LOGIN, sdf.
38、format(new Date();if(list = null | list.size() = 0 )explogDao.add(u.getUserid(),Constants.EXP_LOGIN, sdf.format(new Date(), Constants.EXP_LOGIN) ;u.setExp(u.getExp()+Constants.EXP_LOGIN);int newlevel = LevelUtil.getLevel(u.getExp(), u.getLevel()0;u.setLevel(newlevel) ;userDao.update(u);request.getSe
39、ssion().setAttribute(Constants.USER_SESSION, u) ;return JSONUtil.result(1, TipString.SUCC_LOGIN) ;2. 注册模块 图5-3-4 注册流程图相关代码:public String regist(String username, String password,String nick , HttpServletRequest request) throws Exception / TODO Auto-generated method stubif(StringUtils.isEmpty(username
40、)|StringUtils.isEmpty(password)return JSONUtil.result(0, TipString.NO_USER);User u = userDao.getUser(username) ;if ( null != u ) return JSONUtil.result( 0 ,TipString.USER_EXIST ) ; u = new User() ;String md5Pass = MD5Util.getMd5(password) ;u.setUsername(username);u.setPassword(md5Pass);u.setHeadimg(
41、Constants.HEAD_IMG_M) ;u.setLevel(1) ;u.setSex(1);userDao.saveUser(u) ;UserInfo info = userDao.getUserInfo(u.getUserid();u.setUserInfo(info);u.setNickname(书友+u.getUserid() ;if(!StringUtils.isEmpty(nick)u.setNickname(nick);request.getSession().setAttribute(Constants.USER_SESSION, u) ; return JSONUtil
42、.result(1, TipString.SUCC_REG) ;图5-3-5 评论流程图图5-3-6 回复流程图对回复进行回复:图5-3-6 回复回复流程图 修改头像模块:修改这个功能使用了两个请求来完成这个业务:图5-3-7 修改头像流程图设置头像的效果:图5-3-8 修改头像流程图 生成小头像的代码:public String getCut(int x1 , int y1 , int x2, int y2) throws Exception String fileName = this.getImage_fileFileName(); String perffix = fileName.s
43、ubstring(fileName.indexOf(.)+1, fileName.length(); Iterator it = ImageIO.getImageReadersByFormatName(perffix); ImageReader reader = it.next(); FileInputStream fis = new FileInputStream(getImage_file(); ImageInputStream iis = ImageIO.createImageInputStream(fis); reader.setInput(iis, true); int nw = reader.getWidth(0); int hw = reader.getHeight(0); ImageReadParam param = reader.getDefaultReadParam(); Rectangle rect = new Rectangle(x1, y1, 170, 170); param.setSourceRegion(rect); BufferedImage bi = reader.read(0, param); / 保存新图片 String newname = UUID.randomUUID().toStr
限制150内