现在用的jsp的页面里面都是静态的内容
如果需要使用一些动态的数据的话 我们就使用Servlet来代替jsp
重定向
重定向使用的一个对象是HttpServletResponse resp
resp.sendRedirect(’" "’) 你要跳转到的路径 (url)
http://localhost:8080/Test/index.jsp
http://localhost:8080/Test/success
请求转发
http://localhost:8080/Test/login
HttpServletRequest req
请求转发
重定向:地址栏里面的地址发生变化 发出的是两次请求 不安全 地址暴露 不传值
请求转发: 地址栏不发生变化 发出的是一次请求 安全 地址不暴露 传值
Session
HttpSession session = req.getSession(); HttpSession session1 = req.getSession(true); HttpSession session2 = req.getSession(false);123
HttpSession 方法
方法名 | 说明 | |
---|---|---|
setAttribute(“key”,value) | 将值存放到session里面,这个值的作用范围在整个会话当中,存值的时候是一个键值对的形式 | |
Object getAttribute(“key”) | 从session里面进行取值,取值的时候直接输入存放的键值对的key的值就可以了 | |
String getId() | session的id值 |
session的值存在于内存中的
存值 HttpSession session = req.getSession(); session.setAttribute("username", uname); 取值 HttpSession session = req.getSession(); String name = (String) session.getAttribute("username");123456789
Cookie
cookie存放的位置是在浏览器里面的
// 将用户名 存放到cookie里面 Cookie cookies = new Cookie("username", uname); // cookie设置有效时间 7天 cookies.setMaxAge(60 * 60 * 24 * 7); // cookie加到客户端 resp.addCookie(cookies);123456
取Cookie里面的值
// 查看cookie里面有没有值 Cookie[] cookies1 = req.getCookies(); String names = ""; String values = ""; for (Cookie cookie2 : cookies1) { if (cookie2.getName().equals("username")) { names = "username"; values = cookie2.getValue(); } System.out.println(cookie2.getName() + "----*********---" + cookie2.getValue()); } if (names.equals("username")) { session.setAttribute("username", values); resp.sendRedirect("success"); return; }