网页跳转,请求转发与请求重定向学习
2018-02-07 00:09
330 查看
请求转发(站内跳转):
请求转发以request实现,未使用response,未产生响应对象,所以request继续存在.
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
//转发时传值将值存储到request中,以键值对存储
request.setAttribute("username", username);
//转发,请求地址直接写servlet时不带"/"即可
request.getRequestDispatcher("MainServlet").forward(request, response) ;
}
站内跳转显示页面:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//取得request中信息的方法,取出后是Object的,需要强转
String username = (String)request.getAttribute("username");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" 欢迎,登陆成功! 你好:"+username);
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
请求重定向(站外跳转):
请求重定向与请求转发的区别:
1.请求转发不产生response,request不销毁,所以可以通过request将值带入到下一个页面.
请求重定向产生response,request销毁了,不可通过request传值.需要传值时使用URL传值.
2.请求转发的URL不发生改变,客户端请求A , A将请求转发给B , B做处理,但是URL依然显示A.
请求重定向URL发生改变,客户端请求A , A将请求转发给B , URL显示是B.
3.请求转发又称为站内跳转,只能跳转到网站内部的URL.无法跳出工程.
请求重定向又被成为站外跳转,可以跳转到网站外的URL资源上.
4.请求转发在服务器内部进行URL改变,速度要快于请求重定向.
请求转发以request实现,未使用response,未产生响应对象,所以request继续存在.
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
//转发时传值将值存储到request中,以键值对存储
request.setAttribute("username", username);
//转发,请求地址直接写servlet时不带"/"即可
request.getRequestDispatcher("MainServlet").forward(request, response) ;
}
站内跳转显示页面:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//取得request中信息的方法,取出后是Object的,需要强转
String username = (String)request.getAttribute("username");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" 欢迎,登陆成功! 你好:"+username);
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
请求重定向(站外跳转):
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8"); String username = req.getParameter("username"); //可将页面跳转到新的url上,此例子路径为目录webroot文件夹下html文件夹下的main.html页 resp.sendRedirect("/MyWebProject/html/main.html"); //也可直接跳转到站外页面 resp.sendRedirect("http://www.google.com"); //url跳转附带信息,但信息会显示在url上.可以直接跳转servlet实现动态网页 //跳转地址为"/工程名/配置文件中servlet的url-pattern" resp.sendRedirect("/MyWebProject/MainServlet?username="+username); }
请求重定向与请求转发的区别:
1.请求转发不产生response,request不销毁,所以可以通过request将值带入到下一个页面.
请求重定向产生response,request销毁了,不可通过request传值.需要传值时使用URL传值.
2.请求转发的URL不发生改变,客户端请求A , A将请求转发给B , B做处理,但是URL依然显示A.
请求重定向URL发生改变,客户端请求A , A将请求转发给B , URL显示是B.
3.请求转发又称为站内跳转,只能跳转到网站内部的URL.无法跳出工程.
请求重定向又被成为站外跳转,可以跳转到网站外的URL资源上.
4.请求转发在服务器内部进行URL改变,速度要快于请求重定向.
相关文章推荐
- 内部跳转(请求转发)和外部跳转(重定向)的区别?
- 内部跳转(请求转发)和外部跳转(重定向)的区别?
- JSP学习笔记(二)------请求重定向与请求转发的区别及HTTP Status Code(HTTP状态码)整理说明
- 请求转发与重定向(服务器与客户端跳转)
- 【转】struts2中的跳转详解 ----“请求转发”和“重定向”之间的区别
- struts2中的跳转详解 ----“请求转发”和“重定向”之间的区别
- JAVA 关于请求转发与请求重定向的区别【学习笔记】
- jsp学习之——关于请求转发和重定向的形象理解
- Request作为域对象存取数据 Request作为域对象;请求转发和重定向都可以完成页面跳转
- JavaWeb Filter 过滤器的机制 与使用 请求重定向与请求转发的区别 跳转过滤,过滤器dispatcher REQUEST与FORWARD区别
- 内部跳转(请求转发)和外部跳转(重定向)的区别?
- 如何深入浅出的理解跳转方式:重定向和请求转发
- 多个servlet之间的跳转(转发、重定向、请求包含)的总结
- JAVA学习笔记_request请求转发_response重定向
- struts2中的跳转详解 ----“请求转发”和“重定向”之间的区别
- JavaWeb学习之请求转发和重定向
- 请求转发和重定向两种跳转方式的区别
- 网页跳转:重定向与转发
- 内部跳转(请求转发)和外部跳转(重定向)的区别?
- 内部跳转(请求转发)和外部跳转(重定向)的区别?