JSP九大内置对象

、JSP九大内置对象具体解释

内置对象(又叫隐含对象。有9个内置对象):不须要预先声明就能够在脚本代码和表达式中任意使用

JSP内置对象映射表


request              请求对象                 类型 javax.servlet.ServletRequest        作用域 Request
response           响应对象                   类型 javax.servlet.SrvletResponse       作用域  Page
pageContext      页面上下文对象         类型 javax.servlet.jsp.PageContext      作用域    Page
session             会话对象                   类型 javax.servlet.http.HttpSession       作用域    Session
application        应用程序对象            类型 javax.servlet.ServletContext          作用域    Application
out                    输出对象                   类型 javax.servlet.jsp.JspWriter             作用域    Page
config               配置对象                   类型 javax.servlet.ServletConfig            作用域    Page
page                页面对象                   类型 javax.lang.Object                            作用域    Page
exception         例外对象                   类型 javax.lang.Throwable                     作用域    page

JSP中一共预先定义了9个这种对象,分别为:request、response、session、application、out、pagecontext、config、page、exception

2.1、request对象

request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了client的请求信息。主要用于接受通过HTTP协议传送到server的数据。

(包括头信息、系统信息、请求方式以及请求參数等)。request对象的作用域为一次请求。

实现常有的方法

1、获取数据

getParameter;;接收请求參数的,

2、对全部数据进行再编码

public byte[] getBytes(“encoding”)
例如以下实例将byte数组编码转换

<%@ page contentType="text/html";charset=gbk"%>
<html>
       <body>
             <%
                     //接收内容
                     String name=request.getParameter("uname");
                     byte[] b=name.getBytes("ISO8859-1");
                     name=new String(b);
                     String name= new String(request.getParameter("uname").getBytes("ISO8859-1"));
              %>
              <h1>输入内容为:<%=name%></h1>
       </body>
</html>

3、设置统一的请求编码

public void setCharacterEncoding(String env) throws UnsunpportedEncodingException
例如以下设置

<%@ page contentType="text/html";charset=gbk"%>
<html>
       <body>
              <%
                     //接收内容
                     request.setCharacterEncoding("GBK");
                     String name= request.getParameter("uname");
              %>
              <h1>输入内容为:<%=name%></h1>
       </body>
</html>

4、获取requst信息:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body bgcolor="#FFFFF0">
<form action="" method="post">
   <input type="text" name="name">
   <input type="submit" value="提交">
</form>
请求方式:<%=request.getMethod()%><br>
请求的资源:<%=request.getRequestURI()%><br>
请求用的协议:<%=request.getProtocol()%><br>
请求的文件名称:<%=request.getServletPath()%><br>
请求的server的IP:<%=request.getServerName()%><br>
请求server的端口:<%=request.getServerPort()%><br>
clientIP地址:<%=request.getRemoteAddr()%><br>
client主机名:<%=request.getRemoteHost()%><br>
表单提交来的值:<%=request.getParameter("name")%><br>
</body>
</html>

我们第一次訪问是默认用GET方法,表单提交后使用POST方式。



2.2、response对象

        response 代表的是对client的响应,主要是将JSP容器处理过的对象传回到client。

response对象也具有作用域。它仅仅在JSP页面内有效。response对象的主要使用1.设置HTTP头信息、重定向、设置COOKie
(1).Webserver收到一个http请求,会针对每一个请求创建一个HttpServletRequest和HttpServletResponse对象,向client发送数据找HttpServletResponse,从client取数据找HttpServletRequest;

(2).HttpServletResponse对象能够向client发送三种类型的数据:a.响应头b.状态码c.数据

2.2.1、response对象所提供的方法。
(1)设定表头的方法

