java毕业设计——基于JSP+sqlserver的环境美容服务公司网站设计与实现(毕业论文+程序源码)——公司网站

基于JSP+sqlserver的环境美容服务公司网站设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于JSP+sqlserver的环境美容服务公司网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. 环境美容服务公司网站的开发是为了解决社会中的一些与环境有关的问题,这个网站涉及到的行业有建筑业、房屋装修装潢业、汽车美容业、园林设计业和公共广场设计业。由于社会在飞速发展,国家的政策和法律跟不上这个步伐,所以这些行业在社会的竞争中有些不正规,在一些大城市里,这些行业出现了欺骗的手段,使市民的利益受到了损害。在这些行业中,尤为严重的是房屋装修行业,在一些报刊上常出现相关的报道。为了让这些行业能够健康稳定的发展,在社会中公平、公开、公正地竞争,因此我开发了这个网站。
  2. 当今社会里,人们的工作比较繁忙,没有很多时间去了解上述那些行业的知识,这个网站里提供了很多这些方面的知识,可以供人们了解这些行业,不会再被欺骗。


2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:16045个字46页
包含内容:全套源码+配整论文


3、关键词

环境美容 环境保护

4、毕设简介

提示:以下为毕业论文的简略介绍,项目完整源码及完整毕业论文下载地址见文末。

第一章 环境美容服务网站分析
一、网站针对的用户
此网站是针对建筑公司、房屋装修、装潢公司、汽车美容公司、专业园林广场设计公司设计开发的网站。还有就是社会各阶层的所有的用户,主要包括房地产公司用户,商品房用户,拥有轿车和其他车辆的用户,还有就是将要有广场或者园林建造工程的政府部门用户。

二、简单的问题暴露
省略

三、解决问题
省略

四、网站功能的简单描述
(一)、建筑设计
对建筑行业的介绍,以及一些相关知识的描述,能让浏览者对该行业有个大概的了解,并对当今社会或者该城市有哪些知名的建筑公司能符合自己的要求。通过建筑设计样品可以查看到一些设计得比较好的建筑物。如果您将要有这样的工程,您可以到我们公司的专卖店里购买。
(二)、房屋装修装潢设计
对房屋装修装潢行业的介绍,以及一些相关知识的描述,能让浏览者对该行业有个大概的了解,并对当今社会或者该城市有哪些知名的房屋装修装潢公司能符合自己的要求。本网站提供了一间设计并装修好的卧室样品。
(三)、汽车修理
对汽车美容行业的介绍,主要是对汽车的相关配件的价格进行描述,对汽车公司的收费标准作一些描述,还对他们的一些服务态度进行描述。提供他们曾经的一些收费例子。让浏览者有选择他认为比较便宜的公司去进行修理他的汽车。
(四)、专业园林设计
对园林设计行业作一些简单的介绍,主要是要详细介绍园林广场公司已经设计过的图纸和方案,要让浏览者从中了解到某公司的一些设计风格,从而选择出符合自己要求的公司为自己设计。一般要进行园林设计并建造的是国家政府部门,所以有这项功能是一件非常有用的,一是可以为自己的公司作一次宣传,二是可以把这项工程推向竞争市场,也可以起到大众对国家政府部门的监督。另外一种就是在个人的别墅里有这样的建造,这有的园林就更要有技术、有特色,一定要体现出舒服和美观的特点。
(五)、专业公共广场设计
对相关公共广场的知识作一点简单介绍,要进行这样的设计和建造也是国家政府部门,同样也是要将这样的工程推向市场,让社会决定哪家公司最有能力来接管这项工程,一顶要使这种工程做得很好。因为它是全天下人民的。
(六)、关于留言
留言是实现用户与本网站的管理员的留言,用户可以查看自己的留言。它的实现是与数据库的连接,前面第三章已经用过了JavaBeans封装与数据库的连接,这儿是方法不是用JavaBeans来实现的,而是用另外一种方法实现。就是直接与数据库连接。如果你有什么想法或是其他的对本网站的要求,都可以通过这里的留言功能与数据库管理员进行交流。
(七)、聊天
聊天功能就是让用户们进行聊天,只要你输入你的名字和你的聊天内容,就可以和所有的用户进行聊天,但是就是没有数据库来管理这些数据,但是只要服务器不关,你的内容都存在,它是通过JSP的内置对象application来实现的,application对象是一个非常的对象,它能为多个用户提供共同的信息,就是因为如此,就可以不用数据库来实现聊天功能。
你只要知道某个用户的名字、或是通过留言人名字,你就可以和某个人进行聊天,只是这些聊天内容是公开的,每个用户都可以看到。
(八)、公司专卖店
公司经营的所有货物已经列出来了,你可以到公司专卖店里购买你想要的货物,你可以添加货物到你的购物车里,也可以删除你已经选择了的货物,不管是你添加的货物,还是你删除了货物之后,都可以查看到你的购物车里的货物。

