实习记录本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
今天项目经理给我安排的任务是制作数据表,在一个项目开发中,数据库的设计是非常重要的,经过项目经理的描述,大致分为8张表。其中有产品表d_product,图书信息表d_book,图书分类表d_category,产品表和分类表联合查询表d_category_product,预订信息表d_item,订单表d_order,接收地址表d_receive_address,用户信息表d_user.数据库采用的是mysql,因为在校期间并没有学习过这个数据库,因此,我在网上找来了关于mysql的视频学习,通过一上午的学习,能完成一些基本操作,但是在实际操作过程中还是出现了不少的问题,比如,由于没有经验,设计字段名的时候根据自己对功能的理解随意取名,这导致了表的可读性变得很差,分不清楚字段所表达的意思。后经过项目经理的建议,全部换成英文名词,这就解决了字段名异议问题。当设计到产品表和分类表联合查询d_category_product和预订信息表和订单表的时候,却怎么也无法将表的功能表现出来。项目经理看已经到吃晚饭的时候了,表示明天再给我们详细的解释。
项目经理表示今天完成昨天没有实现的数据表,由于昨天没能完全理解各个表之间的关系,项目经理又给我重新解释了一遍,于是我按着项目经理的思路又开始了表的设计,这次我使用了外键的功能,通过外键将需要关联的数据表进行了逻辑上的连接,整合各个表的功能以及关联。在将所有的表都创建之后,项目经理建议我自己测试一下,看是否会出现异常情况,于是我开始在各个表中使用添加语句插入数据,当我为图书信息表d_book表插入时间数据是出现了错误,并且在数据库中添加汉字时总是出现乱码,这让我很是困扰,我通过上网查询了解到,我的时间字段并没有采用数据库自带的时间类型,而汉字乱码则是数据库安装时没有配置汉字功能,最后通过修改配置文件,最终解决了汉字乱码问题。
今天主要的任务是根据数据库表创建实体类并测试,而实体类的作用是用于创建对象,使用其中的属性,对应着数据表,为各个实体类添加set(),get()方法,为每个变量选择正确的类型和控制符。经过几个小时的努力,终于是把所有的实体类都完成了,接下来的任务就是测试这些实体类。在项目经理的建议下,我创建了一个测试类,据说这是工作中不可缺少的一步,可以保证你所写的实体类是正确可用的。通过测试,发现了我写的几个类缺少字段所对应的属性,这是由于我的粗心引起的,我立刻补充了丢掉的属性,并且为每个类添加了注释,这对以后别人阅读我的程序时提供方便。今天的任务完成的较早,我又对自己所写的类进行了检查,跟项目经理请教了一些工作中应当注意的问题。
3今天要完成的任务是用户的注册模块,这个模块需要设计注册的界面以及页面的验证。这些技术用到了html,css,js等语言。因为此前在校期间曾经学习过,所以完成了大部分的功能,一些细节的部分通过上网查询,也都实现了。通过使用jQuery插件,自己定义js 函数完成了对页面中输入框中内容的长度,格式,鼠标状态的设置。在项目经理提供的验证码程序后,完成了验证码的js验证。并对输入框不输入内容以及输入非法字符的情况制定了相应的提示信息。因为这个项目涉及到了邮箱验证,所以,我模仿网上提供的一个邮箱发送邮件的功能,制作了一个邮箱验证功能的工具。在项目经理的帮助下实现了邮箱验证的功能。
整体的页面布局设计如图所示:
2今天的任务是通过连接数据库完善注册功能,项目经理给我提供了连接数据库需要使用驱动jar包,要求使用jdbc方式连接数据库。首先要实现一个连接数据库的工具类,这用到了在学校学习的java知识,在实现工具类的时候最好配置一个数据库参数文件。这个文件可以修改,这在日后的维护中是很重要的,其中包含了数据库的类型,用户名,密码。除了这些基本的参数外,还提供了数据连接池的最大活动对象,最长活动时间,最多空闲连接数,初始连接数等数据。其次写了一个访问数据库的文件,在这个文件中实现了从数据库中提取验证码上的随机字符,通过比对用户输入的验证码信息,返回结果。添加查询数据库的方法,用来查找注册的用户名是否存在,返回相应的结果。在js中修改验证方法,配合数据库完成验证。因为struts框架可以实现在类中接受和传递参数的功能,所以只需要在注册页面中添加相应的标签即可获得所要传递的数据,但是要求页面中的标签名与类中的属性相对应。
1今天要完成的任务是用户的登录模块,登录的界面需要自己加以实现,我又对页面进行相应的动态处理。我通过html、css、js等语言将这些技术得以的实现,在这期间也遇到了一些困难,但通过和项目经理进行相关知识的讨论,这些问题都得到了相应的解决。登录模块与注册模块有点相似,是需要连接数据库并且用js验证,在页面添加一个连接地址,用户点击连接可以直接到达注册页面,这样用户的体验度更好,在登录页面中,要特别注意标签的命名,一定要与控制器的类中的属性相对应。此外,如果用户恶意输入非法字符,并且强制提交会影响到服务器效率,因此,在js中设置提交按钮失效功能。
整体的布局如图:
5今天的任务是对用户密码入库进行加密,对密码加密有许多方法,按照项目经理的要求,是使用md5形式,首先要写一个加密用的工具类,要将用户输入的密码转换成字节数组,在经过base64算法将md5加密后的字节变成字符,这是普遍的做法,也是最安全的。但是由于没有接触过这类程序,实现起来还是很困难的,经过在网上查找,找到了关于md5加密算法的一个实例,经过改良可以实现项目经理的要求,在测试阶段还是出现了问题,由于之前数据库表是对密码字段的长度设置偏小,以至于加密后的密码无法存入数据库,于是重新修改了数据库表,md5加密是不可逆的算法,因此在验证阶段采用的是将表单中的数据经加密后于数据库中存储的密码进行比较,从而返回结果,根据结果判断是否跳转也面。
6今天的任务是完善注册邮箱验证码的功能,根据用户使用规律,用户很有可能在注册过程中被打断,如关闭浏览器,电脑死机,这就需要我们讲邮箱验证码存储在数据库中,这样才不会是数据丢失,也方便用户下次继续使用。为了在数据库中找到用户的邮箱验证码,这就需要我们在发送验证码的时候将用户的一些信息绑定在邮箱验证码上,我的想法是将用户的注册email绑定,经过项目经理的指导,选择传递id,原因是email属于个人信息,如果绑定就不安全了,而id是注册是匹配的一个数字,相对不会泄露用户信息,所以比较安全,然后再服务器端将用户输入的邮箱验证码使用split()函数将有用的信息分裂开,这样就实现了邮箱验证码得验证功能。
7今天的任务是制作网站的主页,主页的设计采取分块模式,每个模块被封装成一个jsp,最后将这些jsp整合到一起,首先是网站左栏的产品类别,将所有的菜单选项都与相对应的功能相连接,然后是热销书部分,在这一步分采用了struts标签中的循环语句,将从数据库中查询出来的商品条目显示到页面,编辑推荐部分实现方法与热销书部分相同。并且在主界面上添加状态信息,比如登录,登出,我的购物车等信息。在实现状态管理信息时,如果用户是登录的,就在页面上显示出用户的昵称,否则就提示登录。
主页的整体布局如图:
4今天的任务是从数据库中查找出热销书,并将这些书显示在页面中,热销书的选取是根据最近一个月中,销售量按照从高到低的顺序排列,从中选取5本显示在页面中,这就需要编写一个sql语句来实现,在mysql这个数据库中,由于对这种特殊的查询方法不是很了解,所以在网上收索了一些类似的查询语句,经过反复调试,终于完成了查找热销的功能,并且按照降序排列,取出前5本书,最后在main.jsp页面中运用标签显示出来。同理可以将编辑推荐部分按照用户打分降序排列,也取出前5本书。由于每次写action实现类的时候都会写一些重复的代码,特别繁琐,最后项目经理建议我将这些重复的代码封装到一个类中,其余的各个类中都继承这个封装类就可以简便代码。在项目经理的提示下,改良了程序代码。
8 今天的任务是完成类别图书的显示,当用户点击左边的图书类别选项时,会跳转到一个显示页面,页面的左侧显示用户所在的当前位置,在中间部分显示该类别的图书信息。这需要将数据库中所有的已经分过类的图书查询出来并显示。因为在设计数据表的时候就已经考虑到了这个问题,所以数据表中的商品都有一个外键的属性,在项目经理的讲解之后,我了解到通过匹配这个外键,查询出对应的商品。由于商品的类别与商品的个数都很多,我将外键的值与主键的值得对应关系弄错了,以至于在页面显示的时候出现了错误。经过修改最终完成了任务。