void addCookie(Cookie cookie) 新增cookie
void addDateHeader(String name, long date) 新增long类型的值到name标头
void addHeader(String name, String value) 新增String类型的值到name标头
void addIntHeader(String name, int value) 新增int类型的值到name标头
void setDateHeader(String name, long date) 指定long类型的值到name标头
void setHeader(String name, String value) 指定String类型的值到name标头
void setIntHeader(String name, int value) 指定int类型的值到name标头
containsHeader( String name )推断指定名字的HTTP文件头是否已经存在。然后返回真假布尔值
(2)设定响应状态码的方法
void sendError(int sc) 传送状态码(status code)
void sendError(int sc, String msg) 传送状态码和错误信息
void setStatus(int sc) 设定状态码
(3)用来URL 重写(rewriting)的方法
String encodeRedirectURL(String url) 对使用sendRedirect( )方法的URL予以编码
(4)设置重定向
sendRedirect():设置重定向页面.
2.2.2、使用范例
(1)使用response对象能够设置HTTP的头信息。

格式response.setHeader(“头信息名称”,”參数”),当中一个重要的头信息:refresh(刷新)。比如。每秒刷新一次也没。显示刷新次数:

<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 <%!int i=0; %>  
 <%  
  //每秒刷新一次   
   response.setHeader("refresh","1");  
 %>  
<%=i++ %>  
</body>
</html>
输出结果例如以下:




(2)重定向

<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%  
      response.setHeader("refresh","3;URL=index.jsp") ;  
      %>  
      三秒后跳转!

<br> 假设没有跳转。请按<a href="index.jsp">这里</a>!!

! </body> </html>

来输出结果看看:

输入http://localhost:8080/JspLearning/responseObject1.jsp,三秒后自己主动跳转到http://localhost:8080/JspLearning/index.jsp




当然还能够使用response.sendRedirect("**.jsp");命令

例如以下:

<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%  
response.sendRedirect("index.jsp");
%> 
</body>
</html>
输出结果,直接重定向返回到首页了,


(3)设置cookie

<%@pagecontentType="text/html;charset=gb2312"%>
<HTML>
<HEAD>
<TITLE>Cookie的使用</TITLE>
</HEAD>
<BODY>
<%
Cookie c1 = newCookie("name","aaa") ;
Cookie c2 = newCookie("password","111") ;
// 最大保存时间为60秒
c1.setMaxAge(60) ;
c2.setMaxAge(60) ;
// 通过response对象将Cookie设置到client
response.addCookie(c1) ;
response.addCookie(c2) ;
%>
</BODY>
</HTML> 

(4)读取cookie
<%@page contentType="text/html;charset=gb2312"%>
<HTML>
<HEAD>
<TITLE>Cookie的使用</TITLE>
</HEAD>
<BODY>
<%
// 通过request对象,取得client设置的全部Cookie
// 实际上client的Cookie是通过HTTP头信息发送到server端上的
Cookie c[] = request.getCookies() ;
%>
<%
for(int i=0;i<c.length;i++){
Cookie temp = c[i] ;
%>
<h1><%=temp.getName()%> --> <%=temp.getValue()%></h1>
<%
}
%>
</BODY>
</HTML>

2.3、session对象

session 对象是由server自己主动创建的与用户请求相关的对象。server为每一个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value能够使复杂的对象类型。而不仅仅局限于字符串类型。

(1)session(会话)对象是类javax.servlet.Httpsession的一个对象。session是从client连接server開始。到与server断开为止。
(2)session对象用于保存每一个与server建立连接的client的信息,session的ID保存于client的Cookie中,这个session ID标识唯一和用户,与其它用户的session ID不同。
(3)session对象的ID:
当一个client訪问server的一个JSP页面时,JSP引擎产生一个session对象,同一时候分配一个String类型的ID号,并发给client。

client将其存储于Cookie.a其标志了一个唯一的ID。採用getID()方法返回session对象在server端的编号。server端通过此ID,唯一地识别一个用户,并提供特殊的服务。


(4)session对象的有效期:
存在以下几个情况时,session对象和其存储的数据会消失。情况有:
当用户关闭当前正在使用的浏览器时。
关闭网页server。
用户未向server提出请求超预设时,Tomcatserver预设为30分钟;
执行程序结束session.
出现以上四种情况时。session对象会消失。

