JSP |隐式对象——请求和响应
必备: JSP 简介
JSP 代表Java Server Pages,它是一种服务器端技术。它用于创建 Web 应用程序和动态 Web 内容。 JSP 的主要属性是我们可以使用 JSP 标签将我们的Java代码插入到我们的 HTML 页面中。 JSP 为您提供与平台无关的页面。
html
<%@ page language = "java" contentType = "text/html; charset = UTF-8"
pageEncoding = "UTF-8"%>
Insert title here
<% Geeks saying hello to JSP %>
html
Insert title here
html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
<%
String name=request.getParameter("username");
out.print("Welcome "+ name);
%>
html
GeeksforGeeks
<%
//below line in JSP redirect you to geeksforgeeks page
response.sendRedirect("geeksforgeeks.org");
%>
隐式对象是 JSP 容器在每个页面上向开发人员提供的一组Java对象。这些对象可以通过脚本元素作为内置变量访问,也可以通过 JavaBeans 和 Servlets 以编程方式访问。JSP 为您提供总共 9 个隐式对象,如下所示
- request :这是与请求关联的HttpServletRequest类的对象。
- response :这是与对客户端的响应相关联的HttpServletResponse类的对象。
- config :这是与页面关联的ServletConfig类的对象。
- application :这是与应用程序上下文关联的ServletContext类的对象。
- session :这是与请求关联的HttpSession类的对象。
- 页面上下文:这是PageContext类的对象,它封装了服务器特定功能的使用。此对象可用于查找、获取或删除属性。
- page object :我们使用关键字this表示当前对象的方式,page object 用于引用当前翻译的 servlet 类。
- exception :异常对象表示由相应 jsp 访问的所有错误和异常。异常隐式对象的类型为Java.lang.Throwable 。
- out:这是PrintWriter对象,其中 print 和 println 等方法有助于向客户端显示内容。
在本文中,讨论了请求和响应这两个主要对象
请求对象
JSP 请求是由 HttpServletRequest 提供的隐式对象。在 servlet 中,我们必须首先导入 javax.servlet.http.HttpServletRequest 然后我们必须创建它的对象,以便从任何 HTML 表单中获取输入。
句法 :
import javax.servlet.http.HttpServletRequest;
public class LoginServlet extends HttpServlet
{
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
HttpSession session = request.getSession()
}
}
在 JSP 中,请求对象是隐式定义的,因此您不必创建对象。 JSP 请求对象由 Web 容器为客户端的每个请求创建。用于获取参数值、服务器名称、服务器端口等。
在下面的示例中,我们使用请求对象来显示用户名。
html
Insert title here
输出
响应对象
这是与对客户端的响应相关联的 HttpServletResponse 对象。响应对象还定义了处理创建新 HTTP 标头的接口。通过这个对象,JSP 程序员可以添加新的 cookie 或日期戳、HTTP 状态代码等。
html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
<%
String name=request.getParameter("username");
out.print("Welcome "+ name);
%>
输出
在 JSP 中,响应对象是隐式定义的,因此您不必创建对象。 JSP 响应对象由 Web 容器为客户端的每个请求创建。它基本上用于重定向到任何其他资源。
在下面的示例中,我们使用响应对象在 Geeksforgeeks 主页上发送用户。
html
GeeksforGeeks
<%
//below line in JSP redirect you to geeksforgeeks page
response.sendRedirect("geeksforgeeks.org");
%>
输出
JSP 相对于 servlet 的优势:
- Servlet 比 JSP 更难编码。换句话说,我们可以说,JSP 是 Servlet 的替代品。
- 在 Servlet 中,静态代码和动态代码放在一起。在 JSP 中,它们是分开的。
- PrintWriter、ServletConfig、ServletContext、HttpSession、RequestDispatcher等对象由程序员在Servlets中创建。但是在 JSP 中,它们是内置的,被称为隐式对象。
坏处 :
- JSP 页面需要更多内存来保存页面。
- 输出是 HTML 格式,对于观众来说并不丰富。