当我们浏览一个网页的时候,从index.jsp页面到xx.jsp页面,这里存在一个跳转的过程。
Servlet实现页面跳转有两种办法:转发和重定向。
注意哦,转发对新页面的请求是发生在后端,重定向对新页面的请求是发生在前端。
转发:
1、request.getRequestDispatcher("跳转页面URL").forward(request, response);
2、POST 请求;
3、页面跳转后地址栏URL不变;
4、发送一次请求;
5、不能跳到其他网站;
6、传值方式(request.setAttribute("key", value))
重定向:
1、respose.sendRedirect("跳转页面URL");
2、GET 请求;
3、页面跳转后地址栏URL改变;
4、至少发送两次请求;(request与服务器断开,重新请求URL)
5、可以跳到其他网站;
6、传值方式:url = "...? key = value"
Session:
Session是服务器端技术,服务器在运行时可以为每一个用户的浏览器创建一个独享的session对象.由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其他web资源时,其他web资源再从用户各自的session中取出数据为用户服务.总而言之,将数据保存在服务器.
Session工作流程为:
首先客户端登录账号密码访问服务器, 服务器收到请求后获取到参数内容后, 创建一个session对象, 获取sessionId, 将sessionid保存到cookie中(Cookie c = new Cookie(“JSESSIONID”, sessionid)), 然后通过response.addCookie©响应给客户端, 获取到的参数也要保存到session中, 当客户端再次请求服务端时, 就会携带带有sessionid的cookie请求服务器, 此时通过sessionid获取session对象, 再从session中获取共享数据~
1.获取Session对象
HttpSession session = request.getSession(): 获取Session对象,如果没有Session对象,直接创建一个新的返回,缺省值
2.设置共享数据
往Session中存放键值对
session.setAttribute(String name, Object value);
1
从Session中取出数据
Object value = session.getAttribute(String key);