Java菜鸟学习日记27

来源:互联网 发布:淘宝身高体重尺码表 编辑:程序博客网 时间:2024/06/14 09:39
Spring静态资源处理
  • 通常会配置SpeingMVC拦截所有请求,即将DisptcherServlet的url-pattern设置为/ ,此时会导致SpringMVC同时拦截 .css .jpg .js 等静态资源,而我们并不会为这些静态资源添加相应的@RequestMapping,因此导致静态资源404
  • 解决方法
  1. 让SpringMVC拦截范围缩小,即设置url-pattern为 *.do 或 *.action 或 *.spr
  2. 使用 <mvc:default-servlet-handler/> 处理静态资源请求
  3. 使用 <mvc:resources mapping="/static/**" location="/static/"/> 处理静态资源,通常会把静态资源放到static文件夹中统一管理
  4. 使用动静分离的方案,将静态文件都放在其他服务器上
    1. 优势:
      1. 静态资源移走后,SpringMVC服务器可以专门处理业务请求,不必再为静态资源消耗处理能力(CPU、内存)
      2. 更重要的是,不必为静态资源浪费带宽,可以使业务服务器能够并发处理更多请求
      3. 静态资源可以放在更便宜的服务器上,节省开支
      4. 静态资源消耗的磁盘和带宽都很大,可以借助CDN加速
        1. CDN:内容分发网络,专业从事静态资源互联网级缓存业务的公司提供的
SpringMVC手机浏览器传过来数据
  1. 直接在请求处理的方法中添加响应的参数,SpringMVC会自动将请求体/URL中的参数绑定到请求方法的参数上,要求名字必须相同。如果名字不同可以在参数上加 @RequestParam("表单中的名字")
SpringMVC请求URL与方法映射
  • @RequestMapping()
    • 既可以卸载控制器类上,也可以写在请求处理方法上。
    • 如果类上和方法上都有,URL将会连接在一起。
SpringMVC的重定向和转发
  • 在Servlet中
    • 重定向:response.sendRedirect(通常写成绝对URL)
    • 转发:request.getRequestDisptcher(url).forward(req,res)
  • 在SpringMVC中
    • 重定向:“redirect:url”:Spring会自动添加应用路径
    • 转发:“forward:url”
SpringMVC从控制器向视图传数据
  • 在Servlet中
    • 调用request.setAttribute("name",value);
    • 然后转发请求到JSP中
  • 在SpringMVC中
    • 先拿到Model,可以通过在参数中添加Model、ModelAndView等参数拿到
    • 调用 addObject() 或者 addAtrribute() 方法将数据设置进去
    • 通过Model传过去

原创粉丝点击