bbs论坛中的问题和心得。(更新)

创建Spring Boot项目 勾选Aspects(Spring AOP)、Freemarker、JPA、Mysql 。
在pom中手动添加热部署jar和对应的插件。
连接池使用druid,添加druid的依赖。
添加fastjson的依赖,用来处理JSON数据。
添加fileupload的依赖,用来上传文件、图片上传。
添加spring-boot-starter-aop的依赖,用来实现拦截器。

WebMVCConfig配置:

WebMVCConfig通过继承WebMvcConfigurerAdapter来配置MVC,添加@Configuration注解,让boot知道它是配置文件。
1.通过重写addViewControllers来设置首页,设置优先级最高,当访问“/”下目录时,自动跳转设置的contrller
2.Spring Boot默认会把静态页全部屏蔽 所以在config中要对静态资源进行处理,重写addResourceHandler方法对静态资源放行。设置resourceChain为true。
3.过滤器 Spring提供的FilterRegistrationBean类,提供setFilter、setName、setOrder等方法。

File.separator 跨平台的分隔符

Crud:描述数据库或持久层的基本操作功能。create,retrieve(查询),update,delete
dao层继承CrudRepository接口
CrudRepository<Bbsuser,Integer> 对Bbsuser表进行操作 遵循JPA规范,主键类型
通过@Query注解实现查询

1 登录:@Query("select c from Bbsuser c where username=:u and password=:p")
2    Bbsuser login(@Param("u") String username,@Param("p") String password)
3 显示头像:@Query("select s from Bbsuser s where userid=:id")
4     Bbsuser getPic(@Param("id" Integer id))
5 显示主帖:@Query("select c from Article c where rootid=:id")
6     Page<Article> queryAll(Pageable pageable,@Param("id") Integer id)

Pageable是接口,PageRequest是接口实现

注意——————————————————————————————
@WebServlet中的urlPatterns中的名字前需加“/”,否则可能会找不到页,404。

做到显示用户头像时,出现NumberFormatException: For input string: "" ,是因为原模板中有两处传id参数,用户头像和帖子头像(在table页中),删除后者即可。

注册新用户时,必须在数据库中设置页数。不然会出现null指针异常。

注册用户时,需在服务器端建立upload文件夹来存放图片,然后才能读取服务器中的文件并转为字节形式存在数据库中。

注册用户时,vmap集合如果是全局的,那么应该设为null,在具体请求中进行实例化,否则在全局中只实例一次,如果在游客注册前,有用户登录过,那么vmap中含有登录的用户,则注册后显示的是上一个登录用户的信息。

在开发Web应用程序时,允许用户利用multipart请求将本地文件上的文件传到服务器。
Spring通过对ServletAPI的HttpServletRequest接口进行扩展,使其能够很好地处理文件上传。
enctype属性的属性值设为multipart/form-data
type属性值设为file

存储过程:
delimiter //
create procedure p_2 (
in in_id int, /* 主帖id 根据它进行从帖查询*/
out out_title varchar(50) /* 主帖标题 */
)
begin
/* 根据参数查主帖(rootid=0)或从帖信息 */
select *from article where rootid=in_id order by id;
/* 根据参数查主帖标题*/
select title into out_title from article where id=in_id;

end //
delimiter ;

show页参数:
id:帖子id
uid:当前登录用户id
duid:发本主帖的用户id
rootid:从帖所属主帖id

仍存在的bug :登录时没有检测用户名和密码正确性,若错误直接转到了游客页面。
已经存在的用户,仍可以继续注册。
点击了有从帖的帖子后,再点击没从帖的帖子,其标题会是有从帖的帖子标题。
登录后不能继续登陆 应先退出。
显示头像时的bug莫名其妙就好了。

时间: 2024-07-30 16:36:03

bbs论坛中的问题和心得。(更新)的相关文章

BBS论坛需求分析1

在BBS论坛中用户可以查看别人的帖子和发表帖子,BBS论坛中主要分为两个用户角色:普通用户和管理员,普通用户登录论坛之后可以管理自己的信息,发表帖子和管理自己的帖子.管理员登录之后可以管理所有的帖子.非登录用户可以浏览论坛中的帖子但是不能发表帖子.普通用户主要有用户注册,用户登录,修改个人的信息,修改密码,发表帖子,管理帖子,安全退出. 管理员:登录,管理帖子,安全退出. 功能设计: 1:用户注册: 用户可以在论坛中注册一个用户名,注册的时候,需要填写用户名,密码,昵称,生日,性别,邮箱. 2:

PHP+HTML简单实现BBS论坛与回帖