以下是一个简单的session登陆实例:

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="login.jsp" method="post">  
    username:<input type="text" name="uname"><br>  
    密  码:<input type="password" name="upass"><br>  
    <input type="submit" value="登录">  
    <input type="reset" value="重置">  
</form>  
<%  
    String name = (String)request.getParameter("uname");  
    String password = (String)request.getParameter("upass");  
    if(!(name == null || "".equals(name) || password == null || "".equals(password))){  
        if("linlin".equals(name) && "123456".equals(password)){  
            //假设登录成功,则设置session的属性范围  
            session.setAttribute("userid", name);  
            response.setHeader("refresh","3;URL= welcome.jsp");   
%>          
            <h3>用户登录成功!三秒后跳转到欢迎页……</h3>  
            <h3>假设没有跳转。请按<a href="welcome.jsp">这里</a></h3>  
<%  
        }else{  
%>  
            <h3>错误的username或密码。</h3>  
<%  
        }   
    }  
%>  
</body>
</html>

welcome.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%   //假设已经设置过了session属性,则肯定不为空  
    if(session.getAttribute("userid") != null){  
%>  
        <h3>欢迎<%=session.getAttribute("userid")%>登陆~~~~~~~~~~<a href="logout.jsp">注销</a></h3>  
<%  
    }else{  
%>  
        <h3>请先进行本系统的<a href="login.jsp">登录</a></h3>  
<%  
    }  
%>  
</body>
</html>

logout.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%  
    response.setHeader("refresh", "2;URL=login.jsp");  
    session.invalidate();   //注销表示当前的session失效  
%>  
<h3>你已成功退出本系统,两秒后返回到首页。</h3>  
<h3>假设没有跳转,请按<a href="login.jsp">这里</a></h3>  首页
</body>
</html>

结果例如以下:输入正确username与password后,等三秒,自己主动跳转到欢迎界面welcome.jsp。欢迎界面里点注销,重定向的注销界面login.jsp,等2秒后自己主动跳转到login.jsp



2.4、application对象

application 对象可将信息保存在server中,直到server关闭。否则application对象中保存的信息会在整个应用中都有效。

与session对象相比,application对象生命周期更长。相似于系统的“全局变量”。

运用实例:网页訪问计数器。

<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
  <body>
    <%
        if(application.getAttribute("counter") == null)
        {
            application.setAttribute("counter", "1");
        }
        else
        {
            String strnum = null;
            strnum = application.getAttribute("counter").toString();
            int icount = 0;
            icount = Integer.valueOf(strnum).intValue();
            icount++;
            application.setAttribute("counter", Integer.toString(icount));
            
        }
            
    %>
    
        您是第<%=application.getAttribute("counter") %>位訪问者!
</body>
</html>

输出结果:


执行结果就是訪问到该页面之后显示你是第几位訪客,刷新之后数目会添加,更换浏览器或者更换client地址都会使其訪问值正常递增。


    application的存活范围比request和session都要大。仅仅要server没有关闭,application对象中的数据就会一直存在,在整个server的执行过程当中,application对象仅仅有一个。它会被全部的用户共享。当中getRealPath这种方法能够获取资源在server上的物理路径(绝对路径),经常使用来获取上传文件时要存储文件的路径。

2.5、out 对象

out 对象用于在Web浏览器内输出信息,而且管理应用server上的输出缓冲区。

在使用 out 对象输出数据时,能够对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其它的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。

out对象的方法

clear()清除网页上输出的内容
clearBuffer()清除缓冲去的内容
close()关闭缓冲区,清除全部的内容
getBufferSize()取得缓冲区的大小
getRemaining()取得缓冲区剩余大小
isAutoFlush()获取缓冲是否进行自己主动清除的信息
print()进行页面输出
println()进行页面输出并换行

使用out对象进行页面的输出

<%@ page language="java" contentType="text/html;charset=gb2312" %>
<!DOCTYPE html>
<html>
    <head>
        <title>使用out对象输出内容</title>
    </head>
    <body>
        <%
            out.print("hello world");
            out.println("hello world");
        %>
    </body>
