计算机《程序设计综合训练》集中实践报告文档格式.docx
- 文档编号:18914343
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:25
- 大小:1.61MB
计算机《程序设计综合训练》集中实践报告文档格式.docx
《计算机《程序设计综合训练》集中实践报告文档格式.docx》由会员分享,可在线阅读,更多相关《计算机《程序设计综合训练》集中实践报告文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
1.添加商品
2.查询商品
(3)系统功能:
1.将一定时间内没有付款的订单,修改为过期状态
2.权限控制(买家不能访问,卖家添加商品和查询商品的功能)
3.配置错误页面
(4)前台功能需求:
前台主要包括,商品展示,购物车管理,我的订单,用户管理,商品管理。
1.商品展示:
实现商品预览,商品明细,分类检索功能;
具体是
(1)该模块主要是显示最新商品,热卖商品,以及打折促销的商品
(2)商品分类检索。
2.购物车:
实现添加、删除商品,商品数量修改,清空购物车,结算功能。
3.我的订单:
实现订单确认,订单列表,删除订单,查询明细功能;
具体是:
a.会员可以通过组合搜索或者快速搜索查找所需要的商品,可以查看返回结果中的某一具体商品信息,能够对该商品进行评论,如果暂时不想购买该商品,可以把该商品加入收藏夹,也可以把加入购物车购买该商品,会员可以查看自己的购物车,并对购物车的物品进行修改,生成订单;
b.生成订单后,可以通过拨打客服热线,取消该订单。
c.客户确认购买号即生成一个唯一的订单号,客户依此号码可以查询所购商品情况。
4.用户管理:
实现登入/登出,用户注册,信息修改功能。
(a)非会员可以通过注册成为网上购物系统会员;
会员登录系统后,才能够查看个人信息,才能够对商品进行评论,才能够购买商品;
若会员忘记了自己的密码,可以通过注册时候填写的邮箱向系统要回自己的会员密码。
对于自己登陆界面风格的管理。
(b)会员登录后,可以查看自己账号的相关信息,可以查看以往购买过的商品,感兴趣的新商品,个人信息汇总,修改个人信息,个人消费积分纪录,查看收藏夹,查看个人历史订单等信息。
(5)后台功能需求:
后台用于管理员对商品的管理,后台提供会员管理模块,订单管理模块,商品管理模块,信息反馈模块,消息发布模块。
1.新建一个webproject
2.拷贝项目静态资源(即前端页面的jsp,css样式等)然后部署一下项目到tomcat,看看拷贝的静态资源有没有问题。
3.定义项目开发结构
4.导入项目依赖的jar包
5.导入工具类
5.配置文件
文件内容:
注意用户名和密码使用自己的数据库的
<
?
xmlversion="
1.0"
encoding="
UTF-8"
>
c3p0-config>
<
!
--默认配置,如果没有指定则使用这个配置-->
default-config>
<
propertyname="
driverClass"
com.mysql.jdbc.Driver<
/property>
jdbcUrl"
jdbc:
mysql:
//127.0.0.1:
3306/estore<
user"
root<
password"
/default-config>
/c3p0-config>
7.配置全站乱码过滤器
复制该文件到项目,放入cn.itcast.filter包中
在web.xml中配置过滤器,将下面的代码复制到web.xml中
filter>
filter-name>
GenericEncodingFilter<
/filter-name>
filter-class>
cn.itcast.filter.GenericEncodingFilter<
/filter-class>
/filter>
filter-mapping>
<
url-pattern>
/*<
/url-pattern>
/filter-mapping>
效果如红框中所示:
8.数据库设计:
我们在实际的开发中,不同的项目使用的数据库也不同,同样,我们的estore项目,也需要设计一个数据库。
9.新建数据库:
导入数据库文件
执行estore.sql
10.分析数据库表结构
使用E-R图分析数据库表
矩形:
表
菱形:
表和表之间的关系
椭圆:
表中的字段
11.导入与数据库表对应的Java类
复制下面的问价到:
cn.itcast.domain包中
效果图:
12.3普通用户功能(买家):
注册
13.功能分析
14.完善页面(修改form表单)
15.编写注册Servlet。
16.编写注册Service。
17.编写ServiceImpl。
18.编写Dao。
19.编写DaoImpl。
20.使用ajax验证用户名是否已被注册:
需求分析:
21.页面实现:
scripttype="
text/javascript"
//获取XMLHttpRequest对象
functiongetXMLHttpRequest(){
varxmlhttp;
//codeforIE7+,Firefox,Chrome,Opera,Safari
if(window.XMLHttpRequest){
xmlhttp=newXMLHttpRequest();
}
//codeforIE6,IE5
else{
xmlhttp=newActiveXObject("
Microsoft.XMLHTTP"
);
returnxmlhttp;
}
//使用ajax验证当前用户是否存在
function_checkUserName(username){
if(username!
="
"
){
//1.获取XMLHttpRequest对象
varxmlhttp=getXMLHttpRequest();
//2.监听服务器返回状态
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&
&
xmlhttp.status==200){
varresult=xmlhttp.responseText;
//根据result结果进行相应的处理
//后台返回一个标记,如果为-1,表示当前用户名存在
if(result==-1){
document.getElementById("
username_notice"
).innerHTML="
当前用户名已经存在,请使用其他用户名!
!
;
registForm"
).onsubmit=function(){
returnfalse;
};
}//可以使用
elseif(result==1){
用户名可以使用"
returntrue;
}elseif(result==-3){
用户名不能为空"
}else{
服务器忙请稍后再试"
}
}
};
//3.打开连接
xmlhttp.open("
POST"
"
${root}/checkUserName"
true);
//使用表单的方式POST数据
xmlhttp.setRequestHeader("
Content-type"
application/x-www-form-urlencoded"
//4.发送请求
xmlhttp.send("
username="
+username);
/script>
22.其他Servlet同理。
作品说明:
这是基于JavaWeb开发的大型电商网站。
买家功能:
卖家功能(单独的系统):
系统功能:
1.将一定时间内没有付款的订单,修改为过期状态
遇到问题及解决方法:
问题:
当我点击注册时,浏览器返回找不到的错误提示,开始我以为是自己的Servlet写的有问题,仔细检查,发现没有问题。
于是,我请教老师,老师打开浏览器F12开发功能,发现我的Servlet的配置路径错误。
于是,我打开web.xml,发现里面的配置路径有问题。
重新配置了一下路径。
于是开启服务器,打开浏览器,点击注册。
发现成功了。
数据库中添加了一条记录。
说明注册功能已经实现了。
三、个人总结
在学习完本次为期半个月的实训之后,我深刻明白在开发JavaWeb项目中,首先要掌握Java的基础,其次要掌握Web端的基础。
把这两个基础打好之后才能进行JavaWeb的开发。
基础真的很重要,如果没有掌握好基础,真的很难开发项目。
开发项目还要讲究步骤问题,项目的开发结构。
要学会从每一层再到另一层开发,写代码。
层与层之间要学会调用,还要细心,千万不能拼错单词。
起初我在上课的时候只是学过一些基本的JSP,记得那时候做东西的时候不懂得异常处理,更不懂得安全问题,因为没见过那么大的天空,就满足在自己头上的云彩。
因为学院聘请了传智播客的讲师来给我们培训,所以在某种程度上我算是见识到了真正的程序员,看到了他们的工作方式,思维方式,以及码代码的方式,颇有感悟。
记得在在大二第一学期的时候就一直想学servlet,但是虽然自己买了许多的书,其中包括孙鑫的《JSP/Servlet深入详解》,可是由于自己的惰性,始终没能动手演练,因为我们常用的Servlet是基于HTTP(1.1)协议的,而且常用的request,response对象也都是继承自HttpServletrequest和HttpServletResponse的,所以,代码看起来会略显得有些复杂,(当然这只是对于初学者来说,或者说是没入门的人来说),所以没次拿起书看代码的时候就会感觉到“哇这个东东太难了!
,以后再说吧。
。
”每次都是这种感觉。
直至我碰到了《javaMail邮件开发详解》的作者之一方**(暂且称之为方老师吧,我感觉都写书的即使不是老师也可以被称作老师了)。
在他的指引之下,我算正式进入了学习javaweb的门槛,也算是一个初步的入门。
从起步开始对于我这个“野路子出家”的人是一种折磨,因为没有基础(像核心技术的IO,集合,GUI,socket等技术我都不怎么会的),而且要直接学javaweb。
记得开始的几天几乎都是麻木的,换句话说,这一段时间几乎不是在学习WEB技术,而是在测试自己大脑的缓存到底有多大(因为本身的压力就大,加上没有基础,最重要的是没有一个学习方法)。
所以几乎前几天的日子都在做一个工作,就是把学到的东西压缩到自己的大脑,回去复习呢,就像是个没头苍蝇一样,学到哪就看到哪,打开书本和笔记,发现自己不会的就开始看,毫无目的。
学习的效果也可想而知。
到头来发现自己似乎没会什么东西,因为即使是自己在写代码,也是在写别的代码,再调别人错过的错误。
总之过了很久大概一个多月吧,这种状态都没有改观。
可以说形势很不乐观。
但是呢又没有更好的办法。
直至遇到了王老师,虽然不能说听君一席话,胜读十年书,但是对我来说真是受益匪浅,此时也算是我再一次的重新开始javaweb的学习。
由于有过一个多月的经验,现在再来学习第二遍,也算总结了点方法。
下面就浅谈一下自己的体会。
如果放弃持久层的东西,也就是JDBC操作数据库这一部分来说,javaweb的东西就是Servlet和JSP,一个控制层(controller)和一个显示层(view)两方面的学习。
记得方老师的第一句话就是:
“javaweb是没有什么东西的,但是它又是很重要的,将来你们学的框架技术很可能在3,5年后就被淘汰了,但是这个javaweb在10年哪怕是更久都不会被淘汰的!
所以你们一定要学好,至于为什么说它没什么东西,这个以后你们学完就会知道”。
听了这些话,我心里的压力顿时减轻了很多。
敢于去接受一些新的知识,当然是用合理的方法。
现在回头总结的话,我个人的感悟就是当你明白了servlet和JSP的工作原理之后,你要学的就是那几个最常用的东西,比如说注册并发邮件,自动登录,购物车,下订单,三种常用的分页技术,过滤器功能(处理乱码,转义),监听器处理在线人数啊,在线支付等等(这里我就不一一列举了,当然HTTP协议是必须会的)。
现在列举出这些东西并实现技术虽然很容易,但是在当时学习的时候可是吃了不少苦,因为开始不懂啊,就拿人家写好的代码,一个显示屏幕分成两块,开始手动copy。
虽然写出了功能,但是没过多久就会忘记,即使3个月不忘记,6个月也会忘,因为它不是自己的东西嘛。
这些问题是在我第二次写东西的时候发现的,因为要对自己负责嘛。
所以自己很难受。
于是开始找我们老师想办法,他给我讲解了一遍这些技术的实现思路并操做演示给我看。
在他讲解完,我是茅塞顿开。
自己开始继续写,可是一写就发现还是不会,又开始翻代码。
后来我觉得不行,又去找王老师,“老师那个你讲的东西我听懂了,可是自己一写就写不出来,不知道该写什么,按你的代码写完,没多久又忘记了,这可怎么办?
”王老师一句简短的回答算是改变了我,可以说直到今天的学习,他说:
“想不出来是吗,那你就一直想,什么时候想出来了,什么时候再写,这个不急”。
回来我就想,这是好话还是赖话啊,人家同学都快写完了,我还在这想呢。
无解。
那就死马当活马医呗。
回去坐在那我就想,电脑一合上盖子。
持续接近两个小时,我一拍大腿,哦了!
打开电脑,画个图,理清一下流程,看看图,写吧,一个小时不到全部OK!
然后王老师问我,你怎么自己在那怪怪的笑(他是南方人,说话的口音加上语调很有意思)?
我说我写出来了。
嘿嘿。
他问我,你会忘吗?
我说我坚决不会忘,我自己想出来的东西,就是我忘记了我也还会想出来,然后我就还能写出来。
然后我就笑了,理由很简单,我找到方法了。
回过来说我们学习SUN公司的API,底层代码,第三方的资料和工具,最好的学习方法就是把他们的东西转换成你自己的思想,这样你就真的学会了。
到后来我发现,在我们一起写代码的时候不乏很多高人,他们的效率很高,能力很强,但是有很多的人恰恰相反而且这类人不占少数,最实在的例子,在我身边一起写代码的朋友,当我写完7,8个功能的时候,准备进行下一个模块的分析了,他还在那为一开始的两个功能发愁,看着那抛出来的异常瞪眼,更为悲观的是他不会对着异常分析而是去分析别人写过的代码,去看看自己哪里写的不一样。
当然万事开头难是必然的,因为刚刚起步没有经验,但是随着你的代码量的增加和处理能力经验的丰富,一切都会变的简单起来。
开始为什么说javaweb简单呢,因为当你学会的时候你要是善于总结你就会发现,其实servlet的一套API就那么多,只要学会了它就哦了,至于其它的帮助工具如何使用都是些大同小异的事情,实在不会可以XX嘛,XX不行就谷歌,再不行就翻墙。
当然也可以请教同学喝老师,找到问题的所在之处,总会解决的嘛。
所以最后列出一个等式:
成功=坚持冲过起步的低谷+良好的学习方法+勤敲代码的习惯+处理问题分析问题解决问题的能力。
换行标签<
br>
换段落标签<
p>
链接格式为:
AHREF="
资源地址"
TARGET="
窗口名称"
TITLE="
指向连接显示的文字"
超链接名称<
/A>
tr>
td>
第1行中的第1列<
/td>
第1行中的第2列<
第1行中的第3列<
/tr>
第2行中的第1列<
第2行中的第2列<
第2行中的第3列<
html>
head>
/head>
body>
用户名:
inputtype="
TEXT"
size="
maxlength="
密码:
PASSWARD"
SUBMIT"
value="
提交"
RESET"
/body>
/htm>
title>
多行的文本框<
/title>
formaction="
method="
post"
您的意见对我很重要:
textareaname="
yj"
clos="
20"
rows="
5"
请将意见输入此区域
/textarea>
/form>
/html>
css:
1、如何引入一个外部的css文件
linktype="
text/css"
rel="
stylesheet"
href="
xx.css"
2、Css选择器种类
首先说主都有哪些先择器
1.标签选择器(如:
body,div,p,ul,li)
2.类选择器(如:
class="
head"
class="
head_logo"
)
3.ID选择器(如:
id="
name"
id="
name_txt"
4.全局选择器(如:
*号)
5.组合选择器(如:
.head.head_logo,注意两选择器用空格键分开)
6.继承选择器(如:
divp,注意两选择器用空格键分开)
7.伪类选择器(如:
就是链接样式,a元素的伪类,4种不同的状态:
link、visited、active、hover。
在标签内写入style="
"
的方式,应该是CSS的一种引入方式,而不是选择器,因为根本就没有用到选择器。
我们分别来看下这些选择器:
1:
标签名选择器
一个XHTML文档中有许多标签,例如p标签,h1标签等。
若要使文档中的所有p标签都使用同一个CSS样式,就应使用标签选择器。
div{color:
red;
border:
1pxbluesolid;
}
p{color:
#000;
2:
类选择器
使用标签选择器可以为整个XHTML文档中的同一个标签指定相同的CSS样式。
但是在实际运用中,XHTML文档中的同一个标签会被反复使用。
若要为相同的标签赋予不同的CSS样式就应使用类选择器。
divclass="
test"
测试代码<
/div>
.test{color:
在html文档里,我们在要控制样式的标签的开标签(非成对标签如input直接放在标签里)里加入class="
xxx"
在页面对应的css文件里,用.xxx就可以指向这个标签,从而对这个标签进行控制,我们称这种通过定义类(class)来找到标签的方式为:
类选择器。
这种定义class的方式是前端开发最常用的选择器,有几个突出的特点:
可以给不同的标签设置同一个类,从而用一条CSS命令控制几个标签,减少大量代码,是页面修改简单,易维护,易改版;
其次,后台工作人员机会不会用到有关class的相关设置,不需要跟后台人员之间进行交互;
再者,可以通过js等动态改变标签的Classname,从而改变整个标签的样式,使前端动态效果实现起来更为容易。
3:
ID选择器
ID选择器和类选择器相似,不同的是,ID选择器不能复用。
在一个XHTML文档中,一个ID选择器只能把其CSS样式指定给一个标签。
divid="
#test{color:
有ID的HTML元素可以被JavaScript来操纵.再就是ID也是后台开发人员会经常用的,所以前端开发人员应该尽量少的使用。
4.全局选择器
全局选择器是一个星号。
它能作用于XHTML文档中的所有元素。
*{margin:
0;
padding:
5.组合选择器
标签选择器、类选择器和ID选择器是可以组合起来使用的。
一般的组合方式是标签选择器和类选择器组合,标签选择器和ID选择器组合。
由于这两种组合方式的原理和效果一样,所以只介绍标签选择器和类选择器的组合。
组合选择器只是一种组合形式,并不算是一种真正的选择器,但在实际中经常使用。
比如.orderlistli{xxxx}或者.tablesettd{}
我们使用的时候一般用在重复出现并且样式相同的一些标签里,比如litddd等。
比如<
h1class="
red"
/h1>
H1.red{color:
red}
群组选择器
.test1,span,test2{border:
div,span,img{border:
1p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计综合训练 计算机 程序设计 综合 训练 集中 实践 报告