Request
前台传数据
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/r1" method="post">
用户名:<input type="text" name="name"><br>
爱好:
<input type="checkbox" name="hobby" value="听歌">听歌
<input type="checkbox" name="hobby" value="代码">代码
<input type="checkbox" name="hobby" value="电影">电影
<br>
<input type="submit">
</form>
</body>
</html>
后台接收
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
req.setCharacterEncoding("utf-8");
String name = req.getParameter("name");
String[] hobby = req.getParameterValues("hobby");
resp.getWriter().write(name);
resp.getWriter().write(Arrays.toString(hobby));
问题:重定向和转发的区别?
答:相同点页面都会跳转
不同点:重定向路径会改变 302,
转发不会改变路径 307
Cookie
客户端技术(响应请求)
// 新建Cookie
Cookie ck = new Cookie("name","加菲猫");
// 设置Cookie有效时间
ck.setMaxAge(1000);
// 添加到Response中
resp.addCookie(ck);
// 获取Requset传过来的Cookie
Cookie[] cookies = req.getCookies();
// 判断是否为空
if (cookies != null)
// 获取name
cookie.getName()
// 获取值
cookie.getValue()
Session
服务器技术,利用这个技术,可以保存用户的会话信息,我们可以把信息或者数据放在Session中!
// 获取Session
HttpSession session = req.getSession();
// 在session存储东西
session.setAttribute("name","加菲猫");
// 获取session的id
String id = session.getId();
// 获取值
session.getAttribute("name")
// 注销
session.invalidate();
<!--设置Session有效时间-->
<session-config>
<session-timeout>1</session-timeout>
</session-config>
常见:网站登录之后,下次就不用再登录了
Session和cookie的区别
- Cookie是把用户的数据写给用户的浏览器,浏览器保存(可以保存多个)
- Session把用户的数据写到用户独占的Session中,服务器端保存(保存重要的信息,减少服务器资源的浪费)
使用场景 - 保存一个登录用户的信息
- 购物车信息
- 在整个网站中经常会使用到的数据,我们将它保存在Session中