</html>
这里在页面上输出是没有什么差别的,假设想换行要使用html元素<br />
使用out对象获得缓冲区使用大小
<%@ page language="java" contentType="text/html;charset=gb2312" %>
<!DOCTYPE html>
<html>
    <head>
        <title>使用out对象求的缓冲区使用的大小</title>
    </head>
    <body>
        <%
            int all = out.getBufferSize();
            int remain = out.getRemaining();
            int use = all - remain;
            out.println("总的缓冲区大小为:"+all+"<br />");
            out.println("正在使用的缓冲区的大小为:"+remain+"<br />");
            out.println("剩余的缓冲区的大小为:"+use+"<br />");
             
        %>
    </body>
</html>

输出结果


2.6、pageContext 对象

pageContext 对象的作用是取得不论什么范围的參数,通过它能够获取 JSP页面的out、request、reponse、session、application 等对象。

pageContext对象的创建和初始化都是由容器来完毕的。在JSP页面中能够直接使用 pageContext对象。



这个对象代表页面上下文,该对象主要用于訪问JSP之间的共享数据。

pageContext是PageContext类的实例。使用pageContext能够訪问page、request、session、application范围的变量。

getAttribute(String name):取得page范围内的name属性。 getAttribute(String name,int scope):取得指定范围内的name属性,当中scope能够是例如以下4个值: PageContext.PAGE_SCOPE:相应于page范围。 PageContext.REQUEST_SCOPE:相应于request范围。

PageContext.SESSION_SCOPE:相应于session范围。 PageContext.APPLICATION_SCOPE:相应于application范围。


实例:

<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%

//使用pageContext设置属性。该属性默认在page范围内
pageContext.setAttribute("name","lin-pageContext");
request.setAttribute("name","lin-request");
session.setAttribute("name","lin-session");
application.setAttribute("name","lin-application");

%>
page设定的值:<%=pageContext.getAttribute("name")%><br>
request设定的值:<%=pageContext.getRequest().getAttribute("name")%><br>
session设定的值:<%=pageContext.getSession().getAttribute("name")%><br>
application设定的值:<%=pageContext.getServletContext().getAttribute("name")%><br>
范围1内的值:<%=pageContext.getAttribute("name",1)%><br>
范围2内的值:<%=pageContext.getAttribute("name",2)%><br>
范围3内的值:<%=pageContext.getAttribute("name",3)%><br>
范围4内的值:<%=pageContext.getAttribute("name",4)%><br>
<!--从最小的范围page開始。然后是reques、session以及application-->
<%pageContext.removeAttribute("name",3);%>
pageContext改动后的session设定的值:<%=session.getValue("name")%><br>
<%pageContext.setAttribute("name","lin-modify",4);%>
pageContext改动后的application设定的值:<%=pageContext.getServletContext().getAttribute("name")%><br>
值的查找:<%=pageContext.findAttribute("name")%><br>
属性name的范围:<%=pageContext.getAttributesScope("name")%><br> 
</body>
</html>

输出结果:


2.7、config 对象

config 对象的主要作用是取得server的配置信息。通过 pageConext对象的 getServletConfig() 方法能够获取一个config对象。当一个Servlet 初始化时。容器把某些信息通过 config对象传递给这个 Servlet。 开发人员能够在web.xml 文件里为应用程序环境中的Servlet程序和JSP页面提供初始化參数。

config 对象代表当前JSP 配置信息,但JSP 页面通常无须配置。因此也就不存在配置信息。

该对象在JSP 页面中非常少用,但在Servlet 则用处相对较大。由于Servlet 须要配置在web.xml 文件里,能够指定配置參数。

