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型,在使用时要注意类型转换。
写一段示例代码:
Jsp代码
- <%@ 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>密 码:<input type="password" name
="userPwd" /><br/></p>
- <p><input type = "submit" value = "登陆"
/><br/></p>
- </form>
- <a
href="reg.jsp">注册新用户</a>
- </body>
- </html>
Jsp代码
- <%@ 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>
关于if(rs.next())
时间: 2024-10-23 15:57:15