五、本网站的未来
省略

第二章 网站所用技术的特点
一、 JSP的特点
(一) 将内容的生成和显示分离
使用JSP技术,页面开发人员可以使用HTML或者XML(可扩展标记语言)来设计和格式化最终页面,使用JSP标记或者脚本来生成页面上的动态内容。生成内容的逻辑被封装在标记和JavaBeans 组件中。那么其他也设计者就可以直接使用这个JavaBeans而且还不会影响内容的生成。
(二) 使用可重用的组件
绝大多数JSP页面依赖于可重用的组件(JavaBeans)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使用这些组件为更多的用户使用。基于组件的方法加速了总体开发过程。
(三) 采用标记简化页面开发
Web页面开发人员不一定都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在XML标记中生成动态内容所需要的。标准的JSP标记能够访问和实例JavaBeans组件,设置或者检索组件属性,下载Applet等。
通过开发自定义的标记库,可以扩展JSP技术,用户可以为常用功能创建自己的标记库。Web页面开发人员能够使用这些工具简化页面开发。

二、 相关JSP技术软件的环境配置
省略

三、与ASP和PHP的比较
ASP内含于ISS中,提供一个服务器端的脚本应行环境。ASP无须编译即可解释执行,可以同
任何Activer脚本语言兼容。除了可使用VBScript和Jscript语言来设计外,还可以通过Plug_in
的方式,使用第三方提供的其他脚本语言,例如PerlScript语言。但是在执行这样的脚本语言时,
它的安全性不是很好,而且还要安装补丁程序及时更新系统。
PHP使用的是类似Perl、C++和Java语言的跨平台的服务器嵌入式脚本语言,代码被Zend
引擎解释执行。PHP支持目前绝大多数的数据库并且有同许多数据库相连接的函数,它与MYSQL
数据库是最好的组合。但是它提供的接口支持不统一,这就是它的不好的地方,另外,它还缺乏
规模支持和多层结构支持,不支持分布计算。
JSP使用的是Java语言的代码,可跨平台运行,具有速度快、运行开销小、可扩展性好及支
持分布式处理等特点,是开发电子商务和大型网站的最佳工具。它具有了ASP和PHP语言的绝大
多数的优点。

第三章 网站的规划
一、 网站的整体结构和站点的创建
对于我的这个网站,首先要安装JDK,然后安装Tomcat,才可以在Tomcat的安装目录中,创建
自己的新目录。如下代码所示,就可以在目录下创建新目录test1这样,除了原来的examples和Root,又多了一个目录。
站点环境美容服务公司是在webapps/test1目录下。这样该站点的
地址就是:http://localhost:8080/test1/

二、 数据库的建立
在这里我就只列举数据库里的两个表:
message表里有三个字段,分别为:name、emote、content,name的数据类型是text(16),
emote的数据类型是char(10), content的数据类型是text(16)。
表1: message表
在这里插入图片描述

member表里有八个字段,分别为:logname、password、sex、age、eamil、phone、address、message,logname的数据类型是char(50),passage的数据类型是char(16),sex的数据类型是char(2),age的数据类型int(4),email的数据类型是varchar(50),phone的数据类型是varchar(15),address的数据类型是varchar(50)。
表2: member表
在这里插入图片描述

三、公共页面的设计
为了使程序一致,我把多次出现的部分代码封装在几个公用的页面中。我将每个页面的顶部和底部包含在header.inc和footer.inc文件中。
header.inc这个文件放在部分文件的开头处,作为页面的顶部导航栏。它是用HTML语言来实现的,首先,要包含一些页面要用到的属性,文字的的属性为”gb2312”,文件格式为“text/html”,可能会用到的语言,我这里用到的是JavaScript语言,然后是头文件里的内容,包含有:用户注册、站务联系、环境美容服务公司、一个滚动条、建筑设计、建筑样品、房屋装修装潢设计、汽车美容、汽车美容实例、园林设计、公共广场、公司转专卖店、给我留言、查看留言、聊天。这些内容都连接到相应的页面。

