ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

九大内置对象总结

2021-05-19 13:01:58  阅读:173  来源: 互联网

标签:总结 返回 内置 String 对象 void Object 九大 servlet


九大内置对象详解

服务器启动一次,可能有多个用户访问,每个用户可能会请求多次,每次请求可能加载多个页面。在这里我就把内置对象的作用域分为。服务全局级、用户级、请求级、页面级。
下面从基本概念、对应类、作用域、常用方法、具体使用几个方面对九大内置对象做个总结。

1.request

request:对象主要用于处理客户端请求,在(页面转发,获取cookie)用到。
对应类为: javax.servlet.http.HttpServletrequest。作用域:请求级

request对象应用:

request对象的常用方法:

getParameter(String strTextName) 获取表单提交的信息.
getProtocol() 获取客户使用的协议。
getServletPath() 获取客户提交信息的页面。
getMethod() 获取客户提交信息的方式。
getHeader() 获取HTTP头文件中的accept,accept-encoding和Host的值。getRermoteAddr() 获取客户的IP地址。String strIP=request.getRemoteAddr()。
getRemoteHost() 获取客户机的名称
getServerName() 获取服务器名称。
getServerPort() 获取服务器的端口号。
getParameterNames() 获取客户端提交的所有参数的名字。

request对象在servlet中使用:

在servlet类的doGet等方法中直接用request调用即可。

request.setCharacterEncoding("UTF-8");

request对象在jsp中的应用:

<%= "name:"+new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8") %><br>
<%= "sex:"+request.getParameter("sex") %><br>
<%= "id:"+request.getParameter("id") %><br>
<%= "pwd:"+request.getParameter("pwd") %><br>

2.response

:用于处理响应客户端请求。
对应类为: javax.servlet.http.HttpServletResponse。作用域:页面级

response对象应用:

response对象的常用方法:

String getCharacterEncoding() 返回响应用的是何种字符编码 (常用)
ServletOutputStream getOutputStream() 返回响应的一个二进制输出流
PrintWriter getWriter() 返回可以向客户端输出字符的一个对象
void setContentLength(int len) 设置响应头长度
void setContentType(String type) 设置响应的MIME类型
sendRedirect(java.lang.String location) 重新定向客户端的请求 (常用)
使用:

response对象在servlet中使用:

 package com.helloworld;
        import java.io.PrintWriter;        //引入PrintWriter类
        import javax.servlet.http.HttpServletResponse;
        public class PrintHTML 
        {
            public static void printHTML(HttpServletResponse response) 
            throws Exception
            {
                //调用HttpServletResponse类中的getWriter()方法
                PrintWriter out =response.getWriter();
                out.println("<table border='0' cellpadding='0' cellspacing='0'" +
                        "width='150' align='center'>");
                out.println("<tr><td height='5' >这里调用了HttpServletResponse的" +
                        "getWriter()方法</td></tr>");
                out.println("</table>");
            }
        }

response对象在jsp中的应用:

自动刷新:<%response.setHeader(“refresh”,”3”)%>
设置跳转:<%response.setHeader(“refresh”,”3;URL=index.jsp?ref=x”)%>

3.session

:在网络中被称为会话,一个会话就是浏览器与服务器之间的一次通话(保存登录状态时)。用来保存每一个用户的信息。对应类为:javax.servlet.http.HttpSession。 作用域:用户级

session对象应用:

session对象的常用方法:

long getCreationTime() 返回SESSION创建时间
public String getId() 返回SESSION创建时JSP引擎为它设的惟一ID号 (常用)
long getLastAccessedTime() 返回此SESSION里客户端最近一次请求时间
int getMaxInactiveInterval() 返回两次请求间隔多长时间此SESSION被取消(ms)
String[] getValueNames() 返回一个包含此SESSION中所有可用属性的数组 (常用)
void invalidate() 取消SESSION,使SESSION不可用 (常用)
boolean isNew() 返回服务器创建的一个SESSION,客户端是否已经加入
void removeValue(String name) 删除SESSION中指定的属性
void setMaxInactiveInterval() 设置两次请求间隔多长时间此SESSION被取消(ms)
使用:

session对象在servlet中使用:

HttpSession session = request.getSession(); //获取session对象
session.setAttribute("usrid", userid); //在用户级的作用域里保存一个值。

session对象在jsp中的应用:

