原文: https://beginnersbook.com/2013/11/jsp-implicit-object-response-with-examples/
在这篇文章中,我们将讨论 JSP 中的response隐式对象。它是javax.servlet.http.HttpServletRequest的一个实例,主要用于修改处理客户端请求后发送给浏览器的响应。
response隐式对象的方法
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.comresponse.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);
response隐式对象示例
在下面的示例中,我们从登录页面接收 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隐式对象有任何疑问和疑问,请告诉我们。
