EasyMall第六天

8.14

  • 数据库创建乱码:库或表编码没统一
    ?useUnicode=true&characterEncoding=UTF-8
  • 实现请求重定向:
    • 同一应用或不同web应用
    • 1-1交互
    • response处理
    • 地址变化
      编号:response.setStatus(302,”redirect”);
      地址:方式一 response.setHeader(“location”,”/项目名/具体路径”);
      方式二 response.sendRedirect(“/项目名/具体路径”);
  • 实现请求转发:
    • 内部资源跳转
    • 同一应用
    • request处理:request.getRequestDispatcher(“资源路径”).forward(request,response);
    • 地址不变
    • 不能多次转发(同一servlet有两个或以上的转发),可以多重转发(servlet1->servlet2->servlet3->…)
  • getWriter()的输出并不指向浏览器的,而是指向writer的一个缓冲区
  • 请求包含(include):
    request.getRequestDispatcher(“资源路径”).include(request,respponse);
  • 定时刷新
    response.setHeader(“refresh”,”3,url=/项目名/具体路径”);
  • 倒计时
    思路:((当前时间+倒计时长)-当前时间的)做倒计时
  • 注:转发缺点、漏洞容易发生的地方:刷新时会一直转发————-解决简单方法:重定向(内部也用)
  • 服务器控制浏览器禁止缓存
    response.setDateHeader(“Expires”,-1);//存储时间 -1代表不储存
    resp.setHeader(“Cache-Control”,”no-cache”);//缓存时间,第二个参数:max-age=5
    response.setHeader(“Param”,”no-cache”);
  • 作用域对象
    1)request:一次请求开始到响应结束;在一个生命周期内,对象是一个对象,除了生命周期,对象将不再是同一个;
    setAttribute(String,Object);//设置参数
    getAttribute(String);//获取参数
    dremoveAttribute(String);//删除参数
    getAttributeNames(String);//获取同一参数的参数数组(例如:checkbox)
    等价:设置response头
    response.setHeader(“Content-Type”,”text/html;charset=utf-8”);
    response.setContentType(“text/html;charset=utf-8”);

    response.getOutputStream().write(Bytes);//根据平台的编码进行解码

2)session:
3)pageContext:
4)serverletContext(Application):

你可能感兴趣的:(项目总结,实战小小项目)