本文发布于1288 天前,最后更新于612天前,其中的信息可能已经有所发展或是发生改变。
接收参数
- 接收单个参数
String username = request.getParameter("username");
- 接收多个参数【前端使用checkbox等,产生数组】
String[] hobbies = request.getParameterValues("hobby");
设置请求转发
request.getRequestDispatcher("success.jsp").forward(request, response);
- 参考:重定向
response.sendRedirect("/hello/home.html");
- 请求转发是使用request,而重定向使用response。
- 请求转发状态码:302,重定向状态码:307。
- 请求转发url不会发生改变,重定向url会改变。
小Tip
- 处理中文显示乱码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset-utf-8");
ConText
java web 中关于ConText的简介_码上人生的博客-CSDN博客
JavaWeb–ServletContext – 简书 (jianshu.com)
Cookie和Session
- 区别:cookie和session的详解与区别 – 测试开发喵 – 博客园 (cnblogs.com)
- cookie:信息在浏览器保存;session:信息在服务器保存
Cookie
- Cookie:请求中获得到cookie,服务器响应。
- 一个web站点最多存放20个cookie,大小限制4kb,300个cookie浏览器上限。
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);
Set-Cookie: lastLoginTime=1619883448706; Max-Age=86400; Expires=Sun, 02-May-2021 15:37:28 GMT
- 删除cookie:设置一个同名cookie,有效期设置为0。
Session
- 服务器会为每位用户(浏览器)创建一个Session对象。一个Session独占一个浏览器。
- session可以存储对象。
HttpSession session = request.getSession();
session.setAttribute("name", "HUII");
String sessionId = session.getId();
if (session.isNew()){
response.getWriter().write("创建成功"+sessionId);
} else {
response.getWriter().write("已存在"+sessionId);
}
Set-Cookie: JSESSIONID=C222FB743499A0BA36C8B737CED42FFB; Path=/javaweb3_war; HttpOnly
- 删除某个
session.removeAttribute("name");
- 手动注销,清除所有内容(同时生成新的)
session.invalidate();
<web-app>
<session-config>
<!--失效时间,以分钟为单位-->
<session-timeout>15</session-timeout>
</session-config>
</web-app>