<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 直接输出config的getServletName的值 -->  
<%=config.getServletName()%>  
<!-- 输出该JSP中名为name的參数配置信息 -->  
name配置參数的值:<%=config.getInitParameter("name")%><br/>  
<!-- 输出该JSP中名为age的參数配置信息 -->  
age配置參数的值:<%=config.getInitParameter("age")%>  
</body>
</html>
web.xml配置里加上:

    <servlet>    
            <!--指定servlet的名字-->  
            <servlet-name>config</servlet-name>    
            <!--指定哪一个JSP页面配置成Servlet-->  
            <jsp-file>/configObject.jsp</jsp-file>  
            <!--配置名为name的參数,值为linbingwen-->  
            <init-param>    
                <param-name>name</param-name>    
                <param-value>linbingwen</param-value>    
            </init-param>    
            <!--配置名为age的參数。值为30-->  
            <init-param>    
                <param-name>age</param-name>    
                <param-value>100</param-value>    
            </init-param>    
        </servlet>    
    <servlet-mapping>   
            <!--指定将config Servlet配置到/config路径-->   
            <servlet-name>config</servlet-name>    
            <url-pattern>/config</url-pattern>    
    </servlet-mapping> 
输出结果:


2.8、page 对象

page 对象代表JSP本身。仅仅有在JSP页面内才是合法的。

page隐含对象本质上包括当前 Servlet接口引用的变量,相似于Java编程中的 this 指针。

1 什么是page对象 ?
(1) page对象代表JSP页面本身
page对象是当前JSP页面本身的一个实例,page对象在当前JSP页面中能够用thiskeyword来替代。

(2) 在JSP页面哪些地方能够使用page对象
在JSP页面的Java程序片中能够使用page对象
在JSP页面的JSP表达式中能够使用page对象

(3) page对象的基类是:java.lang.Object类。
注意:假设直接通过page对象来调用方法,就仅仅能调用Object类中的那些方法。



(4) javax,servlet.jsp.JspPage接口
JspPage接口继承于javax.servlet.Servlet接口。

我们能够使用JspPage接口对page对象进行强制类型转换,再调用JspPage接口中的各种方法。



(5) javax,servlet.jsp.HttpJspPage接口
HttpJspPage接口继承于:
javax.servlet.jsp.JspPage接口和javax.servlet.Servlet接口。



我们能够使用HttpJspPage接口对page对象进行强制类型转换,再调用HttpJspPage接口中的各种方法。

(6) 在JSP页面中使用thiskeyword。可调用哪些方法?
在JSP页面中,thiskeyword表示当前JSP页面这个对象,能够调用的常见方法,例如以下所看到的:


例如以下实例:

<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
取page的值:<%=this.getServletInfo() %>
</body>
</html>
输出结果:


2.9、exception 对象

      Exception对象是用来处理Jsp页面文件在执行时全部发生的错误和异常;Jsp页面文件必须在isErrorPage=true的情况下才干够使用该对象。该对象一般配合Page指令一起使用。通过指定某个页面为错误处理页面,把全部的错误都集中到那个页面进行处理,能够使整个系统的性能得到加强;经常用法例如以下
getMessage():返回错误信息
toString:以字符串的形式返回一个对异常的描写叙述
printStackTrace():以标准错误的形式输出一个错误和错误的堆栈

(1) 可能出错的页面:
在有可能产生异常或错误的JSP页面中。使用page指令设置errorPage属性。属性值为能够进行异常处理的某个JSP页面。
简单来说,仅仅要在当前JSP页面中产生了异常,就交给另外一个专门处理异常的JSP页面。

(2) 专门处理错误的页面:
在专门负责处理异常的JSP页面中,使用page指令设置isErrorPage属性为true,并使用exception对象来获取出错信息。

error.jsp

<%@ page language="java" contentType="text/html;charset=UTF-8" import="java.util.*" isErrorPage="true"%>
<%@ page import="java.io.PrintStream" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=exception %><br />
    <%=exception.getMessage() %><br />
    <%=exception.getLocalizedMessage() %><br />
     
    <%
        exception.printStackTrace(new java.io.PrintWriter(out));
    %>
</body>
</html>
出错的页面

<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" errorPage="error.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
            int[] arr = {1,2,4};
            out.println(arr[3]);
        %>
</body>
</html>
输出的结果:


不加errorPage="error.jsp"这句的话:代码就会暴出来了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值