JSP页面请求与响应以及保存页面状态 JSP内置对象简介 页面输出对象 页面对象page 页面请求对象request 页面响应对象 response 全局应用程序对象application

request
通过getParameter()方法能够得到请求的参数,请求类型(GET,POST,HEAD等)以及HTTPheaders(Cookies,Referer等)。request是ServletRequest而不是HTTPServletRequest的子类,但是request还没有Http之外其他可实际应用的协议。
该对象的作用域:为用户请求期间。
response
它的作用是向客户端返回请求。注意输出流首先需要进行缓存。虽然在Servlet中,一旦将结果输出到客户端就不再允许设置HTTP状态以及response头文件,但在JSP中这些设置是合法的。
该对象的作用域为页面执行期间。
out
这是一个javax.servlet.JspWriter类型的对象,将结果输出到客户端。为了区分response对象,JspWriter是具有缓存的PrinterWriter.我们可以通过page属性调缓存的大小,甚至关闭缓存。
该对象的作用域为页面执行期间
session
该对象适用于在同一个应用程序中各个客户端的各个页面*享数据,session对象通常应用于保存用户/管理员信息,和购物车信息。
该对象的作用域为会话期间。
application
该对象适用于同一个应用程序中各个用户间共享数据,application对象通常应用在计数器或是聊天室。
该对象的作用域为整个应用程序执行期间。
page
适用于操作JSP页面自身,在开发Web应用很少,用来表示JSP页面Servlet的一个实例,相当于Java中this关键字。
该对象的作用域为页面执行期间。
pageContext
该对象的作用域为页面执行期间。
config
该对象的作用域为页面执行期间。
是用于读取服务器配置信息。
exception
仅在处理错误页面信息时有效,可以用来处理捕获的异常。
该对象的作用域为页面执行期间。

页面输出对象

方法名称 使用说明
clear() 清除缓冲区里的数据,而不把数据写到客户端
clearBuffer() 清除缓冲区当前内容,并把数据写道客户端
flush() 输出缓冲区的数据
getBufferSize() 返回缓冲区以字节数的大小
getRemainning() 获取缓冲区剩余空间大小
isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常
close() 关闭输出流,从而可以强制终止当前页面的剩余部分像浏览器输出
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h2>管理缓冲区</h2>
<%
   out.print("<h2>梦天</h2>");
    out.clearBuffer();//清除当前缓冲区内容并把当前数据写到客户端
    out.print("Hello out对象<br/>");
    out.flush();//输出缓冲区的数据
    out.print("剩余缓冲区大小:"+out.getRemaining()+"bytes<br/>");
    out.print("默认缓冲区大小:"+out.getBufferSize()+"bytes<br/>");
    out.print("剩余缓冲区大小:"+out.getRemaining()+"bytes<br/>");
    out.print("是否使用默认AutoFlush:"+out.isAutoFlush());
%>
</body>
</html>

JSP页面请求与响应以及保存页面状态
JSP内置对象简介
页面输出对象
页面对象page
页面请求对象request
页面响应对象 response
全局应用程序对象application

页面对象page

方法名称 使用说明
hasCode() 返回页面中的hasCode
getClass() 返回网页的类信息
toString() 返回代表当前网页的文字字符串
equals(Object o) 比较o对象和指定对象是否相等
getServletConfig() 获得当前的config对象
getServletInfo() 返回关于服务器程序的信息
<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*" pageEncoding="GBK" info="使用page对象" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    out.print("返回服务器程序信息");
    String info;
    info=((javax.servlet.jsp.HttpJspPage)page).getServletInfo();
    out.print(info);
%>
<%!
Object obj;//声明一个Object对象
%>
<p>返回网页类信息,getClass()方法:<%=page.getClass()%></p>
<p>返回当前网页文字字符串:<%=page.toString()%></p>
<p>返回文件网页中的hasCode:<%=page.hashCode()%></p>
<p>与Object对象比较的返回值:<%=page.equals(obj)%></p>
<p>this对象比较的返回值:<%=page.equals(this)%></p>
</body>
</html>

JSP页面请求与响应以及保存页面状态
JSP内置对象简介
页面输出对象
页面对象page
页面请求对象request
页面响应对象 response
全局应用程序对象application

页面请求对象request

