jsp中 response和request区别

1、response

           属于重定向请求;

           其地址栏的URL会改变;

           会向服务器发送两次请求;

 

2、 request

            属于请求转发;

           其地址栏的URL不会改变;

           向服务器发送一次请求;

 

举一个区分它们的简单实例:

        A向B借钱:

           第一种:用response。B没有钱,请求失败,但是B告诉A,C有钱。于是A再次向C借钱,C借给A,请求成功。

           第二种:用request。B没有钱,但是B向C借钱然后给A,请求成功。这次A只发送了一次请求,他并不知道借的钱是C的。

 

 

 用response方法是这样的:

           response.sendRedirect( );

用resquest方法:

           request.setAttribute("key","value");

           request.getRequestDispatcher("index.jsp").forward(request,response);

 

这里的setAttribute传递的参数只能由request.getAttribute( )来接收。request.getAttribute( )方法返回值是object型,在使用时要注意类型转换。

 

写一段示例代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>登陆页面</title>
  </head>
  
  <body>
 	<h2>登陆页面</h2>
 	<%
 		String errorCode =(String)request.getAttribute("error");//request.getParameter("error");
 		if(errorCode != null && ! "".equals("error") && "01".equals(errorCode)){
 	 %>
 	 	<h3 style="color:red">用户名或密码错误!</h3>
 	 <%
 	 	}
 	  %>
 	
  	 <form action="login.jsp" method="post">
    		<p>用户名:<input type="text" name = "userName" /><br/></p>
    		<p>密&nbsp;&nbsp;码:<input type="password" name ="userPwd"  /><br/></p>
    		<p><input type = "submit" value = "登陆" /><br/></p>
    </form>
    	<a href="reg.jsp">注册新用户</a>
   
  </body>
</html>

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  
    <title>登陆页面</title>
 
 </head>
  
  <body>
  	<%
  		String name = request.getParameter("userName");
  		String pwd = request.getParameter("userPwd");
  		if("shamuu".equals(name) && "123".equals(pwd)){
  	 %>
  	 	<h3 style="color:red;">欢迎你!<%=name %></h3>
   	<%
   		}else{
   			//response.sendRedirect("index.jsp?error=01");
   			request.setAttribute("error","01");
   			request.getRequestDispatcher("index.jsp").forward(request,response);
   	
   	 }
   	  %>
</body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值