学习笔记
通过Servlet实现web资源间跳转的三种方式
方式一:重定向
跳转过程中传输数据可用 url?key=value&key=value 的方式,此处resp为 Servlet的响应参数。
resp.sendRedirect("http://localhost:8080/web/B?name=zhangsan&id=101");
方式二:请求转发
跳转中传输数据可用req.setAttribute(“key”,value)方法,下一资源获取数据req.getParameter(“key”),返回一个字符串对象,可通过强转获得所需类型对象。此处req为Servlet的请求参数。
注意:要先设置请求属性再跳转资源,否则跳转资源接收到的请求数据值为null。使用方式二跳转时要使用相对路径!!!
// A--> B --> C,C能直接获取到A请求属性中的数据,另外两种方式则不行
req.setAttribute("key",value);
req.getRequestDispatcher("B").forward(req,resp);
方式三:js跳转
跳转过程中传输数据可用 url?key=value&key=value 的方式
基于http响应对象,得到一个字符输出流对象,通过输出流将js样式标记传输到浏览器端。
PrintWriter pw = resp.getWriter();
pw.println("<script>window.location.href='http://localhost:8080/web/B?name=zhangsan&id=101'</script>");