request对象的生命周期是由JSP容器自动控制的,当客户端通过HTTP请求一个JSP页面时,JSP容器就会创建request对象并将请求信息包装到request对象中,当JSP容器处理完请求后,request对象就会被销毁。

<%@ page import="java.util.Enumeration" %><%--
  Created by IntelliJ IDEA.
  User: gao
  Date: 2019/9/21
  Time: 10:07
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>使用request对象获取客户端的基本信息</title>
    <table border="2" cellpadding="3" cellspacing="3"><!--cellpadding单元格与内容间隔 cellspacing 单元格与单元格之间-->
     <tr>
         <td>客户使用和协议为</td>
         <td><%=request.getProtocol()%></td>
     </tr>
        <tr>
            <td>接收客户提交信息的页面:</td>
            <td><%=request.getServletPath()%></td>
        </tr>
        <tr>
            <td>接收客户提交信息的长度:</td>
            <td><%=request.getContentLength()%></td>
        </tr>
        <tr>
            <td>客户提交信息的方式:</td>
            <td><%=request.getMethod()%></td>
        </tr>
        <tr>
            <td>获取Http头文件中User-Agent的值:</td>
            <td><%=request.getHeaders("User-Agent")%></td>
        </tr>
        <tr>
            <td>获取HTTP头文件中accept的值:</td>
            <td><%=request.getHeaders("accept")%>></td>
        </tr>
        <tr>
            <td>获取HTTP头文件中Host的值:</td>
            <td><%=request.getHeaders("Host")%>></td>
        </tr>
        <tr>
            <td>获取HTTP头文件中accept-encoding的值:</td>
            <td><%=request.getHeaders("accept-encoding")%>></td>
        </tr>
        <tr>
            <td>获取客户的IP地址</td>
            <td><%=request.getRemoteAddr()%></td>
        </tr>
        <tr>
            <td>获取客户机的名称</td>
            <td><%=request.getRemoteHost()%></td>
        </tr>
        <tr>
            <td>获取服务器的名称</td>
            <td><%=request.getServerName()%></td>
        </tr>
        <tr>
            <td>获取服务器的端口号</td>
            <td><%=request.getServerPort()%></td>
        </tr>
        <tr>
            <td>获取头名字的一个枚举</td>
            <td>
                <%
                    Enumeration enum_headed= request.getHeaderNames();
                    while(enum_headed.hasMoreElements()){
                        String s=(String) enum_headed.nextElement();
                        out.print(s);
                    }

                %>
            </td>
        </tr>
        <tr>
            <td>获取头文件中指定头名字的全部值的一个枚举:</td>
            <td>
                <%
                    Enumeration enum_headedValues= request.getHeaders("cookie");
                    while(enum_headedValues.hasMoreElements()){
                        String s=(String) enum_headedValues.nextElement();
                        out.print(s);
                    }

                %>
            </td>
        </tr>
    </table>
</head>
<body>

</body>
</html>

JSP页面请求与响应以及保存页面状态
JSP内置对象简介
页面输出对象
页面对象page
页面请求对象request
页面响应对象 response
全局应用程序对象application

页面响应对象 response

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
 <form name="login" action="pre.jsp" method="post">
     用户名<input type="text" name="userName"/><Br/>
     密码:<input type="password" name="password"/><br/>
     <input type="submit" value="提交" name="submit"/>
     <input type="reset" value="重置" name="reset"/>
 </form>
</body>
</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
String username=request.getParameter("userName");
String password=request.getParameter("password");
if(username.equals("admin")&&password.equals("888888")){
response.sendRedirect("main.jsp");
}else{
    response.sendError(404,"用户名或者密码错误");
}
%>
</body>
</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
登陆成功
</body>
</html>

JSP页面请求与响应以及保存页面状态
JSP内置对象简介
页面输出对象
页面对象page
页面请求对象request
页面响应对象 response
全局应用程序对象application

全局应用程序对象application

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>application</title>
  </head>
  <body>
<%
 Integer number=(Integer) application.getAttribute("number");
 if(number==null){
     number= new Integer(1);
     application.setAttribute("number",number);
 }else{
     number=new Integer(number.intValue()+1);
     application.setAttribute("number",number);
 }
 out.print("欢迎您!您是本站第"+number+"位访客");
%>
  </body>
</html>

JSP页面请求与响应以及保存页面状态
JSP内置对象简介
页面输出对象
页面对象page
页面请求对象request
页面响应对象 response
全局应用程序对象application