JSP response隐式对象,在这篇文章中,我们将讨论 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 页面重定向到geek-docs.com
。response.sendRedirect("http://geek-docs.com");
void addHeader(String name, String value)
–addHeader
方法为响应添加一个标题,基本上它包含一个标题名称及其值。例如 – 以下语句将在响应中包含标题"Site"
,其值为"geek-docs.com"
。response.addHeader("Site", "geek-docs.com");
void setHeader(String name, String value)
– 设置标头值。此方法使用新值覆盖标头的当前值。假设我正在修改标头"Site"
的值。以下声明会将当前值geek-docs.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);
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("geek-docs"))
{
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 和密码错误时。