毕业设计之bs下电影推荐系统的设计详解与疑难解答(含中⽂
乱码详细解答)
emm,算是为毕业论⽂写草稿吧。这个系统是⼀个电影评价⽹站,通过⽤户评分出⽤户打分最⾼的三部电影,然后分别以这三部电影为基础,挑选出相似度⾼的电影进⾏推荐。
1.系统总体设计和⽹站架构设计
使⽤软件:mysql+eclipse(需要jdk)+navicat  web3.0以上
使⽤框架:数据库端使⽤了c3p0和Dbutils。后端端是jsp+servlet。前端使⽤jquery和bootstrap。
⽹站架构:
2.外部引⼊
数据库:配置l
Referenced lib:如上图需要导⼊四个jar包
js:需要导⼊如上五个.js⽂件
css和 fonts是bootstrap⾃带的(咱也不知道是⼲啥的,咱也不敢删)
3.细数开发来遇到的疑难问题(博主是⼩⽩,勿喷)
3.1 对电影(movie)实体list按评分(ade)排序
这个想了很多,后来发现可以⽤实体list的某个属性进⾏排序。这样就能按评分对电影排序进⽽根据推荐值截选前n部电影
3.2从hbuilder设计的界⾯移植进⼊jsp中,结果不可以使⽤
经过排查发现引⼊.js⽂件路径错误,因为⽂件放置路径不同
3.3 错误,不到或⽆法加载主类
这个当时也耽误了⼀段时间,后来发现是因为buildpath中libraries中有俩红叉jar包。出现红叉jar包是因为⾃⼰引⼊jia包不是复制进去的,⽽是link进去的。所以要注意。
3.4 servlet返回jsp页⾯与原来页⾯不同。
这个具体原理不详,反正就是以下两种⽅式去jsp页⾯展现的页⾯不⼀样。需要⽤b种类⽅式才⾏,⽤a页⾯是乱的。
a: RequestDispatcher("/page/pre/movie.jsp").forward(request, response);
b: response.sendRedirect("localhost:8080/QFMR1/page/pre/movie.jsp");
3.5  ArrayList list
这个由于要将list再处理,不能直接创建list,要创建arraylist与list之间互动。
3.6 模糊查询
很难受,整了很久,最后才整出来。
3.7  jsp和servlet跳转的问题
本来是之前设计的jsp之间传递,后来发现这样不利于⽹站建设,后来就⼀个jsp对应⼀个初始化servlet。session中传递⼀个mvlist,jsp 中接受session中的mvlist,并初始化mvlist为null。
3.8 乱码问题(⾎的教训,断断续续花了我将近10天才解决)
3.8.1  从servlet传递到jsp
⽤这个⽅法传递到jsp的中⽂字符会显⽰问号,需要在上⾯加上
response.setContentType("text/html;charset=utf-8");
这样就会传递中⽂
3.8.2 从jsp传递到sevlet或jsp
<a  href="/QFMR1/initmoviecommentServlet?movie_name="张三" " ></a>
<a  href="recomment.jsp?movie_name="张三" " ></a>
如果传递到servlet或jsp页⾯ 需要String str=new Bytes("ISO-8859-1"),"UTF-8"); 将接受的变量转为utf-8
3.8.3 和数据库对接乱码(重点)
a :  将eclipse  workspace 设置为utf-8
b:在url后上加上characterEncoding=UTF-8&useUnicode=true
c:mysql数据库编码问题
进⼊mysql命令⾏,输⼊show variables like 'character%'; 查看编码集。
建议都设置为utf-8(character_set_filesystem为binary) 如果不是的话需要到mysql⽬录的my.ini⽂件并在[mysql][mysqld][client]⾥添加如下代码。
然后⽤命令⾏以管理员模式关闭mysql再开启mysql,出现如上的编码集就ok了,这样基本就了乱码,可能需要重启电脑,之后要刷新数据库链接和数据库,mysql8.0以上需要⾃⼰注意⼀下my.ini位置。
3.9 图⽚存储问题
想了很久,最后是将⽂件放在img下,然后数据库存储路径。
4.设计与源代码(不知道多少软件计算机的童鞋在等这个)
本⽹站我负责的模块是推荐系统的设计和⽹站的建设。
4.1 ⽹站建设
⽹站的⾮推荐相关功能包含登陆,注册(使⽤jquery.validate),注销电影关键词分类,模糊搜索。都是基本的mvc模式进⾏设计。
4.2 推荐相关
4.2.1根据⽤户评分推荐电影源代码人物介绍
⽤户点击电影可以查看电影的详细信息,并且能够进⾏评分和评论(涉及和另⼀个⼩伙伴的对接算法),写⼊数据库。将⽤户评分最⾼的三部电影id写⼊⽤户表。推荐是根据⽤户喜欢的电影id,来与其他电影进⾏⽐对,选取相似度值较⾼(涉及相似度算法1)的前n部电影进⾏⼆次推荐值计算(涉及推荐值算法2)选取m部电影,⽤户已经评论过的电影不再推荐。
4.2.2⽤户关键词推荐
表单输⼊导演,演员,地区,类型,时长。后端接收数据并封装成movie与数据库⽐对(涉及算法3),并按评分降序(涉及算法1的⼦算法4)选出最多n部电影。
(楼主⽬前还在毕设阶段,源代码不能贴,7⽉份会发布出来)
⼤概就是这样吧,后续可能还会在进⾏⼀些扩展与补充,感觉现在还有点单薄。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。