请求转发与请求重定向区别(实例)
2016-09-06 16:54
471 查看
JSP内置对象请求转发与请求重定向
请求重定向:客户端行为, response, send redirect0,从本质上讲等同于两次请求前一次的请求对象不会保存,地址栏的URL地址会改变请求转发:服务器行为, request . getrequestdispatcher0. forward( req , resp):是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变
提交数据jsp文件 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> <link rel="stylesheet" type="text/css" href="css/NewFile.css"> </head> <body> <div class="fo"> <form action="user/loginServlet" meth="get"> username<input type="text" name="login"><br> password<input type="password" name="password"><br> <input type="submit" value="提交"> </form> </div> </body> </html>
处理请求文件 package servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import user.userInfo; /** * Servlet implementation class loginServlet */ //@WebServlet("/user/loginServlet") public class loginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public loginServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String username=request.getParameter("login"); String password=request.getParameter("password"); userInfo us=new userInfo(); us.setUsername(username); us.setPassword(password); if (username.equals("11")&&password.equals("22")) { HttpSession session=request.getSession(); session.setAttribute("user", us); response.sendRedirect("../main.jsp"); //测试重定向 //request.getRequestDispatcher("../main.jsp").forward(request, response); //测试转发 } else { response.sendRedirect("../index.jsp"); } } }
转发后的jsp文件 <%@page import="com.sun.xml.internal.txw2.Document"%> <%@page import="java.io.PrintWriter"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <h1>这是main.jsp</h1> <% String name=request.getParameter("login"); String pass=request.getParameter("password"); out.print(name); out.print(pass); %> </body> </html>
相关文章推荐
- 请求转发:MVC设计模式、细节、请求域属性的编程实例、请求重定向和请求转发的区别
- servlet请求转发与重定向的区别------用生活实例来形象说明两者的区别
- 请求转发:MVC设计模式、细节、请求域属性的编程实例、请求重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- 请求转发与重定向的区别
- servlet中请求转发(forword)与重定向(sendredirect)的区别
- Servlet请求转发和请求重定向之间的区别
- 请求转发与请求重定向区别详解
- 请求重定向和转发的区别
- struts2中的跳转详解 ----“请求转发”和“重定向”之间的区别
- 心得10--request介绍和案例分析、请求重定向和请求转发的区别
- HTTP中的重定向和请求转发的区别
- JAVA 的服务器重定向:使用forward()方法转发请求和使用 sendRedirect()方法重定向的区别
- 重定向和请求转发的区别
- sendRedirect(重定向)与getRequestDispatcher.forward(转发)的区别 用实例说话!
- HTTP中的重定向和请求转发的区别
- 请求转发和重定向的区别
- 请求转发与重定向的区别
- servlet请求转发与重定向的区别:
- 请求重定向和请求转发的区别