我是靠谱客的博主 炙热老师,最近开发中收集的这篇文章主要介绍基于SSM和Boostrap实现的电影评论网站设计,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目 录
目 录 I
摘 要 III
Abstract IV
1 绪 论 1
1.1 研究目的 1
1.2 发展概况 1
1.3 开发工具的选择 2
2 系统分析 6
2.1 主要功能 6
2.2 方案论证 6
2.2.1 设计原理 6
2.2.2 方案选择 6
2.3 基本思路 7
2.3.1 网站UI的思路 7
2.3.2 获取资源的思路 7
2.3.3 权限控制思路 7
2.4 主要问题 7
2.5 网站要求 8
3 系统设计 9
3.1 概要设计 9
3.2 详细设计 10
3.2.1 版面设计 10
3.2.2 功能设计 11
4 系统实现 12
4.1 创建系统外观界面 12
4.2 获取图片功能的实现 12
4.3 根据条件排序和筛选功能的实现 12
4.4 基于注解的权限认证 14
4.5 根据权限来展示界面 16
4.6 定时更新正在热映电影 18
4.7 前后端认证 19
5 系统运行 22
结束语 27
致谢 28
参考文献 29

2 系统分析
2.1 主要功能
1.一共有两个角色:评论人和管理员
2.评论人可以在网站中进行账号注册
3.评论人可以对电影进行简短评论、打分
4.管理员上传电影的画报、各类简介信息
5.网站根据某种规则自动统计、计算每部电影的分数情况
6.网站自动生成电影的排行榜
7.网站可以根据电影的年份或分数情况对电影进行自动排序

2.2 方案论证

2.2.1 设计原理

1.网站界面:在界面上不追求奢华或者繁杂的功能,只追求两个字:“简洁”,通过干净的首页、功能、观看页面,让观看者体会到舒适的观看环境。
2.功能实现:通过判断登陆权限,以不同的身份登陆到网站,分为网站管理员以及会员。管理员拥有对节目单表的增删改查等操作,并且对网站内电影有简单的处理功能,意在对网站进行管理与维护;会员则区别于游客,登陆会员之后,可以对电影进行影评或与管理员交流等操作。
3.内容多样:通过管理员对信息的掌握程度以及采集速度的保证,每天进行更新内容的操作,并且通过挑选分类,精心的编排到各个模块。最好是用爬虫自动采集信息。

2.2.2 方案选择

1.资源来源:电影的信息一定要有稳定的来源,需要考察豆瓣电影API。
2.爬取策略:由于电影资源需要定期更新,需要设定爬虫的爬取策略。
3.自动化处理:对爬虫爬来的数据要进行自动化分类、处理,方便展示在页面上。
4.评分规则制定:因为电影需要根据评分排序,需要制定一个评分规则。
5.角色界定:系统需要根据用户不同的角色(访客、普通用户、管理员)来展示不同的界面。
6.电影分类:需要根据电影年份、类别等分类。
2.3 基本思路

2.3.1 网站UI的思路
UI,对于设计者来说,可以算是最简单的地方;但对于用户一个良好的用户界面非常重要,普通用户根本不会关心你的界面时怎么实现的,他所关心的是UI是否美丽、大方、好看。如果一个网站的UI不好看,本文转载自http://www.biyezuopin.vip/onews.asp?id=14551可能用户根本没有用下去的心思了。本网站使用Bootstrap作为UI框架,简单优美。

2.3.2 获取资源的思路
通过豆瓣电影API https://developers.douban.com/wiki/?title=movie_v2 ,制定合适的抓取策略,获得所需要的资源。

2.3.3 权限控制思路

网站分为管理员和前台用户,必须得根据权限来展示不同的界面和功能。可以利用Java注解来实现。注解可以看成是一个接口,注解实例就是一个实现了该接口的动态代理类。注解大多是用做对某个类、方法、字段进行说明,标识的。以便在程序运行期间我们通 过反射获得该字段或方法的注解的实例,来决定该做些什么处理或不该进行什么处理。

package me.veryyoung.movie.web;

import me.veryyoung.movie.entity.User;
import me.veryyoung.movie.security.AdminRequired;
import me.veryyoung.movie.security.FreeAccess;
import me.veryyoung.movie.security.LoginRequired;
import me.veryyoung.movie.utils.ContextUtils;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;

/**
 * Created by veryyoung on 2015/4/28.
 */
public class AuthenticationFilter extends HandlerInterceptorAdapter {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        HandlerMethod method = (HandlerMethod) handler;
        FreeAccess freeAccess = method.getMethodAnnotation(FreeAccess.class);
        if (freeAccess != null) {
            return true;
        }

        boolean adminRequired = AnnotationUtils.findAnnotation(method.getBean().getClass(), AdminRequired.class) != null
                || method.getMethodAnnotation(AdminRequired.class) != null;
        boolean loginRequired = AnnotationUtils.findAnnotation(method.getBean().getClass(), LoginRequired.class) != null
                || method.getMethodAnnotation(LoginRequired.class) != null || adminRequired;
        if (loginRequired && !checkLogin(request)) {
            String url = request.getRequestURI();
            String queryString = request.getQueryString();
            if (StringUtils.isNotEmpty(queryString)) {
                url = url + "?" + queryString;
            }

            url = new String(Base64.encodeBase64(url.getBytes()));
            url = URLEncoder.encode(url);

            //如果是ajax请求响应头会有,x-requested-with
            if (request.getHeader("x-requested-with") != null && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) {
                response.setHeader("sessionStatus", "timeout");//在响应头设置session状态
                return false;
            }

            response.setStatus(401);
            String redirectUrl = "/login?redirect=" + url;

            response.sendRedirect(redirectUrl);
            return false;
        }

        if (adminRequired && !checkAdmin(request)) {
            response.setStatus(403);
            response.sendRedirect("/403");
            return false;
        }


        return true;
    }


    public boolean checkLogin(HttpServletRequest request) {
        return ContextUtils.getSessionUtils(request).getUser() != null;
    }

    public boolean checkAdmin(HttpServletRequest request) {
        User user = ContextUtils.getSessionUtils(request).getUser();
        if (user == null) {
            return false;
        } else {
            return user.isAdmin();
        }
    }

}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后

以上就是炙热老师为你收集整理的基于SSM和Boostrap实现的电影评论网站设计的全部内容,希望文章能够帮你解决基于SSM和Boostrap实现的电影评论网站设计所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部