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 个 Cookie Author和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 和密码错误时。
版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com