
开发环境:eclipse2019.3,jdk9.0.4,Tomcat7.0,MySQL5.5
首先需要将itcaststore项目(该文件夹)import进入你的eclipse(也可以使用IDEA),再将itcaststore.sql文件导入MySQL(source)。
大致会出现以下几个问题:
问题1:乱码问题
大多数都会遇到这个问题,我身边的同学都遇到了,乱码会对之后的调试造成较大的影响,建议更改一下。
这个问题是由于导入项目原先的编码规则与eclipse环境的编码规则不一致导致的。
解决的办法:
项目(右键) ——> Properties ——> Resource ——> Text file encoding——>Other:UTF-8

问题2:数据库连接问题

第一次运行时MySQL连接出现问题,数据库无法访问。
这是由于数据库驱动文件(c3p0-config.xml)中存放的连接数据库使用的“user”及“password”与本地不匹配。
更改“c3p0-config.xml”文件中的“password”信息之后,系统首页可正常显示。
<property name="jdbcUrl">jdbc:mysql://localhost:3306/itcaststore</property>
<property name="user">root</property>
<property name="password">MySQL密码</property>
注意:很多同学找不到更改的位置,注意点击下面的Source即可显示。
问题3:无法进入注册页面
数据库连接正确之后,页面可以正常显示,进行购买测试时(可使用自带用户名密码进行测试),需要先注册,但点击注册以后,出现错误,无法进入注册页面。

这个问题是因为我使用的是jdk-9.0.4
JAXB API是java EE 的API,因此在java SE 9.0 中不再包含这个 Jar 包。
java 9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包,而在 java 6/7 / 8 时关于这个API 都是捆绑在一起的。
解决的办法:
第一个解决方案为:降低JDK 9 版本到 JDK 6/7/8
第二个解决方案为:手动加入这些依赖Jar包(加入下面截图中框起来的四个包)
因为怕更改JDK引发其他错误,所以选择第二种方案

更改完成后,可成功进入注册页面:

问题4:点击“注册”之后显示注册失败


这是由于“MailUtils.java”文件中的邮箱信息设置出现错误,需要将“MailUtils.java”文件中的邮箱信息设置成自己的邮箱信息,即可正常发送激活邮件。

1.设置SMTP服务器地址
设置为自己邮箱的服务器地址(例:163邮箱设置为smtp.163.com;QQ邮箱设置为http://smtp.qq.com)
2/3.创建验证器
(“自己的用户名”,“授权码”)
4.设置发送者
自己的邮箱
更改完成后显示“激活成功”,收到“激活邮件”


问题5:激活问题



点击收到的邮件中的“激活”出现错误,感觉应该是“UserService.java”中的激活跳转到的路径不对。

解决的办法:
bookstores改成itcaststore就OK了!
代码:
// 发送激活邮件
String emailMsg = "感谢您注册网上书城,点击"
+ "<a href='http://localhost:8080/itcaststore/activeUser?activeCode="
+ user.getActiveCode() + "'> 激活 </a>后使用。"
+ "<br />为保障您的账户安全,请在24小时内完成激活操作";
MailUtils.sendMail(user.getEmail(), emailMsg);更改后显示“激活成功”

问题6:图片显示问题
我们运行项目的时候会发现有部分书目图片显示不出来。
在MySQL中查询“products”表,由书目价格找到对应图片路径,发现不显示图片的书目相对应路径下并没有存放图片。
解决的办法:
按照数据库中路径将图片插入到项目中,问题顺利解决!

问题7:分类与检索问题
这个问题首先需要感谢大佬 @大全麦圈齁死你 的技术支持O(∩_∩)O~
项目运行到这一步骤之后,发现只能够点击“全部商品目录”进行书籍的浏览与购买,点击商品分类(如“文学”、“计算机”等)以及“检索关键字”方式都无法获得书目

这个问题是由于URL中GET请求无法传输汉字,Tomcat6.0之后为了安全不支持在URL中传输中文,而本项目中GET请求的href中传输的均为汉字。
解决的办法:
将汉字转换成Unicode编码在URL中进行传输,传输完成后再转换为汉字。
注意:RFC中规定不能使用“”,可以使用“/”,但Unicode编码中含“u***”,所以选用变体Unicode,即“/u***”进行数据传输,传输完成后将变体Unicode编码转换为正常的Unicode编码,再将正常的Unicode编码转换成中文。
1. 更改“menu_list.jps”中adress编码方式
原代码:

更改后代码:

注意:全部商品目录中要更改为href="<%=convert("全部商品") %>",不然会出现错误哦。
2.更改“ShowProductByPageServlet.java”中代码
将变体Unicode编码(“/”)转换为正常的Unicode编码(“”)(2),再将正常的Unicode编码转换成中文(3)。
原代码:

更改后代码:

- 对category重新赋值
- 将变体Unicode编码(“/”)转换为正常的Unicode编码(“”)
- 将正常的Unicode编码转换成汉字
3.更改“c3p0-config.xml”(数据库驱动)中参数设置
使数据库使用“UTF-8”编码集,UTF-8里给汉字进行了编码,因此有汉字的时候可以识别。
原代码:

更改后代码:

更改后商品分类可以正常显示,也可正常搜索


问题8:修改完分类问题后全部商品显示出现问题
更改完成“分类与检索问题”后点击商品分类(如“文学”、“计算机”等)以及“检索关键字”方式均可正常获得书目,但点击“全部商品目录”只可正常显示第一页,点击“下一页”及“页码”均无法正常显示。

使用新方法在URL中进行数据传输之后,点击“下一页”及“页码”,URL中传输的“全部商品”变为汉字,因为该组页面使用的是category编码方式,导致无法显示。
解决的办法:
更改product_list.jsp中代码,将category编码方式转变成Unicode编码方式。
原代码:

更改后代码:

注意:别忘了引入PageBean包哦~
本次更改后,点击“下一页”可正常显示,但点击“上一页”及“页码”均无法正常显示
继续更改product_list.jsp中代码
原代码:

更改后代码:

1.更改 点击“上一页” 问题
2.更改 点击“页码” 问题
更改完成后,“全部商品”及“商品分类”均可正常显示:

第一篇文章(*^▽^*)终于赶在五一之前整理完了~~~再次感谢大佬的帮助!!!
第一次写,大家有什么问题和建议希望能在评论里提出来哦~~~我们一起讨论~~~
本文档详细介绍了如何在Eclipse环境下部署itcaststore项目,包括解决常见的乱码、数据库连接、注册页面加载等问题,并提供了调整编码、配置数据库连接、添加缺失依赖等实用技巧。

1149

被折叠的 条评论
为什么被折叠?