四、 JSP中JavaBeans的使用
(一)、JavaBeans的特点
本网站用到了几个JavaBeans组件,下面将分别加以介绍它的一些特性。JavaBeans是一个可重复使用的软件组件。实际上JavaBeans是一种Java类,通过封装它们所有的属性和方法成为具有某种功能或者处理某个业务的对象。在JSP页面中调用Beans,可有效地分离静态工作部分和动态工作部分。
(二)、怎么编写JavaBeans
省略

第四章 用户注册和登录
一、 用户注册
用户注册页面的内容有:用户名称、设置密码、用户性别、用户年龄、电子邮箱、用户电话、联系地址、其他信息。
用户通过提交用户名称、设置密码、用户性别、用户年龄、电子邮箱、用户电话、联系地址、其他信息实现注册。当request对象获取这些信息后,首先检查输入的用户名称的形式是否符合要求,如果不符合要求就提示用户输入的用户名称不对,然后再检查散列表对象是否已经存在这个名字,该散列表存储了已经注册了用户的名字。如果目前准备注册的用户提交的用户名称在散列表中已经存在,就提示客户更换用户名称,顺次下来,检查输入的密码是否符合规定的格式,例如:规定的密码位数是(6——10)之间的字符串,最后检查输入的E_mail格式是否符合要求,输入的电子邮件地址里是否有”@”和“.”这样的字符。如果都对,将被允许注册。

散列表是使用相关关键字查找被存储的数据项的一种数据结构,关键字不可以发生逻辑冲突,即两个数据项不能使用相同的关键字。散列表在它需要更多的存储空间时会自动增加容量。例如。如果散列表的装载因子是0.75,那么当散列表的容量被使用了75%时,它就把容量增加到原来的2倍。对于数组和链表这两种数据结构,如果要查找它们存储的某个特定的元素却不知道它的位置,就需要从开始访问元素直到找到匹配的为止,如果数据结构中包含很多的元素,就会浪费时间,这时最好使用散列表来存储要查找的数据。如果就这样使用散列表,当服务器重新启动将会刷新散列表。所以应当将散列表存储到文件中,当客户访问时首先从文件中读出散列表,在这个散列表中查找已经注册的名字,如果文件不存在,那么该客户就是第一个注册的人,并负责将散列表写入到文件。其注册界面的效果如图3所示:
在这里插入图片描述

图3 注册图
二、 用户登录
网站首先进入的就是登录界面,如果没有登录,就进不了本网站,登录页面的内容有:用户名和密码,当客户输入用户名称和密码后,提交这些信息后,就会到散列表所在的文件里去查找这些信息是否存在,它首先是去查找散列表所写入的文件里是否有用户名称,如果有用户名称就去查看是否与密码相匹配,如果与散列表里的用户名称和密码不匹配,则不能登录成功,只有完全与注册时的数椐相同,才能登录成功。登录成功进入以后,服务器就为这个用户分配一个Session的ID号。
登录界面的效果如图4所示:
在这里插入图片描述

图4 登录图

第五章 网站的页面功能
本网站是通过下面这些文件来展示一些功能的,进入本网站的主页时,任何人都可以查看这些页面,但是其他页面只有当您登录进入后,才可以去实现网站的特殊功能。

一、网页中的特殊效果文件
这类文件有: shubiaozou.htm、wenzixiaoguo.htm、wenziguendong1.htm、wenziguendong2.htm,这些文件实现了某些特殊的功能和美观的效果。其中用到了HTML语言和JavaScript语言,尤其是JavaScript语言实现了特殊的效果。其中shubaiozou.htm文件实现了跟着鼠标走的文字效果。wenziguendong1.htm和wenziguendong2.htm文件实现了一串文字滚动的效果。这里就只描述鼠标功能的代码。定义存放坐标的变量(var x,y),定义代表字符间隔的变量(var step),定义标志变量(var flag), 下面定义的变量用于存放游动的字符串(var message; step=20; flag=0), 指定鼠标指针后面的文字(指定鼠标指针后面的文字), 把上面的字符串拆成单个的文字序列(message=message.split(“”)),定义一个数组用来存放鼠标指针后各个字符的横坐标(var xpos; xpos=new Array()),把该数组各项值赋成-50, 定义一个数组用来存放鼠标指针后各个字符的纵坐标, 把该数组各项值赋成-50, 定义用于处理鼠标移动的函数(function mousemove(e)), 定义实现跟随鼠标的功能函数(function snaketext())
30毫秒后,再次执行该功能函数(setTimeout(“snaketext()”,30))。有了上述这些定义后就可以实现鼠标的移动功能 。
其中shubaiozou.htm的部分重要代码参见附录:

