物流管理系统--课程设计毕业设计.doc

上传人:good****022 文档编号:116644006 上传时间:2022-07-06 格式:DOC 页数:40 大小:4.90MB
返回 下载 相关 举报
物流管理系统--课程设计毕业设计.doc_第1页
第1页 / 共40页
物流管理系统--课程设计毕业设计.doc_第2页
第2页 / 共40页
物流管理系统--课程设计毕业设计.doc_第3页
第3页 / 共40页
点击查看更多>>
资源描述
雁捷物流管理系统学院:信息管理学院专业:信息管理与信息系统组长 组员:指导教师: 目录雁捷物流管理系统1目录2一、系统规划与需求分析31. 系统目标与规划32. 业务描述33. 需求分析3二、概念模型设计与系统模块划分41. 概念模型设计42. 系统模块划分5三、逻辑模型设计与系统模块设计7逻辑模型设计7四、 物理模型设计与数据库实施71. 约束设计72. 存储过程设计83. 视图设计104. 触发器设计115. 备份和恢复设计13五、系统开发与实现131、 系统实现方法132、系统主要功能与界面13六、测试、分析和总结341. 系统测试与分析342.遇到的问题343. 总结与展望34 七、系统实现的关键代码 1、主页实现实时更新发单情况 35 2、发单的实现 36一、系统规划与需求分析1. 系统目标与规划雁捷物流管理系统旨在利用社会零散时间解决同城或异地捎带需求,最大化的满足客户的需求,并运用移动互联网技术搭建一个随时随地互动的信息管理平台。我们的目标是,系统所提供的信息能够全面覆盖各个城市,每个城市的大街小巷,力求建立一个发单、抢单、配送为一线的物流网络。2. 业务描述当下,快递业务发展十分迅猛,但仅限于固定的物流公司来进行配送,雁捷快递平台可让“人人成为快递员”,无论你是企业员工、学生、个体经营者,还是自由职业者,只要你有想法,并且符合基本条件,都可以申请成为快递员,让每个申请者都能“顺路”赚钱,而且客户也能享受快捷、便宜的配送服务。我们作为第三方平台提供物流信息,让想要运送货物的人得到数据后根据自己的运输能力进行抢单,让发单人可根据多方面的数据进行筛选,选择运输方。使发单人和抢单人可以有效的进行信息交流。3. 需求分析3.1数据管理需求目前,想要发货的人很多,可以配送货物的人也很多,但是两者都不知道对方的信息,或者说按传统方式发单者只能选择固定的物流公司,了解不到物流公司的服务水平、货物的配送效率,更不能了解配送人员的情况。而快递员只能配送公司派送下来的物件,不能选择性的配送。如果这些信息能公开,能大大提高发货人和快递员的工作效率,雁捷物流管理系统就是将信息收集起来,经过整理后提供给需求者。我们作为第三方平台,对这些数据进行有效管理和监督,能增加信息交流的匹配性和安全性。3.2创新设计需求3.2.1.抢单介绍:按照时间累进原则抢单第一次抢单:首先顾客下单后,第一家快递公司抢下第一单并给出价格,之后顾客根据价格、历史评价、交通工具类型、押金金额筛选;第二次抢单:过2分钟之后放开第二次抢单机会,这次投放两个竞争名额,第一家快递公司仍在筛选名额中。第三次抢单:过3分钟之后放开第三次抢单机会,此次放开三个竞争名额,前三家快递公司仍在筛选名额中。剩余抢单机会:过4分钟之后无限制抢单。该创新点是为了给客户一个公平交易的平台,还能增加受理订单的效率,更重要的是提高抢单的积极性。公平性体现在使价格透明化,抢单者可以公平竞价,发单人可以根据个抢单者的报价和配送方案选择一个最优的解决方案,可以避免盲目选择一个抢单人垄断配送的情况。3.3.2地图定位及路线推荐地图定位可以显示3公里以内的订单,抢单者可以根据自身情况选择想要配送的订单,一旦抢单成功后,地图还可根据目的地和发单者的所在位置推荐多条路线。这个创新点可以使系统操作变得友好、方便,减少直接搜索带来的繁琐问题,一个系统的开发设计要考虑到用户操作是否流畅和人性化,这个设计可以直观的将信息展示给用户,避免查询带来的误差和低效率。二、概念模型设计与系统模块划分1. 概念模型设计本阶段设计出7个关系:l 用户表:用户ID,昵称,姓名,身份证号,密码,手机号,邮箱,等级,注册时间,证件照;l 评价表:序号,服务态度,到货速度,完整性满意度,心得;l 抢单表:抢单编号,运输费用,保证金,交通工具,手机号,目前所在地点,抢单时间,状态;l 发单表:发单编号,发件人姓名,发件人手机号,收件人姓名,收件人手机号,取货地址,预计送达时间,保值;l 订单明细表:订单号,成交时间,状态,发单用户,抢单用户,交通工具,运输费用;l 物流信息表:发送物流信息时间,地点,签收照片;l 物品表:物品编号,物品名称,物品类别,重量,体积,价值,物品照片。具体语句描述:1. 一名用户可以发出多条评价,一条评价只针对一名用户;2. 一个订单明细可对应多次评价,但一条评价只能对应一个订单明细;3. 一名用户(发单者)可以发出多个订单,但一个订单只能由一名用户(发单者)发出;4. 一名用户(抢单者)可以抢多个订单,但一个订单只能由一名用户(抢单者)成功抢到;5. 一名用户可以配送多个物品,但一个物品只能由一名用户配送;6. 一条订单只能发出一个物品,一个物品只能在一个发单表上显示;7. 一个订单明细给追踪到多次物流信息,而一个物流信息对应一个订单明细;具体细节如图所示:2. 系统模块划分总体设计:物流信息物品信息订单明细评价管理建立各种数据库对象雁捷物流管理系统抢单发单用户信息用户信息管理:用户信息管理用户信息录入用户信息查询用户信息修改物流信息管理:物流信息管理物流信息录入物流信息查询物流信息修改评价管理:评价管理评价信息录入评价信息审核评价信息发布订单管理:订单管理订单审核订单发布订单统计三、逻辑模型设计与系统模块设计 逻辑模型设计利用powerdesigner将概念模型转换成物理模型,具体表述如下:l 用户表的主关键字是用户ID;l 发单表的主关键字是发单编号,参照用户表的用户ID和物品表的物品编号;l 抢单表的主关键字是抢单编号,参照用户表的用户ID;l 评价表的主关键字是序号,参照用户表的用户ID和订单明细表的订单号;l 物流信息表的主关键字是发送物流信息时间,参照用户表的用户ID和订单明细表的订单号;4、 物理模型设计与数据库实施1. 约束设计本阶段添加了一些约束,以确保数据的完整与正确:l 规定手机号一定是11位数字l 规定邮箱的格式中必须有l 规定身份证号是18位数字或18位字母与数字的组合l 规定一个用户不能既是发单用户又是抢单用户,即不能自己发的单自己去抢l 实现可以重复创建数据库和表l 用户的注册时间默认值是系统获取的当前时间l 规定了一下字段的取值范围2. 存储过程设计(1)存储过程(6个):A. 查询目的地为destination的物品及订单信息B. 查询取货地址为pick_site的物品及订单信息C. 查询状态为state的抢单信息D. 查询某个抢单用户抢单成功的所抢到的发单信息、物品信息E. 查询抢单用户抢单成功的次数F. 查询最近发单用户最近成交的记录(2)存储过程代码:-查询目的地为destination的物品及订单信息create procedure p1destination nvarchar(60)=%asselect 物品名称,物品类别,重量,体积,价值,预计送达时间,状态,取货地址from 货物.物品 join 订单.发单 on 物品.物品编号=发单.物品编号where 目的地 like destinationexecute p1 destination=%北京%-查询取货地址为pick_site的物品及订单信息create procedure p2pick_site nvarchar(60)=%asselect 物品名称,物品类别,重量,体积,价值,预计送达时间,状态,取货地址from 货物.物品 join 订单.发单 on 物品.物品编号=发单.物品编号where 目的地 like pick_siteexecute p2 pick_site=%北京%-查询状态为state的抢单信息create procedure p3state varchar(10),user char(20)asselect 运输费用,保证金,交通工具,手机号 ,目前所在地点,抢单时间,状态from 订单.抢单where 状态=state and 用户ID=userexecute p3 state=,user=-查询某个抢单用户抢单成功的所抢到的发单信息、物品信息create procedure p4state varchar(10),user char(20)asselect 订单明细.运输费用,保证金,订单明细.交通工具,手机号 ,目前所在地点,抢单时间,抢单.状态,成交时间,订单号,物品名称,物品类别,重量,体积,价值,预计送达时间,取货地址,收件人姓名,收件人手机号,目的地from 订单.抢单 join 资料.订单明细on 抢单.用户ID=订单明细.抢单用户join 订单.发单 on 发单.用户ID=订单明细.发单用户join 货物.物品 on 发单.物品编号=物品.物品编号where 抢单.状态=state and 抢单.用户ID=userexecute p4 state=抢单成功,user=-查询抢单用户抢单成功的次数create procedure p5id char(20)asdeclare count intselect count=COUNT(抢单用户)from 资料.订单明细 where 抢单用户=idreturn countdeclare count intcount=execute p5 id=-查询最近发单用户最近成交的记录create procedure p6data1 datetime,data2 datetime,user char(20)asselect 订单号,成交时间,交通工具,运输费用,物品名称,物品类别from 资料.订单明细 join 订单.发单on 发单.用户ID=订单明细.发单用户join 货物.物品 on 发单.物品编号=物品.物品编号where 成交时间data2 and 订单明细.发单用户=userexecute p6 data1=,data2=,user=3. 视图设计(1)视图(4个):A. 将发单表和物品表连接建立一个视图,在每一个供抢单者都能查询的发单信息B.将发单表和物品表连接建立一个视图,待发单抢单双方达成交易,供抢单成功者可以查询到的更详细的信息C.将用户表和评价表连接建立一个视图,发单者可以从中看到抢他所发的人的以往的评价,以便决定是否由此人抢到他的单子。D.将订单明细表和物流信息表连接起来建立一个视图(2) 代码:-将发单表和物品表连接建立一个视图,在每一个供抢单者都能查询的 发单信息create view v1asselect 物品名称,物品类别,重量,体积,价值,物品照片,取货地址,目的地,预计送达时间,状态from 货物.物品join 订单.发单 on 物品.物品编号=发单.物品编号-将发单表和物品表连接建立一个视图,待发单抢单双方达成交易,供抢单成功者可以查询到的更详细的信息create view v2asselect 物品名称,物品类别,重量,体积,价值,物品照片,取货地址,目的地,预计送达时间,状态,发件人姓名,发件人手机号,收件人姓名,收件人手机号from 货物.物品 join 订单.发单 on 物品.物品编号=发单.物品编号-将用户表和评价表连接建立一个视图,发单者可以从中看到抢他所发的人的以往的评价,以便决定是否由此人抢到他的单子。create view v3asselect 昵称,等级,注册时间,AVG(服务态度)以往服务态度,AVG(到货速度)以往到货速度,AVG(完整性满意度)以往完整性满意度from 资料.用户 join 资料.评价 on 用户.用户ID=评价.抢单用户-将订单明细表和物流信息表连接起来建立一个视图create view v4asselect 订单号,成交时间,状态,地点,运输费用,交通工具,发送物流信息时间,签收照片from 资料.订单明细 join 货物.物流信息 on 订单明细.订单号=物流信息.订单号4. 触发器设计(1)触发器(3个):A.当进行操作时抢单用户的保证金的金额小于发单用户所给出的物品的价值时,会给出提示B.用户抢单失败时会给出提示C.只有等级时F及F以上的用户才能抢价值在300及其以上的单子,只有等级是C及C以上的用户才能抢价值在600及其以上的单子。(2)代码:-当进行操作时抢单用户的保证金的金额小于发单用户所给出的物品的价值时,会给出提示create trigger t1on 订单.抢单for insert,delete,updateasdeclare deposit money,value moneyselect deposit=保证金 from inserted where 抢单编号=select value=价值 from 货物.物品 where 物品编号 in (select 物品编号 from 订单.发单 where 发单编号 in(select 发单编号 from 订单.抢单 where 抢单编号=)if depositvaluebegin raiserror(你所剩的保证金已小于你所抢发单物品的价值!,15,10) end-用户抢单失败时会给出提示create trigger t2on 订单.抢单 for update asdeclare state varchar(10)select state=状态 from updated if state=抢单失败begin raiserror(对不起,你已抢单失败!,15,10) endelse if state=抢单成功begin raiserror(恭喜你,你已抢单成功!,15,10) end-只有等级时F及F以上的用户才能抢价值在及其以上的单子,只有等级是C及C以上的用户才能抢价值在及其以上的单子create trigger t3on 资料. 用户for updateasdeclare deji char(10)select deji=等级 from updatedif state in (A,B,C,D,E)begin raiserror(恭喜你,你已能抢价值在及其以上的单子!,15,10) endelse if state in (A,B,C)begin raiserror(恭喜你,你已能抢价值在及其以上的单子!,15,10) end5. 备份和恢复设计备份整个数据库到C:dumpdumpfull.bak:(要改备份地址)BACKUP DATABASE 名称 TO DISK=C:。五、系统开发与实现1、 系统实现方法数据库建模阶段使用的软件是powerdesigner15.0,数据库使用的软件是SQL server 2014,建模生成的sql文件引入SQL server,加上一些列级和表级约束,然后执行那些sql语句用以建立数据库和表。网页版编程使用的软件是Myeclipse 2014,在Myeclipse中新建web工程,采用MVC模式在jsp中进行页面设计,在其中多次引入js文件,出现了许多美观、使用简便的jquery控件。servlet作为控制器对jsp页面传来的值进行处理,连接到数据库并对数据库中的数据库进行插入、删除、更新等操作,并进行页面间的跳转。在web工程中还用到了javabean。2、 系统主要功能与界面(1) 基本功能:登陆,注册,用户信息查询及修改,密码修改等。创建用户表,存储用户详细信息。可实现查询,更新,删除,插入等基本功能。网页版:A.首页:进入网页首先进入到首页,此页面左侧可根据物品类别、取货地址、送货地址、取货时间等条件搜索满足条件的发单,也可在搜索框内进行关键字搜索。在此页面中间有最近最新的一些发单情况,以表格的形式展示出来,表格中包括发单时间、取货地址、送货地址、物品类别等关于发单概况,每行后面都有一个详细,点击即可查看相对应的发单详情;刷新页面即可刷新发单信息。在此页面右部有“我要发单”、“我要抢单”两个链接,点击即可进行发单、抢单。未登录时:有登录和注册两个链接登录后进入到首页:原本的登录、注册链接变为当前登录用户的用户名和一个退出链接。B.注册页面:注册页面昵称、密码不能为空;两次输入的密码需一致;电子邮箱和手机号必须是为注册的,在数据库中邮箱和手机号定义了唯一约束。用户名或密码为空时:两次输入的密码不相同时:C.登录页面:注册成功后转到登录页面,即可根据注册的的信息登录,用户名处填用户ID、手机号、邮箱均可。登录成功后跳转到首页。D.个人信息页面:登录成功后,可查看当前用户的个人信息,如果一开始没有登录就要进入到此页面,则会先跳到登录页面,然后才能进入到此页面。点击页面下面的修改按钮可对个人信息进行修改。E.修改个人信息页面:能够上传图片将其存入数据库:修改成功再次转到个人信息页面查看修改后的个人信息:F.修改密码页面:修改密码页面要求新密码与原来的旧密码不能一样,新密码与确认的新密码要求是相同的。新密码与确认新密码输入的不一致:原密码与新密码相同:(2) 发单功能:包括语音发单(借助移动应用实现),手动发单。创建发单表和物品表,使用户可以通过多种方式进行发单。发单分为3步,分为3个页面,一步即一个页面,具体步骤见下。第一步填写物品信息:第二步:填写取货信息:取货时间一栏聚焦可出现下拉的日期控件;取货地点一栏有省、市、地区三级联动js控件可选择地区,其后跟着的输入框用于输入详细地址。下拉日历:省、市、地区三级联动下拉选择:第三步:填写收货信息:点击提交后,在首页中可看到刚刚发单成功的发单信息:然后点击详细可查看到刚刚发单的详细情况,点击页面下方的“我要抢单”这一链接可以进行抢单:(3) 抢单功能:创建抢单表,存储抢单信息,可通过存储过程实现快速调用关系,目的是为了保证查询的有效性和及时性,该功能使抢单者积极的参与发单。抢单操作方式是:抢单者在点击“我要抢单”后进入到此页面填写抢单信息。填写完后点击“提交”系统会提醒你是第几个抢单的,前面有几个待处理的抢单。抢单的时候要物品价值超过一定的数额就只有等级高的的才能抢。只有等级时F及F以上的用户才能抢价值在300元及其以上的单子,只有等级是C及C以上的用户才能抢价值在600及其以上的单子。如果你的等级不够去抢价值高的发单是会抢单失败,系统会给出提醒。抢单信息提交后,抢单者所要做的就是等待,稍后等发单者确定选中了哪个抢单者送后,系统会提醒抢单者抢单成功或失败了。(4)查询功能:包含查询物流信息等基本功能,还有地图定位功能,其可用手机GPS实现,查询到附近的发单信息,还可以按照条件进行筛选,找到满意的订单和配送路线。A.物流信息页面:发单者可以查看物流信息,物流信息以时光轴的形式展示出来。页面设计富有特色,简洁,明了,醒目。而且美观大方。(4)其他功能:系统中增加了许多比较人性化的功能,比如配送服务评价,常用地址添加等。A.评价页面: 抢单成功者将货物送达后,发单者可对抢单者的服务给出评价。根据评价换算成积分,积分累计得越多抢单用户等级升级得越快。为避免用户刷积分的现象,发单者发的单不允许发单者自己去抢自己发的单。评价等级是以星级为依据B.常用地址页面: 填写发单信息的取货和送货地址时如果要填写的信息已经保存到了再了常用地址中可直接点击常用地址添加,可以使操作更加简便。C.添加常用地址页面: 在此页面中添加常用联系人添加成功后跳转到常用地址页面,可以看到添加成功后的常用地址列表以下是app版界面:App只完成了一些页面,功能也只实现了一部分,还有许多地方需要完善。调试过程中经常遇到许多问题。登录页面:如同大部分app登录页面一样简洁大方第一次登录的介绍页面: 首页:和网页版的一样有最新的发单情况,能够筛选和搜索满足条件的发单,还能根据定位到的用户的当前位置为用户推荐在用户附近的发单发单页面:点击页面下部的发单按钮,进入到发单页面可进行文字发单和语音发单,还可查询用户已发过的各种状态的发单。文字发单页面:与网页版内容相同,但并未分为3步,所有发单信息都在一个页面中填写 我的抢单页面:在此页面中可查询用户各种状态的抢单。我要抢单页面:用户在此页面进行抢单 设置页面:在此页面对个人信息、我的支出、我的收入等进行设置,还可以设置有新的发单时,是否接受发单,并设置满足什么条件的发单才被用户所接收 我们整个项目分为了网页版和app版,有许多功能在网页版中无法实现,只能在app中实现,如:定位、导航等功能。六、测试、分析和总结1. 系统测试与分析 我直接在Myeclipse自带的浏览器中调试运行程序,我的页面设计十分的简单,以浅蓝、浅灰为主色,简单的色调给人以舒适的感觉。没有使用漂亮的背景图片,背景图片不好确定大小,在界面大小不同的浏览器中效果不同,图片小了会不太好看,使界面显得很乱,所以我没有使用背景图片页面显得简约大方,像百度的设计十分的简单,却深受大家的喜爱。每个页面都有着相同的模式,显得整齐一致。在功能方面还是比较齐全,我们本着用户友好型的原则,从用户的角度出发设计整个项目,务必使用户使用起来方便、快捷,让用户感觉到使用我们的产品是一种享受。当然我们的系统还有许多不足之处,许多功能还有加强、完善,代码不够简洁,应该更加注意到使用性。2.遇到的问题在web工程编程、调试过程遇到了许多的问题。运行时多次遇到以前没见过的错误,一开始总让我措手不及,束手无策我就上网查找 ,发现网上也有许多遇到相同错误在网上寻求答案的人,网上也给出了一些解决方案,但大多都无法解决我的问题,然后我又向人请教,翻书查资料,好不容易才能解决,但也有一部分问题是我至今也未解决的。比如图片的上传,图片的处理。图片在数据库中的以image这一数据类型存储的,而我不知道在java中相对应的数据类型应该是什么,然后我试着在Java中以InputStream这一数据类型定义,然而在获取从jsp页面传过来的图片时,总是显示找不到图片,我不知道该怎么解决这一问题。3. 总结与展望此次比赛,让我们了解了系统开发的全过程,要经历5个阶段:系统规划阶段、系统分析阶段、系统设计阶段、系统实施阶段和系统维护和评价阶段。系统规划阶段的任务主要是,确定要做什么方面的系统,根据需要提出一个新系统的总体方案,并对这些方案进行可行性分析。系统分析阶段的任务是根据系统开发计划所确定的范围,对目标系统进行深入调查,与其类似系统进行比较,找出目标系统的局限性,并进行修改和创新。而且,这个阶段要设计出逻辑模型。系统设计阶段回答了目标系统“怎么做”的问题,具体设计实现逻辑模型的技术方案,也就是物理模型。系统实施阶段就是将问题用java语言实现功能,之后对系统进行调试和维护。经历以上阶段后,发现许多方面需要多思考几个方案,实现功能时可以再考虑代码的简洁性和规范性。希望我们的系统更加完善,功能更加全面,使用起来更加人性化。在满足客户的需求上,提供更加有创新、实用的功能。七、系统实现关键的代码1、主页实现实时更新发单情况:在jsp页面嵌入java 代码实现 动 态 信 息 发布日期 取货地点 送货地点 物品名称 操作 pagecount) showpage=pagecount; else if(showpage=0) showpage=1; rs.absolute(showpage-1)*pagesize+1);for(int i=1;i a href=/publish_show.jsp?id=详细 共页   a href=Main.jsp?topage=第一页   a href=Main.jsp?topage=上一页   a href=Main.jsp?topage=下一页   a href=Main.jsp?topage=最后一页 2、发单的实现:第一步填写物品信息后点下一步便将这些信息存到了数据库中的物品表中,并将物品编号通过会话传值。public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException int r1=(int)(Math.random()*(10);long now = System.currentTimeMillis();String id =w+String.valueOf(now)+String.valueOf(r1);String name=new String(request.getParameter(name).getBytes(iso-8859-1),utf-8);String category=new String(request.getParameter(category).getBytes(iso-8859-1),utf-8);BigDecimal weight=new BigDecimal(request.getParameter(weigh);BigDecimal voluem=new BigDecimal(request.getParameter(voluem);String value=request.getParameter(value);String filename=new String(request.getParameter(image).getBytes(iso-8859-1),utf-8);HttpSession session = request.getSession();session.setAttribute(id, id);Goods g=new Goods();g.setGoodsId(id);g.setGoodsname(name);g.setCategory(category);g.setWeight(weight);g.setVoluem(voluem);g.setValue(value);g.add();RequestDispatcher rd = request.getRequestDispatcher(./publish2.jsp); rd.forward(request,response);第二步填写完取货系信息点击下一步后将传递到servlet中的值通过会话传值。public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String fname=new String(request.getParameter(fname).getBytes(iso-8859-1),utf-8);String fphone=new String(request.getParameter(fphone).getBytes(iso-8859-1),utf-8);String ftime=new String(request.getParameter(day).getBytes(iso-8859-1),utf-8);String area=new String(request.getParameter(area).getBytes(iso-8859-1),utf-8);String xiangxi=new String(request.getParameter(xiangxi).getBytes(iso-8859-1),utf-8);String address=area+xiangxi;System.out.print(address);HttpSession session=request.getSession();session.setAttribute(fname, fname);session.setAttribute(fphone, fphone);session.setAttribute(ftime, ftime);session.setAttribute(address, address);RequestDispatcher rd = request.getRequestDispatcher(./publish3.jsp); rd.forward(request,response);第三步填写完送货信息提交后,获取会话传过来的物品编号和取货信息,和表单传来的值,将这些值插入到数据库中大发单表中:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String sname=new String(request.getParameter(fname).getBytes(iso-8859-1),utf-8);String sphone=new String(request.getParameter(fphone).getBytes(iso-8859-1),utf-8);String stime=new String(request.getParameter(day).getBytes(iso-8859-1),utf-8);String area=new String(request.getParameter(area).getBytes(iso-8859-1),utf-8);String xiangxi=new String(request.getParameter(xiangxi).getBytes(iso-8859-1),utf-8);String location=area+xiangxi;String baozhi=request.getParameter(baozhi);HttpSession session=request.getSession();String fname=(String)session.getAttribute(fname);String fphone=(String)session.getAttribute(fphone);String ftime=(String)session.getAttribute(ftime);String address=(String)session.getAttribute(address);String id=(String)session.getAttribute(id);System.out.print(address);int r1=(int)(Math.random()*(10);int r2=(int)(Math.random()*(10);int r3=(int)(Math.random()*(10);long now = System.currentTimeMillis();String suiji =s+String.valueOf(now)+String.valueOf(r1)+r2+r3;String userId=(String)session.getAttribute(username);User user= new User();user.setEmail(userId);user.setPhone(userId);user.setUserId(userId);user.GetId();String use=user.getUserId();Goods g=new Goods();g.setSuiji(suiji);g.setGoodsId(id);g.setUserId(use);g.setSname(sname);g.setSphone(sphone);g.setStime(stime);g.setLocation(location);g.setFname(fname);g.setFphone(fphone);g.setFtime(ftime);g.setAddress(address);g.setBaozhi(baozhi);if(g.write()!=0)RequestDispatcher rd = request.getRequestDispatcher(./publish3.jsp); rd.forward(request,response);
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 医学试题


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!