SSM

Author Avatar
Euan 11月 27, 2019
  • 在其它设备中阅读本文章

SSM

上海海洋大学实验报告

课程名称:Web程序设计

实验名称:Web综合程序设计

学院:信息学院
专业:软件工程

学号:***
姓名:***

ringMVC:它用于web层,相当于controller(等价于传统的servlet和struts的action),用来处理用户请求。举个例子,用户在地址栏输入http://网站域名/login,那么springmvc就会拦截到这个请求,并且调用controller层中相应的方法,(中间可能包含验证用户名和密码的业务逻辑,以及查询数据库操作,但这些都不是springmvc的职责),最终把结果返回给用户,并且返回相应的页面(当然也可以只返回json/xml等格式数据)。springmvc就是做前面和后面过程的活,与用户打交道!!

Spring:太强大了,以至于我无法用一个词或一句话来概括它。但与我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们java中的类,当然也包括service dao里面的),有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字new。另外spring的aop,事务管理等等都是我们经常用到的。

MyBatis:如果你问我它跟鼎鼎大名的Hibernate有什么区别?我只想说,他更符合我的需求。第一,它能自由控制sql,这会让有数据库经验的人(当然不是说我啦捂脸)编写的代码能搞提升数据库访问的效率。第二,它可以使用xml的方式来组织管理我们的sql,因为一般程序出错很多情况下是sql出错,别人接手代码后能快速找到出错地方,甚至可以优化原来写的sql。

MyBatis

Mapper.xml配置文件

通过parameterType指定输入参数的类型,类型可以是简单类型,pojo,包装类型,hashmap

使用占位符可以防止sql的注入,在使用时不需要关心参数的类型,mybatis会自动的进行Java与jdbc的转换。#{} 可以接受简单类型和pojo的属性值。如果parameterType中指定的是单个的简单类型,#{}中可以使用value或是其他值。

通过${}可以将parameterType传入的内容拼接在sql中,并且不进行jdbc类型转换,${}可以接受简单类型和pojo的属性值,若parameterType为单个简单类型时,${}中必须使用value。使用${}不能防止sql注入,但有时会很方便,例如:

1
2
3
<select id="findUserByUsername" parameterType="java.lang.String" resultType="User">
SELECT * FROM USER WHERE username LIKE '%${value}%'
</select>

useGeneratedKeys 设置为”true”表明要 MyBatis 获取由数据库自动生成的主键;keyProperty=”id”指定把获取到的主键值注入到 XXX(实体类) 的 id 属性。

其他

  • eclipse与idea机制不同,如果没配置好数据库,jsp引用不了css,idea不管有没有配置好数据库都可以完美引入css。可能idea项目的解藕效果更好?
  • 出现了js乱码,其他不会,eclipse配置里面默认把jsp为isoXX编码,配置后无出现乱码
  • 在后端写if判断语句对字符串进行判断时,千万不能写成 if(index ==“XX”),这么写字符串一样不一样结果都会是false;对于字符串判断要写成if(index.equals(“XX”));

finalssm

登录

  • 自动登录,拦截,cookies登录
  • Jquery下拉特效
  • 图片轮播
  • 检测输入框
  • 由于返回的User集合中有密码,setPassword使其为空
  • 修补秒杀图片

注册

  • 重新设计数据库,增加province,city,area,xiangxi替代Address,增加个人简介,取消图像和身份的唯一标识
  • 设计common共有包,包括const类型,response返回参数,serverresponse 共有pojo
  • 验证用户名,邮箱是否出现过,并集合到js中
  • 初始化禁止按钮
  • 邮箱(真实可以发送验证码)
  • md5加密
  • 增加头像

修改用户个人信息购物资料(同一个接口)

  • MultipartFile获取头像
  • uuid随机数命名文件上传到服务器
  • 检验邮箱电话是否存在,存在修改不了

用户管理

  • 显示ip,防黑客
  • 增加用户,删除用户,修改用户
  • 查找用户去掉id,新增telephone,email
  • 增加user列userstate
  • 前端接收时间时显示一串数字,需要在后段改一下格式后在发送

订单管理

  • 第五页改成第一页
  • entity定义跟数据库不相符
  • map嵌套list实现多对象查询
  • 增加商品id字段并设为dress表dressid字段的外键,增加商品数量
  • admin.js代付款重复,改为代收货
  • 实现每个类别的数据查询,以及总页面计算
  • 每个页面分别显示对应的订单信息
  • 页面无法跳转时会弹出提示
  • 可实现订单删除
  • 单个有多的订单只显示10个,不足10个则按实际显示

商品管理

  • 商品删除js存在bug,增加按钮点击后事件
  • 新增商品修改js,查询商品所有信息包括图片并显示
  • 新增商品修改js,修改商品信息

添加商品

  • jsp书城添加改成服装城添加
  • 修补预览图片链接

本文使用 CC BY-NC-SA 3.0 中国大陆 协议许可
具体请参见 知识共享协议

本文链接:https://zyhang8.github.io/2019/11/27/ssm/