在idea做项目时 在进行模糊查询的时候页面为什么拿不到值_有关导入传智书城itcaststore项目相关问题的解答...

本文档详细介绍了如何在Eclipse环境下部署itcaststore项目,包括解决常见的乱码、数据库连接、注册页面加载等问题,并提供了调整编码、配置数据库连接、添加缺失依赖等实用技巧。

cfb0f2625c76a35dd9e63335dff86c10.png

开发环境: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

d0adf13412e6a51a7cff4e52ac081ebb.png

问题2:数据库连接问题

582c6fbca47f6fadfa1d0775ab010366.png
“数据库连接失败”问题截图

第一次运行时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>

f60963da32a4d376f693902a76206a05.png

注意:很多同学找不到更改的位置,注意点击下面的Source即可显示。


问题3:无法进入注册页面

数据库连接正确之后,页面可以正常显示,进行购买测试时(可使用自带用户名密码进行测试),需要先注册,但点击注册以后,出现错误,无法进入注册页面。

9662d050a60baab46e5556d819336d5f.png
“注册错误”问题截图

这个问题是因为我使用的是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引发其他错误,所以选择第二种方案

8f02a75758047380cab76d22aa4f2267.png

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

d01027e8eec005be1a841c7ab3a556d4.png
注册界面

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

623c5833a733c4e2cf41f4ed09ca5406.png

dbeb1335372726ebdf7b97cbe9e64318.png

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

ab34635810c413942a8d8c462565cd65.png

1.设置SMTP服务器地址

设置为自己邮箱的服务器地址(例:163邮箱设置为smtp.163.com;QQ邮箱设置为http://smtp.qq.com)

2/3.创建验证器

(“自己的用户名”,“授权码”)

4.设置发送者

自己的邮箱

更改完成后显示“激活成功”,收到“激活邮件”

c178149ad4ffa45112bcfbf38991dab9.png

aea0e1efe5f0a6ba39adce7654447a1d.png

问题5:激活问题

2ae6f8c226534a73dbcdd8353131114a.png

f01f4c2b3f8fd249bed40bc9b0d8b998.png

ddcdfd143c89c624025ce52838144ca9.png

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

ae6f678ed28b47d01a7112dc4db7d5c2.png

解决的办法:

bookstores改成itcaststore就OK了!

代码:

// 发送激活邮件
			String emailMsg = "感谢您注册网上书城,点击"
					+ "<a href='http://localhost:8080/itcaststore/activeUser?activeCode="
					+ user.getActiveCode() + "'>&nbsp;激活&nbsp;</a>后使用。"
							+ "<br />为保障您的账户安全,请在24小时内完成激活操作";
			MailUtils.sendMail(user.getEmail(), emailMsg);

更改后显示“激活成功”

a565fd1dfb009e37414df014bcc81486.png

问题6:图片显示问题

我们运行项目的时候会发现有部分书目图片显示不出来。

在MySQL中查询“products”表,由书目价格找到对应图片路径,发现不显示图片的书目相对应路径下并没有存放图片。

解决的办法:

按照数据库中路径将图片插入到项目中,问题顺利解决!

017a7f85ad4c10e01c91e6182b33fcae.png

问题7:分类与检索问题

这个问题首先需要感谢大佬 @大全麦圈齁死你 的技术支持O(∩_∩)O~

项目运行到这一步骤之后,发现只能够点击“全部商品目录”进行书籍的浏览与购买,点击商品分类(如“文学”、“计算机”等)以及“检索关键字”方式都无法获得书目

5cf8a8c70ebb3c77b06057fa9e48456f.png

这个问题是由于URL中GET请求无法传输汉字,Tomcat6.0之后为了安全不支持在URL中传输中文,而本项目中GET请求的href中传输的均为汉字。

解决的办法:

将汉字转换成Unicode编码在URL中进行传输,传输完成后再转换为汉字。

注意:RFC中规定不能使用“”,可以使用“/”,但Unicode编码中含“u***”,所以选用变体Unicode,即“/u***”进行数据传输,传输完成后将变体Unicode编码转换为正常的Unicode编码,再将正常的Unicode编码转换成中文。

1. 更改“menu_list.jps”中adress编码方式

原代码:

8d076afe60970782c18eccd8c4aae165.png

更改后代码:

55ebe935393b6a9e66e80aa094a3c3b5.png

注意:全部商品目录中要更改为href="<%=convert("全部商品") %>",不然会出现错误哦。

2.更改“ShowProductByPageServlet.java”中代码

将变体Unicode编码(“/”)转换为正常的Unicode编码(“”)(2),再将正常的Unicode编码转换成中文(3)。

原代码:

13faf92d73a5e37274aeaac7fbb3589e.png

更改后代码:

7b5612b7d9900ef29f7d3a8fb7918b25.png
  1. 对category重新赋值
  2. 将变体Unicode编码(“/”)转换为正常的Unicode编码(“”)
  3. 将正常的Unicode编码转换成汉字

3.更改“c3p0-config.xml”(数据库驱动)中参数设置

使数据库使用“UTF-8”编码集,UTF-8里给汉字进行了编码,因此有汉字的时候可以识别。

原代码:

2f8c5d22d17a2892285acf5e19fa2c52.png

更改后代码:

e182b46e2465297142bf77d32d3f3abe.png

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

98c468ec4c9e35f0388889e9b0b9d985.png

20fa8019d8e4dce3191604978cc87878.png

问题8:修改完分类问题后全部商品显示出现问题

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

cfa1f97ecf75e164f37a541855483874.png

使用新方法在URL中进行数据传输之后,点击“下一页”及“页码”,URL中传输的“全部商品”变为汉字,因为该组页面使用的是category编码方式,导致无法显示。

解决的办法:

更改product_list.jsp中代码,将category编码方式转变成Unicode编码方式。

原代码:

13ff2028febbdbe868b58613a0e8738e.png

更改后代码:

1bcd0a7f2c81f353858365d1276cbdce.png

注意:别忘了引入PageBean包哦~

本次更改后,点击“下一页”可正常显示,但点击“上一页”及“页码”均无法正常显示

继续更改product_list.jsp中代码

原代码:

b07c784b44c04b4f4f459f94c76bace5.png

更改后代码:

6e5b9998d1f4ccb39d911162a875d89c.png

1.更改 点击“上一页” 问题

2.更改 点击“页码” 问题

更改完成后,“全部商品”及“商品分类”均可正常显示:

d16603e8394af6aadc9b2db7643ae4bd.png

第一篇文章(*^▽^*)终于赶在五一之前整理完了~~~再次感谢大佬的帮助!!!

第一次写,大家有什么问题和建议希望能在评论里提出来哦~~~我们一起讨论~~~

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值