二、导航和底部文件
这类文件有:header.inc和footer.inc。这些文件就是装载在表格之中的,这两个(.inc)文件就是已经提到过的公共页面中的头部文件和底部文件。头部文件就是放在每个文件的开头的文件,底部文件是放在每个文件的底部,这两个文件的一些功能已经在前面第三章中描述过了,这里就不再描述了。有关代码参见附录。
三、页面内容
(一)、建筑物设计
这两个页面是建筑设计的内容,其功能和作用是让用户了解建筑行业和建筑设计方面的
相关知识。其中的技术有:两个页面都用了同一种技术,就是进入该页面后,每当移动鼠标时,就会有一行字跟随着鼠标移动,它是通过“JavaScript”语言实现的,当鼠标移动位置时,这行字的首字就去寻找鼠标所在的位置,所以当移动鼠标时,就会让你看到这行字也在闪动。就因为这样,使你错误的感觉到这行字会动。让你看起来很美观,该页面上主要显示的是文字的东西,只是让这些字都居中了,在文字两旁加载了两个图片。这样看上去非常美观。其实现过程是:可以从shubiaozou.htm文件中代码后的注释行里看出,具体的代码见附录。在这两个(.jsp)里就是用JSP里的动作标签<%@ include file=”filename”%>来完成的,在这两个文件里都用到了这样的语句,<%@ include file=”header.inc”%>,<%@ include file=”footer.inc”%>和<%@ include file=”shubiaozou.htm”%>。建筑设计图纸可以到我们公司的专卖店里买到。
它的效果如图5所示:

在这里插入图片描述

图5 建筑设计图
(二)、建筑设计样品
这三个页面是建筑案例的内容,其功能和作用是让用户了解本公司的一些建筑特色和建筑设计技术,这三个页面完全是显示本公司的建筑特色,本公司可以设计并建造各种建筑物,这里指的建筑物是只可供人们使用的一切建筑物(商品房),这三个页面显示了我们公司曾经设计并建造了的一些体现各种特色和各种类型的建筑物,它们体现了古典建筑的特点、现代化和浪漫别墅型的建筑物。设计这三个页面的技术是用HTML语言中的表格,用它把这些建筑图片部署得更加得体,使你看上去更加美观。我们公司还可以为你设计你想要的任何建筑图纸,并可以为你修建。
它的效果如图6所示:
在这里插入图片描述

图6 建筑样品图
(三)、房屋装修装潢设计
社会在进步,人类在发展,人们的各个方面的消费也不是过去的那么单纯,对自己的居所也要求更高了,就这样使得商品房有了一个很大的市场,这样又显现出另外一个市场,因为花钱买过来的商品房是苍白的,不可以使用,就需要装修、装潢,使其美观、舒适。本网站就是提供给有房屋装修、装潢设计,house_dedign.jsp,该页面直接就显示了本公司的一些成功例子,也同样也是使用HTML语言中的表格设计,把这两个图片装载在其中,使你看上去很舒服。
它的效果如图片7所示:
在这里插入图片描述

图7 房屋装修、装潢图

(四)、 汽车修理及案例
跟上述情况基本相同,在大城市里机动车辆非常之多,车辆众多,车出毛病的自然也很多,这样就使得很多人常为这样的一件事烦心,可是法律也没有一个合理的修车收费标准,很多人都拿这件事没有办法,这是因为这个市场还没有真正走上竞争市场,换句话说某家这样的修理公司或是修理店就能垄断当地的那个市场。我们公司拥有一批纯技术的蓝领工人,技术很高。服务态度非常之好,而且本公司还推出一项新服务,就是上门修理,或是用本公司的拖车载你的车到本公司所在地进行修理,修理好之后,还送车上门,甚至解决了你的痛苦。
(car_repair.jsp)页面显示了本公司的修理库、工厂和一些车的零件,使用HTML语言的表格技术把这些图片布局得合理美观。而(car_example.jsp)页面显示了一些被本公司修理后的车,仍然跟以前一样新,性能也没有任何减退。本公司专卖店里为你提供了大量的进口名牌新车和国产名牌车新车和二手车,进口的和国产的都有。您可以到本公司的专卖店里购买。
它的效果如图8所示:
在这里插入图片描述

