原文: https://beginnersbook.com/2013/11/jsp-implicit-object-response-with-examples/
在这篇文章中,我们将讨论 JSP 中的response
隐式对象。它是javax.servlet.http.HttpServletRequest
的一个实例,主要用于修改处理客户端请求后发送给浏览器的响应。
void setContentType(String type)
void sendRedirect(String address)
void addHeader(String name, String value)
void setHeader(String name, String value)
boolean containsHeader(String name)
void addCookie(Cookie value)
void sendError(int status_code, String message)
boolean isCommitted()
void setStatus(int statuscode)
让我们详细了解每种方法:
-
void setContentType(String type)
- 此方法通过设置 MIME 类型和字符编码告诉浏览器,响应数据的类型。此方法设置的信息有助于浏览器解释响应。示例:response.setContentType("text/html"); response.setContentType("image/gif"); response.setContentType("image/png"); response.setContentType("application/pdf");
-
void sendRedirect(String address)
- 它将控件重定向到新的 JSP 页面。对于例如当浏览器检测到以下语句时,它将从当前 JSP 页面重定向到beginnersbook.com
。response.sendRedirect("http://beginnersbook.com");
-
void addHeader(String name, String value)
-addHeader
方法为响应添加一个标题,基本上它包含一个标题名称及其值。例如 - 以下语句将在响应中包含标题"Site"
,其值为"BeginnersBook.com"
。response.addHeader("Site", "BeginnersBook.com");
-
void setHeader(String name, String value)
- 设置标头值。此方法使用新值覆盖标头的当前值。假设我正在修改标头"Site"
的值。以下声明会将当前值BeginnersBook.com
修改为新值BB.com
response.setHeader("Site", "BB.com");
-
boolean containsHeader(String name)
- 它返回一个布尔值true/false
。它基本上检查响应中是否存在标题。例如 - 在上面,在addHeader
方法示例中,我们在响应中添加了Site
标头,因此以下语句将返回true
。response.containsHeader("Site");
-
void addCookie(Cookie cookie)
- 此方法将 cookie 添加到响应中。以下陈述将在回复中添加 2 个 CookieAuthor
和Siteinfo
。response.addCookie(Cookie Author); response.addCookie(Cookie Siteinfo);
-
void sendError(int status_code, String message)
- 它用于通过代码和错误消息发送错误响应。例如:response.sendError(404, "Page not found error");
-
boolean isCommitted()
- 检查 Http 响应是否已发送到客户端,如果是,则返回true
,否则返回false
。<% if(response.isCommited()) { <%--do something --%> }else { <%--do something else --%> } %>
-
void setStatus(int statuscode)
- 此方法用于将 HTTP 状态设置为给定值。对于例如以下语句将 HTTP 响应代码设置为 404(找不到页面)。response.setStatus(404);
在下面的示例中,我们从登录页面接收 id 和密码,然后我们将它们与硬编码的正确id
/pass
匹配。如果凭据正确,则登录页面会重定向到成功页面,否则会重定向到登录失败的 JSP 页面。
index.html
<html>
<head>
<title>Login Page</title>
</head>
<body>
<form action="checkdetails.jsp">
UserId: <input type="text" name="id" /> <br><br>
Password: <input type="text" name="pass" /> <br><br>
<input type="submit" value="Sign In!!"/>
</form>
</body>
</html>
此 JSP 页面根据硬编码值验证输入id
/pass
。
checkdetails.jsp
<html>
<head><title>Check Credentials</title>
</head>
<body>
<%
String uid=request.getParameter("id");
String password=request.getParameter("pass");
session.setAttribute("session-uid", uid);
if(uid.equals("Chaitanya") && password.equals("BeginnersBook"))
{
response.sendRedirect("success.jsp");
}
else
{
response.sendRedirect("failed.jsp");
}
%>
</body>
</html>
如果id
/pass
与硬编码的用户 ID /密码匹配,则会执行此 JSP 页面。
success.jsp
<html>
<head><title>Success Page</title>
</head>
<body>
<%
String data=(String)session.getAttribute("session-uid");
out.println("Welcome "+ data+"!!");
%>
</body>
</html>
如果用户输入的凭据错误,控件将重定向到此页面。
failed.jsp
<html>
<head><title>Sign-in Failed Page</title>
</head>
<body>
<%
String data2=(String)session.getAttribute("session-uid");
out.println("Hi "+ data2+". Id/Password are wrong. Please try Again.");
%>
</body>
</html>
登录页面
成功页面:当userId
和密码正确时。
登录时错误的细节。
登录失败页面:当 Id 和密码错误时。
目前为止就这样了。如果您对 JSP 中的response
隐式对象有任何疑问和疑问,请告诉我们。