<%@page contentType="text/html;charset=GB2312"%>
<html>
  <head>  </head>
  <body>
  <%String s = session.getId(); //获取session ID号  %>
    <p>你的session对象ID是:</p>
<%=s %>  <%!
    int Num = 0; //定义前面要加!号
    synchronized void countPeople() { //同步方法
      Num++;
    }
  %>
  <%
    if (session.isNew()) { //判断是否为新用户
      countPeople();
      String str = String.valueOf(Num);
      session.setAttribute("count", str); //将str 添加到session对象中
    }
  %>
    <p>      你是第
<%=(String)session.getAttribute("count")%>      个访问本站的人
    </p>
    <!--将session对象的count值取出-->
  </body>
</html>

4.application:

就像全局变量,用于保存应用程序中的共有数据(上传时获取真实路径)
对应类为: javax.servlet.ServletContext。作用域:服务全局级

application对象应用:

application对象的常用方法:

Object getAttribute(String name) 返回给定名的属性值 (常用)
Enumeration getAttributeNames() 返回所有可用属性名的枚举
void setAttribute(String name,Object obj) 设定属性的属性值 (常用)
void removeAttribute(String name) 删除一属性及其属性值 (常用)
String getServerInfo() 返回JSP(SERVLET)引擎名及版本号
String getRealPath(String path) 返回一虚拟路径的真实路径
ServletContext getContext(String uripath) 返回指定WebApplication的application对象
int getMajorVersion() 返回服务器支持的Servlet API的最大版本号
int getMinorVersion() 返回服务器支持的Servlet API的最大版本号
String getMimeType(String file) 返回指定文件的MIME类型
URL getResource(String path) 返回指定资源(文件及目录)的URL路径 (常用)
InputStream getResourceAsStream(String path) 返回指定资源的输入流
RequestDispatcher getRequestDispatcher(String uripath) 返回指定资源的RequestDispatcher对象 (常用)
Servlet getServlet(String name) 返回指定名的Servlet (常用)
Enumeration getServlets() 返回所有Servlet的枚举
Enumeration getServletNames() 返回所有Servlet名的枚举
void log(String msg) 把指定消息写入Servlet的日志文件
void log(Exception exception,String msg) 把指定异常的栈轨迹及错误消息写入Servlet的日志文件
void log(String msg,Throwable throwable) 把栈轨迹及给出的Throwable异常的说明信息 写入Servlet的日志文件
使用:

application对象在servlet中使用:

this.getServletContext().setAttribute("users",userList);//先获取ServletContext对象

application对象在jsp中的应用:

<%
application.setAttribute(“username”, request.getParameter(“username”));
application.setAttribute(“pwd”, request.getParameter(“pwd”));
%>

实现网站计数:
TestApplication01.jsp

<%!
ServletContext application;
synchronized void countPeople() {
application = getServletContext();
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);
}
}
%>
<%
if (session.isNew()) {
countPeople();
}
int personCount = ((Integer)application.getAttribute(“number”)).intValue();
%>

5.out:

对象用于在web浏览器内输出信息,数据输出完,要及时关闭输出流
对应类为:javax.servlet.jsp.jspWriter。相当于Servlet中的PrintWriter。作用域:页面级

out对象应用:

out对象的常用方法:

(1)void println():向客户端打印字符串;
(2)void flush():将缓冲区内容输出到客户端;
(3)void clear():清除缓冲区,在flush()方法之后调用会抛出异常;
(4)void clearBuffer():清除缓冲区,在flush()之后调用不会抛出异常;
(5)int getBufferSize():返回缓冲区字节数大小;
(6)int getRemaining():返回缓冲区剩余可用字节数,如果不设缓冲区时则返回0;
(7)boolean isAutoFlush():当缓冲区已满时,时自动清空还是抛出异常;
(8)vodi close():关闭输出流;

out对象在servlet中使用:

request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=utf-8");
	response.getWriter().print("哈哈");

text/javascript json数据
application/xml xml数据

out对象在jsp中的应用:

<%
 out.println("<res>"+rs.getString("major")+"</res>"); //换行输出。但是在页面换行符失效。等于加了个空格。
// out.print("<res>"+rs.getString("major")+"</res>"); //不换行输出。
%>

jsp中使用out.println()和System.out.print() 区别
out.println()输出到客户端
System.out.print()输出到

6.pageContext:

