现在用的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);
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");
Cookie
cookie存放的位置是在浏览器里面的
// 将用户名 存放到cookie里面
Cookie cookies = new Cookie("username", uname);
// cookie设置有效时间 7天
cookies.setMaxAge(60 * 60 * 24 * 7);
// cookie加到客户端
resp.addCookie(cookies);
取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;
}