首页 > 其他分享 >JSP内置对象

JSP内置对象

时间:2023-02-13 15:07:48浏览次数:43  
标签:Insert 内置 title 对象 here jsp JSP 页面


4.JSP隐式对象

4.1 什么是隐式对象:在jsp页面里面,jsp提供了一些对象,不用咱们自己创建,可以直接使用的对象
jsp常见的九大隐式对象:
request:HttpServletRequest,请求对象,它同时也是域对象,作用范围一次请求
reqponse:HttpServletResponse,响应对象
session:HttpSession,会话对象,它同时也是域对象,作用范围一次会话。
application:ServletContext,上下文对象,同时也是域对象,作用范围整个项目。
config:ServletConfig,配置对象
out:JspWriter,其实和PrintWriter作用差不多
page:Object,代表当前jsp的页面对象。
pageContext:PageContext,jsp容器
exception:Throwable,异常对象,用来捕获异常信息。
只有当前jsp页面有isErrorPage="true"这个属性是,才能使用exception对象
4.2 out对象
out对象在输出内容到网页上面去,最终通过response缓冲区输出。

例如:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//1.使用out隐式对象输出内容:JspWriter
out.println("first line<br/>");
//2.使用PrintWriter输出
response.getWriter().print("second line<br/>");
%>
</body>
</html>

运行结果:

JSP内置对象_java


运行结果分析:

JSP内置对象_tomcat_02


4.3 pageContext对象

功能:[1]获取其它八个隐式对象

获取请求对象:getRequest();

获取响应对象:getResponse();

获取输出对象:getOut();

-----------------------

[2]操作其它三个域对象:request、session、application
pageContext也是一个域对象:作用范围在当前jsp页面。
操作其它三个域对象的方法:
1)存值:setAttribute(String key,Object obj,int scope)
APPLICATION_SCOPE:对应的是application
REQUQEST_SCOPE:对应的是request
SESSION_SCOPE:对应的是session
PAGE_SCOPE:对应的是自己 pageContext
(2)取值:getAttribute(String key,int scope);
结论:在pageContext域对象使用findAttribute(String key);方法获取值,进行了全域查找
查找范围:pageContext–>request–>session–>application
首先找域作用范围效地对象,如果有值,获取到,如果域作用范围效地对象不存在对应 的值 , 就继续向下寻找。
4.4 Exception对象
它是用来捕获异常信息的。会用到两个属性。
– errorpage:属性对应的值,处理异常信息的页面,就是说在当前页面发生了异常,跳转到处理异常信息的界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" errorPage="error.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
int a=3;
int b=0;
%>
输出:<%=a/b %>
</body>
</html>

–isErrorPage:属性对应的值是true或者false,如果为true,在当前页面可以使用exception对象

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isErrorPage="true"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
输出异常信息:<%=exception.getMessage() %>
</body>
</html>

运行结果:(这里是发生异常,跳转到error.jsp页面)

JSP内置对象_jsp页面_03


4.5 动作元素

4.5.1jsp:include动作元素:动态包含

动态包含:把其他资源页面的内容,合并到当前要包含的页面,最后一块输出。

基本语法格式:<jsp:include page=“被包含页面的url” flush=“true或者false”> </jsp:include>

动态包含特点:多个页面内容合并输出,多个jsp页面生成多个java文件,编译成多个class文件。

静态包含 特点:多个页面的内容合并输出,多个jsp页面最终生成一个java文件,编译一个class文件。

Dynamicinclude.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
dynamicinclude页面的中文---->包含页面
<jsp:include page="included1.jsp" flush="true"></jsp:include>
</body>
</html>

Included1.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%Thread.sleep(5000); %>
included1页面的中文------>这个就是被包含页面。

</body>
</html>

4.5.2 jsp:forward动作元素:请求转发。
它的作用实现请求转发,效果等同于RequestDispathcer对象的forward方法
基本语法格式<jsp:forward page=“转发页面的url地址”></jsp:forward>
转发页面的url地址:不需要携带项目名称,因为转发是服务器内部行为。
例如:
jspforward.jsp如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
转发到欢迎页面:
<jsp:forward page="welcome.jsp"></jsp:forward>
</body>
</html>
welcome.jsp如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.util.Date"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
欢迎您来访问。当前的访问时间:
<% out.println(new Date().toLocaleString()); %>
</body>
</html>

运行结果:

JSP内置对象_html_04


标签:Insert,内置,title,对象,here,jsp,JSP,页面
From: https://blog.51cto.com/u_15961549/6054127

相关文章