用于获取页面的上下文,通过此对象可以获取页面的其他8个内置对象。是JSP的页面容器。对应类为:javax.servlet.jsp.PageContext 。作用域:页面级。

pageContext对象应用:

pageContext对象的常用方法:

JspWriter getOut() 返回当前客户端响应被使用的JspWriter流(out)
HttpSession getSession() 返回当前页中的HttpSession对象(session)
Object getPage() 返回当前页的Object对象(page)
ServletRequest getRequest() 返回当前页的ServletRequest对象(request) (常用)
ServletResponse getResponse() 返回当前页的ServletResponse对象(response) (常用)
Exception getException() 返回当前页的Exception对象(exception)
ServletConfig getServletConfig() 返回当前页的ServletConfig对象(config)
ServletContext getServletContext() 返回当前页的ServletContext对象(application)
void setAttribute(String name,Object attribute) 设置属性及属性值 (常用)
void setAttribute(String name,Object obj,int scope) 在指定范围内设置属性及属性值 (常用)
public Object getAttribute(String name) 取属性的值 (常用)
Object getAttribute(String name,int scope) 在指定范围内取属性的值 (常用)
public Object findAttribute(String name) 寻找一属性,返回起属性值或NULL
void removeAttribute(String name) 删除某属性 (常用)
void removeAttribute(String name,int scope) 在指定范围删除某属性 (常用)
int getAttributeScope(String name) 返回某属性的作用范围
Enumeration getAttributeNamesInScope(int scope) 返回指定范围内可用的属性名枚举
void release() 释放pageContext所占用的资源
void forward(String relativeUrlPath) 使当前页面重导到另一页面
void include(String relativeUrlPath) 在当前位置包含另一文件

pageContext对象在servlet中使用:

javax.servlet.jsp.PageContext pageContext = javax.servlet.jsp.JspFactory.getDefaultFactory().getPageContext(this, request, response, null, true, 8192, true);

pageContext对象在jsp中使用:

<%pageContext.setAttribute("name","jason test");%>

7.config:

用于取得服务器的配置信息
对应类为: javax.servlet.ServletConfig。作用域:页面级
config对象应用:
config对象的常用方法:
1、ServletContext getServletContext() 返回含有服务器相关信息的ServletContext对象
2、String getInitParameter(String name) 返回初始化参数的值
3、Enumeration getInitParameterNames() 返回Servlet初始化所需所有参数的枚举
使用:

config对象在servlet中的应用:

this.getServletConfig().getServletName();

config对象在jsp中的应用:

<%=config.getServletName()%>
name配置参数的值:<%=config.getInitParameter("name")%><br/>

8.page:

代表jsp本身,只有在jsp页面内才是合法的。对应类为: javax.lang.Object 作用域:页面级

page对象应用:

page对象的常用方法:

class getClass 返回此Object的类 (常用)
int hashCode() 返回此Object的hash码
boolean equals(Object obj) 判断此Object是否与指定的Object对象相等 (常用)
void copy(Object obj) 把此Object拷贝到指定的Object对象中
Object clone() 克隆此Object对象
String toString() 把此Object对象转换成String类的对象 (常用)
void notify() 唤醒一个等待的线程
void notifyAll() 唤醒所有等待的线程
void wait(int timeout) 使一个线程处于等待直到timeout结束或被唤醒
void wait() 使一个线程处于等待直到被唤醒
void enterMonitor() 对Object加锁
void exitMonitor() 对Object开锁

page对象在servlet中的应用:

page对象即是servlet对象。也就是this

page对象在jsp中的应用:

当前page页面对象的字符串描述: <%= page.toString() %> < br >

9.exception:

用于处理jsp页面发生的异常,只有在包含 isErrorPage=“true” 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件
对应类为:java.lang.Throwable。作用域:页面级

exception对象应用:

exception对象的常用方法:

String getMessage() 返回描述异常的消息
String toString() 返回关于异常的简短描述消息
void printStackTrace() 显示异常及其栈轨迹
Throwable FillInStackTrace() 重写异常的执行栈轨迹

exception对象在jsp中的应用:

要使用异常页面的地方添加如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" errorPage="exception.jsp"%>
在exception.jsp中
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>
<%=exception.getMessage()%>//展示异常信息

标签:总结,返回,内置,String,对象,void,Object,九大,servlet
来源: https://blog.csdn.net/weixin_42277815/article/details/117024235

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有