jsp中response.sendRedirect()和 jsp:forward的用法和区别

  • response.sendRedirect()会在客户端呈现跳转后的URL地址;(可以执行后面的语句eg:Request.jsp)这种称为客户端跳转,使用response.sendRedirect()方法将重定向的URL发送到客户端,浏览器再根据这个URL重新发送请求。用这个方法时,在浏览器地址栏上会看到新的请求资源的地址。并且这时的request和response都与第一次的不一样了,因为重新产生了response和request。
  • 使用< jsp:forward>完全是在服务器上进行。浏览器上的地址栏中的地址保持不变。(不能执行后面的语句eg:testjspforward.jsp所示)这种跳转称为服务器端的跳转。所以使用这个方法时没有产生新的request和response。因为request没有变,所以可以用request传递参数。
  • response.sendRedirect()方法想带参数的话,在地址中写成 XXX.jsp?param1=aaa&... 这种形式传递参数。< jsp:forward>能使用< jsp:param/>标签向目标文件传递参数和值,目标文件必须是一个动态的文件,能够处理参数。
  • < jsp:forward>后面的语句不会被执行也不会继续发送到客户端,response.sendReedirect()方法后面的语句会继续执行,除非语句前面有return。
  • < jsp:forward>是在服务器的内部转换,只发送给客户端最后转到的页面,速度会比较快;response.sendReedirect()方法需要服务器与客户端之间的往返,可以转到任何页面包括网络有效的域名,但速度比较慢。

使用Redrect.jsp对象
1.Redrect.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




sendRedirect


输入用户名:
<% String name=request.getParameter("name"); if(name!=null){ response.sendRedirect("redirect.jsp?sendname="+name); System.out.print("重定像后的语句执行"); } %>

2.testRedrect.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




重定向的页面


	<%
		String sendname=request.getParameter("sendname");
	%>
	用户名:
	<%=sendname %>


运行结果
jsp中response.sendRedirect()和 jsp:forward的用法和区别_第1张图片jsp中response.sendRedirect()和 jsp:forward的用法和区别_第2张图片
使用jsp:forward对象

先将部分代码注释掉
1.usejspforward.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


	
	
	<%= "hello jspforward" %>


运行结果
jsp中response.sendRedirect()和 jsp:forward的用法和区别_第3张图片
取消注释后

1.usejspforward.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


	
		
	
	
	<%= "hello jspforward" %>


2.testjspforward.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


	<% String sendname=request.getParameter("sendname");%>
	用户名=<%=sendname %>


运行结果
jsp中response.sendRedirect()和 jsp:forward的用法和区别_第4张图片

你可能感兴趣的:(JSP)