Java菜鸟学习日记28

CSS样式表和JS脚本加载顺序
  • CSS样式表文件要在中先加载,这样网页显示时可以第一次就渲染出正确的布局和样式,网页就不会闪烁,或跳变
  • JS脚本尽可能放在结束时再加载,因为JS脚本作为i程序,要求按顺序执行,而且是由主线程(单个线程)去执行的,如果很多JS脚本放在头部,就会导致浏览器无法以多线程的方式加载和渲染页面,浏览器会等待所有JS一个接一个执行完毕后才继续往下加载。其结果是网页打开的速度变慢。
点击后执行一个JS函数
  1. 标签:href="javascrip:函数名(参数)"
  2. 用其他标签:οnclick="函数名(参数)"
SpringMvc在URL路径中传参数
传 id 时:
  1. /user/remove?id=123:QueryString:查询字符串传参
  2. /user/remove/123:Path:路径传参
    1. 更加漂亮,符合RESTful风格,SEO权重也比较高,有利网页排名
使用路径传参,要求映射必须能够支持占位符。
  • 所以Servlet不支持
  • SpringMVC通过下面的方式支持URL占位符
    • @RequestMapping("/user/remove/{id}")
  • 占位符可以有多个
  • 取值时,在请求方法中使用
    • @PathVariable 注解标记参数
如果希望分页页码也放在Path中
  • /user/list/3
  • user/list/1 第一页又不希望有/1
  • 如果把占位符写成/user/list/{pageNo}
    • 当访问/user/list 时就会出现 404,因为现在映射匹配不上了
    • 解决的方法是:添加一个新的请求处理方法,将映射设置为@RequestMapping("/user/list")
publilc String list() { list(1) }
SpringMVC服务端数据验证
  1. 服务端验证是必须的!即使已经通过JS在浏览器端实现了漂亮的数据验证,服务端也不能相信JS。
  2. 服务端验证可以有效的抵御网络攻击,可以保证服务器的安全,同时也能有效的检查出不合法的数据,予以拒绝,避免将非法数据写入数据库或文件
  3. 服务端验证是有关系统安全的大事!
在Java中专门有一个标准提案:JSR303负责制定数据验证的规范。JSR303的常用实现是Hibernate-Validator。JSR303规定使用注解实现验证,定义验证规则,比如是否可空、是否符合正则表达式、长度、日期格式是否正确。
常用验证注解:
SpringMVC通过@Valid调用数据验证。通过BinDingResult或者Errors请求处理参数,拿到验证结果。在请求处理方法中,应该先调用BinDingResult.hasErrors()检查是否有错误,在进行其他操作,否则会导致抛出异常。
SpringMVC通过在页面上显示错误信息

你可能感兴趣的:(学习日记)