毕设遇到疑难及知识点总结(后端)
1.maven:管理项⽬的构建,在l中添加依赖即可,不兼容时会报错。有⽬录规范,使得⽬录结构统⼀。有依赖管理、消除了构建的重复、项⽬信息管理等。
2.ssm:spring就是⼀个⼤⼯⼚,可以实例化对象,也可以成为是粘合剂。springmvc拦截⽤户请求核⼼是batis围绕sqlsessionfactory展开,关联了
3.springmvc-servlet;启动MVC注解,静态资源处理,⽂件上传的⼤⼩和格式
applicationcontext。cml:扫描业务层注解,数据库连接信息,配置数据源加载mapper⽂件,⾃动扫描dao接⼝,使⽤实例⼯⼚的⽅法注⼊对象。事务管理:⼀系列对数
4.上传图⽚:选择后点击确认---调⽤ajax访问control层,进⾏业务处理后将图⽚存在Tomcat部署的项⽬中。
5.开发流程:maven项⽬----搭建框架---写业务访问层---根据控制类的返回界⾯编写前端页⾯----之后就是数据处理层service,dao,mapper,----完善功能,写⼯具类,分
1.@ResponseBody作⽤:@ResponseBody 表⽰该⽅法的返回结果直接写⼊ HTTP response body 中,⼀般在异步获取数据时使⽤,
即返回的数据是json格式。
2.StringUtils类isEmpty⽅法⽤来判断字符串是否为空;
StringUtils⽅法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作⽅法的补充,并且是null安全的(即如果输⼊参数String为null则不会抛出NullPoin
3.setViewName⽅法中的参数是页⾯的名称
4.@Repository:该注解的作⽤不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常
类型。
5.⾃⼰调试的时候:log.debug("bug!");如果log4j的配置中设置了debug级别,那么就可以输出其他debug的⽇志,在⽇志中标记为
[DEBUG].
在⾃⼰做项⽬调试和System.out.println()⽅法差不多。
但现在项⽬中都推荐使⽤⽇志形式输出调试信息⽽不使⽤System.out.println()⽅法,因为这些⽅法是要在程序中修改的.
6..启动服务器时实体类报java.io.NotSerializableException:异常,但程序能正常运⾏,在实现Serializable接⼝后就不报错了
序列化:便于存储,便于处理。会将不同类型的属性转化为字节传输springmvc的注解有哪些
7.试卷的随机⽣成:根据选择的不同题型的数量,去数据库查对应条数的记录,来速记除去题⽬。
8.试题是有管理员⽣成后发给⼤家?还是管理员只负责有⼏道题,在⽤户点击试卷考试的时候来随机⽣成?
管理员创建了试卷,这是题量已经确定。当学⽣考试时会触发考试事件,这时随机⽣成试卷并显⽰---ajax异步,减少页⾯抖动。
9.后台验证码是怎么实现了?调⽤⼀个⼯具类CpachaUtil,由数字、字母、感染线组成,这⾥不区分⼤⼩写。页⾯从controller中异步得到
验证码图⽚,通过⽂本框输⼊信息与随机⽣成的验证码vcode来⽐较。
10.数据库中的实现难点:
成绩传不到数据库⾥:没有触发ajax请求,⼀次没有与后台联系---通过调试发现了问题并解决了问题。
试题类型在数据库中通过questionType字段来进⾏区分:0 1 2 分别为单选 多选 判断⽇志登录功能:在触发后台⽤户login请求的时
候,会获取当前⽤户信息,logServise业务处理进⾏⽇志添加。
通过试卷的status值来判断是否已经考过
11.HSSFWorkbook在上传⽂件的时候创建Excel对象,HSSFSheet sheetAt在webbook中添加⼀个sheet,对应Excel⽂件中的sheet。
12.⽇志登录功能:在触发后台⽤户login请求的时候,会获取当前⽤户信息,logServise业务处理进⾏⽇志添加。
[org.springframework.web.hod.annotation.RequestMappingHandlerAdapter]: Constructor threw exception;
nested exception is java.lang.OutOfMemoryError: PermGen space,查资料说是问题,将l中版本改为3.0就ok---解决
了报错,但还是没有显⽰。去官⽹查询api⽂档----原来是没有加⼊echarts.min.js插件,加上后可以正确显⽰。
14.学⽣考试的实现流程:学⽣查看考试信息,在有发布了考试的情况下,点击考试----通过ajax异步获取判断是否可以⽣成试卷----⽣成后就可以考试---考完点击交卷进⾏后续的处理(提交到数据库 显⽰结果)
15.多选题的提交:中期⽼师检查完善的时候,⽼师问了我⼀个问题:你的多选题如果选择顺序不是按照选项顺序提交的话,那和数据库⾥字符串不匹配会判断成错的吧?我想了⼀会理解了这个从来没有考虑过的问题,因为我是根据属性过滤器,选择值为checked的进⾏提交,过滤的时候是从上到下开始遍历,所以没有问题,就没有进⾏排序。
16.权限问题:⽤户登录时通过获取其id到该⾓⾊,不到说明该⽤户不存在。到后连表查询【my
batis的connection和associate标签】,通过字段值roled来区分,权限的id来判断有哪些功能权限menuid。⽼师在中期检查时说可以⽤实现,这个没有尝试
17.分页的实现:每次查询的时候获取⼀下总条数,通过每页⼤⼩pagesize和偏移量offest【当前页第⼀个偏移量=前⾯有⼏页*每页条
数】-----------拓展:limit a;limit a,b;limt  a  offset b的区别
18.学⽣端的菜单是通过js事件实现的;后台的菜单栏是通过权限动态添加的,并且根据⼀级菜单的id来获取⼆级菜单,在menu表中有对应关系。根据当前菜单的id来查询menu表中parentid等于当前id的,遍历显⽰出来
19.service层与dao层写的⼀样,有什么区别?service依赖于dao层来获取数据,在service中注⼊dao。因为⾯向接⼝更灵活。
20.上传图⽚:点击上传图⽚选择图⽚后,将路径保存下来,在控制类处理:将这种MultipartFile格式传进来,判断其格式,创建或者定义要保存的图⽚的位置,即将路径保存并⽤transto⽅法写⼊磁盘。给下⼀个⽂本框追加
未解之谜:
1.多选题提交如果正确选项是DB,⽽数据库中保存的是BD,在数据库⾥好像没法识别,都按照对来处理
2.添加⼿机验证码调⽤接⼝------尝试了。
3.⽤springMVC对数据库中试题的某些标签进⾏转义,避免显⽰的时候乱码。
4.MD5进⾏数据库加密

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