本文主要讲述如何通过PHP+HTML简单实现BBS论坛和发帖/回帖的功能,这是提取我们php项目的部分内容.主要内容包括: 1.通过JavaScript和Iframe实现局部布局界面 2.PHP如何定义类实现访问数据库功能 3.实现简单的BBS论坛和发帖/回帖功能 由于这个项目是十个人在寒假完成,所以采用了SAE搭建在线的后台数据库,其他人在通过Apache本地设计网页.访问数据库的方法实现,相当于简单的BS三端访问. 源码下载地址: 访问http://localhost:8080/testph

Django小项目简单BBS论坛

开发一个简单的BBS论坛 项目需求: 1 整体参考"抽屉新热榜" + "虎嗅网" 2 实现不同论坛版块 3 帖子列表展示 4 帖子评论数.点赞数展示 5 在线用户展示 6 允许登录用户发贴.评论.点赞 7 允许上传文件 8 帖子可被置顶 9 可进行多级评论 知识必备:(注:没有必备下面知识的同学,请返回去看会之后再看下面的内容防止蒙了~~!) 1 Django 2 HTML\CSS\JS 3 BootStrap 4 Jquery 设计表结构 1.表结构重要性 在开发

Python开发一个简单的BBS论坛

项目:开发一个简单的BBS论坛 需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可被置顶 可进行多级评论 就先这些吧... 知识必备: Django HTML\CSS\JS BootStrap Jquery 设计表结构 1 # -*- coding:utf-8 -*- 2 from django.db import models 3 from django.contrib.aut

Python之路【第十八篇】Django小项目简单BBS论坛部分内容知识点

开发一个简单的BBS论坛 项目需求: 1 整体参考“抽屉新热榜” + “虎嗅网” 2 实现不同论坛版块 3 帖子列表展示 4 帖子评论数.点赞数展示 5 在线用户展示 6 允许登录用户发贴.评论.点赞 7 允许上传文件 8 帖子可被置顶 9 可进行多级评论 知识必备:(注:没有必备下面知识的同学,请返回去看会之后再看下面的内容防止蒙了~~!) 1 Django 2 HTML\CSS\JS 3 BootStrap 4 Jquery 设计表结构 1.表结构重要性 在开发任何项目的时候,设计到数据库,

在论坛中出现的比较难的sql问题:22(字符串拆分、字符串合并、非连续数字的间隔范围、随机返回字符串)

在论坛中看到一个帖子,帖子中有一些sql方面的面试题,我觉得这些面试题很有代表性. 原帖的连接为:http://bbs.csdn.net/topics/390884161?page=1#post-398177057 下面是我的解法,供大家参考: 1.分拆字符串 create table test1 (number varchar(100)) insert into test1 values ('1,2,3,4,5,6') 希望结果: number ------ 1 2 3 4 5 6 (6 行受

BBS论坛的搭建

BBS论坛的搭建准备工作: Linux , Discuz_X2_SC_UTF8.zip(提供下载),SecureCRT(可用可不用) 行动开始: 将redhat上含有Package的disc挂载到/mnt下 mount /dev/sr0 /mnt 强制删除本身带有的rhel-source.repo rm -rf  /etc/yum.repos.d/rhel-source.repo cd /etc/yum.repos.d 在 /etc/yum.repos.d下新建文件 touch source.r

Docker官方论坛中回复最多的一个帖子“在数据容器内升级数据”

Docker官方论坛中回复最多的一个帖子"在数据容器内升级数据" matlehmann我有一个含数据的容器,它有一个卷(比如在/var/data)中的持久性数据.该容器包含持久性数据对另一个容器的软件.对于该软件的新版本,需要升级所述永久数据(结构或布局改变等).其结果是,我想与在相同的位置已升级的数据的另一数据容器(在/var/data)和仍保留旧数据容器与它的数据不变.这样一来,我可以用旧的数据容器与旧版本的软件,万一出了差错.但是,我怎么能做到这一点?以实现所期望的结果所需要的步

4-源码方式基于LAMP架构搭建BBS论坛或者博客

目录 一.项目简介 二.环境准备 三.编译安装MySQL 四.编译安装Apache 五.编译安装PHP 六.后续配置 七.启动相关服务 八.源码编译软件经验总结 九.部署web应用 排错1: 排错2: 排错3: 大功告成! 课程目标 使用源码方式基于LAMP架构搭建BBS论坛或者博客 本文成功搭建2个网站,一个个人博客,一个是web界面管理mysql数据库的应用 请耐心阅读,细心操作,你也会成功! 思考:yum工具搭建lamp环境和源码包搭建的区别 rpm版本 安装方便,升级.卸载都很灵活,很难