栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JSP核心九大内置对象

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSP核心九大内置对象

回顾:Servlect常用的对象,过滤器,监听器。
ServletConfig:对象获得静态数据
ServletContext对象:获取共享静态数据,获取共享动态数据,获取共享文件数据.
HttpServletResponse 对象HttpServlet调用HttpResponse的有关方法,生成响应数据
HttpServletRequest对象:HttpServlet调用HttpResponse的有关方法,生成响应数据,用于服务器上接收浏览器发送过来的数据信息
cookie对象,对象Session对象。程序把每个用户的数据以cookie/Session的形式写给用户各自的浏览器。
Filter:过滤器,阻止非法网站的访问。
Listener: 实现了特定接口的类为监听器,用来监听另一个Java类的方法调用或者属性改变;** 当被监听的对象发生了方法调用或者属性改变后,监听器的对应方法就会立即执行。

JSP内置对象
到服务器中的work文件中去看看


打开文件中的Out_jsp_java
package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.util.Calendar;

public final class Out_jsp extends org.apache.jasper.runtime.HttpJspbase
    implements org.apache.jasper.runtime.JspSourceDependent,
                 org.apache.jasper.runtime.JspSourceimports {

  private static final javax.servlet.jsp.JspFactory _jspxFactory =
          javax.servlet.jsp.JspFactory.getDefaultFactory();

  private static java.util.Map _jspx_dependants;

  private static final java.util.Set _jspx_imports_packages;

  private static final java.util.Set _jspx_imports_classes;

  static {
    _jspx_imports_packages = new java.util.HashSet<>();
    _jspx_imports_packages.add("javax.servlet");
    _jspx_imports_packages.add("javax.servlet.http");
    _jspx_imports_packages.add("javax.servlet.jsp");
    _jspx_imports_classes = new java.util.HashSet<>();
    _jspx_imports_classes.add("java.util.Calendar");
  }

  private volatile javax.el.expressionFactory _el_expressionfactory;
  private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;

  public java.util.Map getDependants() {
    return _jspx_dependants;
  }

  public java.util.Set getPackageimports() {
    return _jspx_imports_packages;
  }

  public java.util.Set getClassimports() {
    return _jspx_imports_classes;
  }

  public javax.el.expressionFactory _jsp_getexpressionFactory() {
    if (_el_expressionfactory == null) {
      synchronized (this) {
        if (_el_expressionfactory == null) {
          _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getexpressionFactory();
        }
      }
    }
    return _el_expressionfactory;
  }

  public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {
    if (_jsp_instancemanager == null) {
      synchronized (this) {
        if (_jsp_instancemanager == null) {
          _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
        }
      }
    }
    return _jsp_instancemanager;
  }

  public void _jspInit() {
  }

  public void _jspDestroy() {
  }

  public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
      throws java.io.IOException, javax.servlet.ServletException {

    if (!javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {
      final java.lang.String _jspx_method = request.getMethod();
      if ("OPTIONS".equals(_jspx_method)) {
        response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
        return;
      }
      if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method)) {
        response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
        response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS");
        return;
      }
    }

    final javax.servlet.jsp.PageContext pageContext;
    javax.servlet.http.HttpSession session = null;
    final javax.servlet.ServletContext application;
    final javax.servlet.ServletConfig config;
    javax.servlet.jsp.JspWriter out = null;
    final java.lang.Object page = this;
    javax.servlet.jsp.JspWriter _jspx_out = null;
    javax.servlet.jsp.PageContext _jspx_page_context = null;


    try {
      response.setContentType("text/html; charset=UTF-8");
      pageContext = _jspxFactory.getPageContext(this, request, response,
      			null, true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;

      out.write("rn");
      out.write("rn");
      out.write("rn");
      out.write("rn");
      out.write("rn");
      out.write("rn");
      out.write("Out对象rn");
      out.write("rn");
      out.write("rn");
      out.write('r');
      out.write('n');

//创建日历类
		Calendar  calendar =Calendar.getInstance();
			int AM_PM=calendar.get(calendar.AM_PM);
			if(AM_PM==calendar.AM){
				out.write("

上午时间"); }else if(AM_PM==calendar.PM){ out.write("

下午时间"); } out.write("rn"); out.write("rn"); out.write("rn"); out.write("四大作用域(有四个对象)有四个对象共享数据rn"); out.write("
rn"); out.write("seesion 浏览器不切rn"); out.write("
rn"); out.write("application 服务器不关闭rn"); out.write("
rn"); out.write("request:请求转发跳转页面的情况,只能两个页面共享数据rn"); out.write("
rn"); out.write("pageContext:该对象中只能页面自己用rn"); out.write("
rn"); out.write("才能用setAttribute的方法rn"); out.write("
rn"); out.write("将四作用域排序rn"); out.write("
rn"); out.write("pageContext request seesion application rn"); out.write("rn"); out.write("rn"); out.write(""); } catch (java.lang.Throwable t) { if (!(t instanceof javax.servlet.jsp.SkipPageException)){ out = _jspx_out; if (out != null && out.getBufferSize() != 0) try { if (response.isCommitted()) { out.flush(); } else { out.clearBuffer(); } } catch (java.io.IOException e) {} if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); else throw new ServletException(t); } } finally { _jspxFactory.releasePageContext(_jspx_page_context); } } }

从上面代码中我们可以找到这些对象
       final javax.servlet.jsp.PageContext pageContext;
    javax.servlet.http.HttpSession session = null;
    final javax.servlet.ServletContext application;
    final javax.servlet.ServletConfig config;
    javax.servlet.jsp.JspWriter out = null;
    final java.lang.Object page = this;
    javax.servlet.jsp.JspWriter _jspx_out = null;
    javax.servlet.jsp.PageContext _jspx_page_context = null;


什么是内置对象,在jsp文件运行后,会翻译成一个Servlect类,
在这个类中可以直接调用的对象


九大内置对象的核心表格
out       JspWriter  将文本信息输出浏览器
requestHttpServletRequest  获得浏览器发送来的数据
respone HttpServletRequest 回复浏览器请求
seesionHttpSeesion         在不换浏览器放信息    
exceptionThrowable   异常报错
pageServlect(this)  jsp翻译出来类的对象
config    ServlectConfig          静态数据
applicationServlectContext   共享数据
pageContext PageContextjsp     管理者引出对象

   
        final javax.servlet.jsp.PageContext pageContext;
    javax.servlet.http.HttpSession session = null;
    final javax.servlet.ServletContext application;
    final javax.servlet.ServletConfig config;
    javax.servlet.jsp.JspWriter out = null;
    final java.lang.Object page = this;
    javax.servlet.jsp.JspWriter _jspx_out = null;
    javax.servlet.jsp.PageContext _jspx_page_context = null;


四大作用域(有四个对象)有四个对象共享数据
seesion   浏览器不切
application  服务器不关闭
request:请求转发跳转页面的情况,只能两个页面共享数据
pageContext:该对象中只能页面自己用
才能用setAttribute的方法
将四作用域排序
pageContext 这些对象应用的方式和Servlect相似 回顾jsp一些重要标签和指令

<%! %>:用于在jsp文件中定义全局变量和方法
<%= %>:用于在jsp文件中将java中的数据结果显示在html文本中
<% %>:用于在jsp文件中执行多行代码,包括if,while,for,创建对象等等
<%-- --%>:用于在jsp文件中的注释
<%@ %>:用于在jsp文件中操作指令代码

Jsp常用的三大指令:page,include,taglib page指令的常用属性:
import:导入所需要的包
language:当前jsp页面里面可以嵌套的语言
contenType:设置响应流的编码,及通知浏览器用什么编码打开
pageEncoding:设置页面的编码
extends:声明当前jsp的页面继承于哪个类
session:设置jsp页面是否可以使用session内置对象
buffer:设置jsp页面的流的缓冲区大小
autoFlush:是否自动刷新
isELIgnored:是否忽略el表达式
errorPage:当前jsp页面出现异常的时候要跳转到的jsp页面
isErrorPage:当前jsp页面是否是一个错误页面
运行页面结果

 

 

 

 

 

 

 代码区
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


欢迎来到a.jsp文件 <% String a=(String)request.getAttribute("a"); out.write("通过请求转发获得的数据为"+a); %>


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here



<%-- application,	ServlectContext	对象八ServlectContext 		共享数据  整个项目中只会有一个对象 
tomcat 服务器 一关闭 数据释放 数据的共享更服务器相关 --%>

<%
//获得静态数据
	String info =application.getInitParameter("a");
	out.write(info);
	//动态数据
	out.write("
"); application.setAttribute("c", "我是动态数据"); out.write((String)application.getAttribute("c")); %>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


<%--     config 第七个对象		类名ServlectConfig			增加静态数据   --%>
<%
String name = config.getServletName();
out.write(name);

%>


<%@ page language="java"  errorPage="error.jsp"    contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here

*{
font-size: 29px;
color: red;
}





<%-- <%int a=100/0; %> --%>

<% int [] arr =new int [3]; System.out.println(arr[3]); %>
<%-- <% Integer i =new Integer ("abd"); %> --%>

<%@ page language="java"    isErrorPage="true"  contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here



除数不能为0:用户


<%= exception.getMessage() %>
<%=exception.toString() %>
<%=exception.hashCode()%>



<%@page import="java.util.Calendar"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Out对象


<%--  --%>
<%
//创建日历类
		Calendar  calendar =Calendar.getInstance();
			int AM_PM=calendar.get(calendar.AM_PM);
			if(AM_PM==calendar.AM){
				out.write("

上午时间"); }else if(AM_PM==calendar.PM){ out.write("

下午时间"); } %> 四大作用域(有四个对象)有四个对象共享数据
seesion 浏览器不切
application 服务器不关闭
request:请求转发跳转页面的情况,只能两个页面共享数据
pageContext:该对象中只能页面自己用
才能用setAttribute的方法
将四作用域排序
pageContext request seesion application


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


<%--对象 page 对象 六  page,		Servlect(this)			jsp翻译出来类的对象   --%>
<%
out.write((page.equals(this)?"page是当前对象":"page不是当前对象"));
%>


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Request对象


<%-- jsp九大对象 request 类名HttpSevlectRequest --%>
<% 
		String name=request.getParameter("name");
		out.write("我收到浏览器发送的数据为"+name);
		out.write("

http://localhost:8080/Day_13/Request.jsp?name=xao"); //携带数据跳转页面 request.setAttribute("a", "apple"); request.getRequestDispatcher("a.jsp").forward(request, response); %>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


<%-- jsp九大内置对象  Respone对象三类名 HttpServlectRespone--%>

Respone.jsp <% response.sendRedirect("Out.jsp"); out.write("Hellow JSP"); %>


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


<%----  对象四Session  HttpSession   Session放的数据为同已过浏览器服务器 所有Servlect 和 jsp
 都能共享Session里数据 --%>
<%


		session.setAttribute("b", "我是session对象的定义b");
		session.setAttribute("c", "我是session对象的定义c");
		out.write((String)session.getAttribute("b"));
		out.write((String)session.getAttribute("c"));



%>

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462025.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号