接收参数

  • 接收单个参数

    1
    String username = request.getParameter("username");
  • 接收多个参数【前端使用checkbox等,产生数组】

    1
    String[] hobbies = request.getParameterValues("hobby");

设置请求转发

1
request.getRequestDispatcher("success.jsp").forward(request, response);

image-20210501221142975

  • 参考:重定向

    1
    response.sendRedirect("/hello/home.html");
  • 请求转发是使用request,而重定向使用response

  • 请求转发状态码:302,重定向状态码:307。

  • 请求转发url不会发生改变,重定向url会改变。

小Tip

ConText

java web 中关于ConText的简介_码上人生的博客-CSDN博客

JavaWeb—ServletContext - 简书 (jianshu.com)

Cookie和Session

  • Cookie:请求中获得到cookie,服务器响应。

  • 一个web站点最多存放20个cookie,大小限制4kb,300个cookie浏览器上限。

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Cookie[] cookies = request.getCookies();
    if (cookies != null){
    for (Cookie cookie : cookies) {
    if (cookie.getName().equals("lastLoginTime")) {
    long l = Long.parseLong(cookie.getValue());
    Date date = new Date(l);
    writer.write("现在是"+date.toLocaleString());
    }
    }
    } else {
    writer.write("第一次访问");
    }
    Cookie cookie = new Cookie("lastLoginTime", System.currentTimeMillis()+"");
    cookie.setMaxAge(24*60*60);
    response.addCookie(cookie);
  • 1
    Set-Cookie: lastLoginTime=1619883448706; Max-Age=86400; Expires=Sun, 02-May-2021 15:37:28 GMT
  • 删除cookie:设置一个同名cookie,有效期设置为0。

Session

  • 服务器会为每位用户(浏览器)创建一个Session对象。一个Session独占一个浏览器。

  • session可以存储对象。

  • 1
    2
    3
    4
    5
    6
    7
    8
    HttpSession session = request.getSession();
    session.setAttribute("name", "HUII");
    String sessionId = session.getId();
    if (session.isNew()){
    response.getWriter().write("创建成功"+sessionId);
    } else {
    response.getWriter().write("已存在"+sessionId);
    }
  • 1
    Set-Cookie: JSESSIONID=C222FB743499A0BA36C8B737CED42FFB; Path=/javaweb3_war; HttpOnly
  • 删除某个

    1
    session.removeAttribute("name");
  • 手动注销,清除所有内容(同时生成新的)

    1
    session.invalidate();
  • 1
    2
    3
    4
    5
    6
    <web-app>
    <session-config>
    <!--失效时间,以分钟为单位-->
    <session-timeout>15</session-timeout>
    </session-config>
    </web-app>