图8 房屋装修、装潢图
(五)、 园林和公共广场设计
这两个页面体现了本公司在园林设计和公共广场设计方面的技术和特色,还布局了你个成
功样式在该页面,使你读本公司的技术和服务满意。这两个页面使用一种技术,就是HTML语言的框架技术,这样使得层次和页面都很清楚,使用户在浏览这些页面时更方便、视觉上更舒服。其中park_design.jsp包括有下面这些页面:park_design.jsp、park_design2.jsp、park_lest.jsp、park_right1.jsp、park_right2.jsp、park_right3.jsp、park_right4.jsp和park_riht5.jsp。它的效果图片列举两个如图9和图10所示:
这个是园林设计图,它是由框架来设计的。
在这里插入图片描述

图9 园林设计图
这个是园林设计中的一种设计,相地园林,这种园林主要是就地取材,将当地的好风景利用
到园林中来。
在这里插入图片描述

图10 相地园林图

第六章 网站的特色功能
一、 关于留言
(一)、 留言
留言页面是由(give_message.jsp)来实现的,它是实现用户与本网站的管理员的留言用户可以查看自己的留言。它的实现是与数据库的连接,前面第二章里已经描述了JavaBeans的相关知识,JavaBeans同样可以用来封装与数据库的连接,这里就不再重复描述,这里的方法不是用JavaBean来实现的,而是用另外一种方法实现。就是直接与数据库连接,建立与数据库的连接需要五个步骤:
1、 导如JDBC标准类库
JDBC(Java DateBase Connectivity ,Java数据库连接)是一种可执行SQL(Structured Query Language 结构化查询语言)语句的应用程序接口,为了将服务器
从客户端接收到的信息存如数据库,需要使用JDBC标准类库,所以需在此程序的开始加入以下语句:
import java.sql.*;
2、 注册数据库驱动程序
在一个JDBC的驱动程序被用来建立数据库连接之前,必须向数据库驱动程序管理
器注册该驱动程序。管理器的主要职责是保证所以的驱动程序对象可被JDBC的用户程序访问。当一个JDBC驱动程序被载入时,它将自动地在驱动程序管理器上注册。
可以通过调用Class.forName()方法来载如一个JDBC驱动程序:
String sDBDriver=”sun.jdbc.odbc.JdbcOdbcDriver”;
Class.forName(“sDBDriver”);
Class.forName()是Java的Class类的静态方法,它是使Java虚类机动态地寻找,载如并连接指定的类。如果该类无法被找到,则该方法将抛出ClassNotFoundException类的异常。
一个JDBC的驱动程序就是一个可以通过classpath找到的一个Java类。这里载入的JDBC_ODBC桥驱动程序就在sun.jdbc.odbc包中。
3、 建立数据库连接
载入有个正确的驱动程序后,就可以用它来建立与数据库的连接了,一个JDBC的数据库连接是用数据库URL来标记的。连接标记将告诉驱动程序管理器使用哪个驱动程序和连接哪个数据源。数据库URL的基本形式是:
jdbc:<JDBC驱动程序名>:<数据源标记>
URL的第1部分表示使用JDBC建立数据库连接。第2部分表示所使用的JDBC驱动程序名或网络协议名。第3部分是数据源标记,它映射所需连接的数据库。例如,我的数据库的数据源标记是datebase则同JDBC_ODBC桥连接该数据库所用的数据库URL为
Jdbc:odbc:database。
可以通过DriverManager类的静态方法getConnection()来建立一个数据库连接:
String sConnStr=”jdbc:odbc:database”;
Conn=DriverManager.getconnection(sConnStr);
对于需要用户注册的数据库,可以调用Conn=DriverManager.getconnection(sConnStr,“username”,”password”);
一旦建立了数据库的连接,就可以打开该目标数据库,并通过该连接向目标数据库
发送指令。SQL指令通常会执行查询、插入、更新、和删除等数据库操作。要执行SQL
指令必须通过Connection对象的createStatement()方法来创建一个sql 对象。Sql
对象提供了许多方法来执行不同的数据库操作。可以通过以下方式创建ssql对象:
stmt=conn.createStatement();
4、 对数据库里某表的操作
与数据库建立了连接以后,就可以进行数据操作了。数据操作包括查询、插入、更新和删除等操作。
(1) 查询数据
要进行查询操作,可以使用stmt对象的executeQuery()方法。executeQuery()方法接受一个SQL指令字符串作为参数,返回含查询结果信息的ResultSet对象。
(2) 插入、更新和删除数据
对插入、更新和删除数据等操作。可以使用executeUpdate()方法。而对数据库数据的查询操作,可以使用executeQuery()方法。
5、 关闭
因为数据库连接是宝贵和有限的资源,因此必须在数据库操作完毕后及时释放数据库连接。Connection对象提供了一个简单的关闭数据库连接的方法close()。例如:conn.close():。下面定义closeStmt()和closeConn()方法,具体如下:
public void closeStmt(){
try{
stmt.close();
}
catch(SQLException e){
e.printstackTrace();
}
}
public void closeConn(){
try{
conn.close();
}
catch(SQLException e){
e.printstackTrace();
}
}

