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莫名其妙就好了。