除此之外,还应该关闭ResultSet对象(如果是用JavaBeans封装的,这一步将在某个应用JSP的页面中去完成,对象rs的关闭是rs.close()。尽管虚类机的垃圾处理器()最终总会释放不再使用的资源,但既然这些对象已经不再使用 ,及时释放资源总是好是编程习惯。
如果是用JavaBeans封装的,编写完之后,要进行编译。把编译通过后生成的字节码文件放在上述设置的目录下。如果是直接与数据库创建连接的,就不需要做这一步,但是从上述的描述中可以知道直接与数据库连接没有用JavaBeans封装与数据库的连接的好。
其留言的效果图片如下所示:
在这里插入图片描述

图11 给我留言图
(二)、查看留言
这个页面是由(look_message.jsp)来实现的,它的功能就让用户查看自己的留言,确
定自己的留言是否留言成功,它是通过JSP的内置对象session来实现的。Session对象:
当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象。这个session对象调用相应的方法可以存储客户在访问各个页面期间提交的各种信息,比如,我的留言里的留言人、表情和留言内容等信息。这个session对象被分配了一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端。存放在客户的Cookie中。这样,session对象和客户之间就建立起一一对应的关系,即每个客户都对应着一个session对象,
这些session对象互不相同,具有不同的号码。JSP引擎为每个客户启动一个线程,也就是说,JSP引擎为每个线程分配不同的Session对象。当客户当客户再访问连接该服务器的其他的页面时,或从该服务器连接到其他服务器再回到该服务器时,JSP对象不再分配给客户新的session对象,而是使用完全相同的一个,直到客户关闭浏览器重新打开浏览器再连接到该服务器时,服务器为该客户在创建一个新的session对象。
其实现的这个功能的部分代码参见附录。
关于留言和查看留言的功能结构图:

它的效果如图13所示:
在这里插入图片描述

图13 查看留言图
二、关于聊天
这个页面是由(chat.jsp)来实现的,它的功能就是让用户们进行聊天,只要你输入你的名字和你的聊天内容,就可以和所有的用户进行聊天,但是就是没有数据库来管理这些数据,但是只要服务器不关,你的内容都存在,它是通过JSP的内置对象application来实现的,application对象是一个非常的对象,一旦创建了application对象,除非服务器关闭,否则application对象将一直存在。Application对象的这些特性为程序开发人员多个Web Application中的多个用户中共享信息提供了方便,就是因为如此,就可以不用数据库来实现聊天功能。它包含有(chat.jsp、messagePane.jsp和showmessage.jsp)三个页面。
具体的实现过程为:客户通过caht.jap向messagePane.jsp页面提交留言人、留言表情和留言内容,messagePane.jsp页面获取这些内容后,用同步方法将这些内容添加到一个先向量中,然后将这个向量再添加到application对象中。当用户单击查看留言内容时,showMessage.jsp负责显示所有客户的聊天内容,即从application对象中取出向量,然后遍历向量中存储的信息。
在这我使用了向量这种数据结构,Java的java.util包中的Vector类负责创建一个向量对象。这种数据结构跟数组类似,只要会使用数组,就很容易会使用向量。当创一个向量时,不用象数组那样必须要给出数组的大小。向量创建后,例如,Vector v=new Vector();v可以使用add(Object 0)把任何对象添加到向量的末尾。向量的大小会自动的增加;v可以使用add(int index,Object o)把一个对象添加到该向量的指定的位置;v 可以使用elementAt(int index)获取指定索引处的元素(索引初始位置的值是0);v 可以使用size()获取向量所含有的元素的个数。另外,与数组不同的是向量的元素不要求是一致的。虽然可以把任何一种Java的对象放入一个向量,但是,当从向量中取出一个元素时,必须使用强制类型转化运算符,将其转化为原来的类型。
其实现这个功能的部分重要代码参见附录。
它的效果如图14所示:
在这里插入图片描述

图14 聊天图
(showmessage.jsp)的代码参见附录。
它的效果如图15所示:
在这里插入图片描述

图15 显示聊天内容图
三、公司专卖店
公司经营的所有货物已经列出来了,你可以到公司专卖店里购买你想要的货物,你可以添加
货物到你的购物车里,也可以删除你已经选择了的货物,不管是你添加的货物,还是你删除货物
之后,都可以通过这里查看到你的购物车里的货物。它的实现也是通过JavaBeans来封装的,这
里只有一个JavaBeans,可是它能完全实现了上述那些功能,再一次体现了JavaBeans在JSP中
的好处,非常方便。
实现公司专卖店这个功能的文件有Car.java、car.jsp、add.jsp、selectRemove.jsp、和
removeWork.jsp。把Car.java编译生成的字节码文件Car.class存放在上述设置的目录下,
car.jsp 主要完成提交的功能,也就是把您选择的货物,你将买的货物的数量,以及这种货
物的计量单位,选择好之后,点击“提交添加”,这样就转向add.jsp页面,这个页面调用JavaBeans,
把您刚才购买的货物添加到您的购物车里,通过调用Car.java里的“添加商品到购物车()“方
法就完成了这个过程。
add.jsp主要是处理car.jsp提交上来的信息,将其添加到购物车里,再将刚才那些信息存入到一个Hashtable里,通过调用”列出购物车里的商品()“将您的购物车里的货物。处理完这些后,您还可以点击“继续购物”,当您点击它之后,就转向car.jsp页面,又回到开始购物,只是现在的页面里多了您刚才选择的货物,即是您的购物车里的货物。
selectRemove.jsp主要是处理你的购物车里的货物,可以选择您不想要的货物,您选择好货物之后,提交删除后,你的购物车里就少了货物。完成之后,您还可以点击“继续购物”,然后又转向car.jap把任务又交给这个页面去处理。
removeWork.jsp页面处理selectRemove.jsp页面提交上来的信息,它的删除的过程就是把您选择的货物从您的购物车移出,其实是从刚才创建的Hashtable表里删除货物,删除之后还是把剩余的货物通过调用”列出购物车里的商品()“方法列举出来。
其功能的结构图为:

在这里插入图片描述

图16 公司专卖店功能结构图

关于本公司专卖店这个功能共有四个页面,每个页面的作用在上述已经描述了,每个页面的大致内容基本相同,只是要实现的功能就完全不同。这里列举其中一个内容的效果图片如图17:
在这里插入图片描述

图17 公司专卖店图

本章用了纯JSP技术,用到了JSP的两个内置对象,一个是session,另外一个是application,session用来在用户之间分别保存用户信息,这与application对象不同,每个用户的application的对象都是一样的,每个用户都具有application对象的一个副本。所以这也是它能实现聊天功能的一个原因,而每个用户的session对象都是不同的,当用户登录以后,系统就为其生成一个session对象,当用户退出后,这个session对象才被注销。

结 束 语
省略

附 录
相关的代码
省略

参考文献
[1] 张孝祥主编.Java 就业培训教程[M].清华大学出版社,2003-9第一版

[2] 杨学榆、王志军、刘同利编著.JSP入门与提高[M].清华大学出版社,2002-3第一版

[3] 孙卫琴、李洪成编著.Tomcat与Java web 开发技术详解[M].电子工业出版社,2002-6

[4] 苗雪兰、刘瑞新、王怀峰编著.数据库系统原理及应用教程[M].机械工业出版社,2003-1第一版


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于JSP+sqlserver的环境美容服务公司网站设计与实现(源码+文档)_jsp_BS架构_环境美容服务公司网站.zip
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值