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

2021SC@SDUSC【软件工程应用与实践】Cocoon项目4-分析core文件夹(三)

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

2021SC@SDUSC【软件工程应用与实践】Cocoon项目4-分析core文件夹(三)

2021SC@SDUSC

这次博客我还是主要分析environment文件夹(下)。

这个文件夹设计了Request,Response,Session等进行请求,响应和会话控制一些可能用到的方法。

分析core文件夹(三)
  • BackgroundRequest.java
      • 1.总结:
      • 2.属性:
      • 3.方法:
      • 4.其他说明:
        • 构造函数:
        • 静态嵌套类

BackgroundRequest.java 1.总结:

这个文件通过命令行的使用来进行特定servlet请求模拟。

继承自AbstractRequest

2.属性:
//属于类的变量且只能赋值一次,声明一个空枚举类型
private static final EmptyEnumeration SHARED_EMPTY_ENUMERATION = new EmptyEnumeration();
//环境变量
private Environment env;
//上下文路径
private String contextPath;
//servlet路径
private String servletPath;
//路径信息
private String pathInfo;
//全局属性
private Map globalAttributes;
//属性
private Map attributes;
//变量
private Map parameters;
//请求头
private Map headers;
//字符串编码方式
private String characterEncoding;
3.方法:

这个类包含了很多方法,但是大部分方法都没有被实现,只有简单的名字、参数、返回值。

  • public Object get(String name)
    • 返回命名参数的值作为Object,如果指定名称的参数不存在则返回null。
  • public String getContextPath()
    • 得到上下文信息。
  • public String getServletPath()
    • 得到servlet路径。
  • public String getPathInfo()
    • 得到路径信息。
  • public String getRequestURI()
    • 返回HTTP请求第一行中从协议名称到查询字符串的部分请求的URL。
  • public String getSitemapURI()
    • 返回由站点地图解释的请求资源的URI。
  • public String getSitemapURIPrefix()
    • 返回站点地图所挂载的请求资源的URI前缀。
  • public String getSitemapPath()
    • 返回由站点地图解释的请求资源的站点地图的路径。
  • public String getQueryString()
    • 返回路径后的请求URL中包含的查询字符串。
  • public String getPathTranslated()
    • 返回servlet名称之后、查询字符串之前的任何额外路径信息,并将其转换为真实路径。
  • 与 Attribute 有关
    • public Object getAttribute(String name)
      • 获取请求属性的Map视图的实用程序方法。
    • public Enumeration getAttributeNames()
      • 返回一个枚举类型,其中包含此请求全局可用的属性的名称。
    • public void setAttribute(String name, Object value)
      • 在GLOBAL_SCOPE中存储此请求中的属性。
    • public void removeAttribute(String name)
      • 从此请求全局移除属性。
  • 与 Local Attribute 有关
    • public Object getLocalAttribute(String name)
      • 从LOCAL_SCOPE返回命名属性的值作为一个对象,如果给定名称的属性不存在,则返回null。
    • public Enumeration getLocalAttributeNames()
      • 返回一个枚举类型,其中包含此本地请求可用的属性的名称。
    • public void setLocalAttribute(String name, Object value)
      • 在本地存储此请求中的属性。
    • public void removeLocalAttribute(String name)
      • 在GLOBAL_SCOPE中从这个请求中删除属性。
  • 与 Parameter 有关
    • public String getParameter(String name)
      • 以字符串的形式返回请求参数的值。
    • public Enumeration getParameterNames()
      • 返回String对象的枚举,其中包含此请求中包含的参数的名称。
    • public String[] getParameterValues(String name)
      • 返回一个String对象数组,其中包含给定请求参数的所有值,如果参数不存在则为空。
  • 与 Header 有关
    • public String getHeader(String name)
      • 以字符串的形式返回指定请求头的值。
    • public int getIntHeader(String name)
      • 返回指定请求头的值。
    • public long getDateHeader(String name)
      • 返回指定请求头的值。
    • public Enumeration getHeaders(String name)
      • 返回指定请求头的所有值作为String对象的枚举。
    • public Enumeration getHeaderNames()
      • 返回此请求包含的所有头名称的枚举。
  • public String getCharacterEncoding()
    • 返回请求体中使用的字符编码的名称。
  • public int getContentLength()
    • 返回请求体的长度,以字节为单位。
  • public String getContentType()
    • 返回请求体的MIME类型。
  • public String getProtocol()
    • 返回请求使用的协议的名称和版本,格式为protocol/majorVersion。
  • public String getScheme()
    • 返回用于发出此请求的方案的名称,例如http、https或ftp。
  • public String getServerName()
    • 返回接收请求的服务器的主机名。
  • public int getServerPort()
    • 返回接收此请求的端口号。
  • public String getRemoteAddr()
    • 返回发送请求的客户端的Internet协议(IP)地址。
  • public String getRemoteHost()
    • 返回发送请求的客户机的完全限定名称,如果无法确定该名称,则返回客户机的IP地址。
  • public String getMethod()
    • 返回发出此请求的HTTP方法的名称,例如GET、POST或PUT。
  • public String getRemoteUser()
    • 如果用户已通过身份验证,则返回发出此请求的用户的登录;如果用户尚未通过身份验证,则返回null。
  • 与 cookie 有关
    • public javax.servlet.http.cookie[] getcookies()
      • 返回一个数组,其中包含客户端随请求发送的所有cookie对象。
    • public Map getcookieMap()
      • 返回客户端与此请求一起发送的cookie对象的映射,按名称索引。
  • 与 Session 有关
    • public HttpSession getSession()
      • 返回与此请求关联的当前会话,或者如果请求没有会话,则创建一个会话。
    • public HttpSession getSession(boolean create)
      • 返回与此请求关联的当前HttpSession,如果没有当前会话且create为true,则返回一个新会话。
    • public String getRequestedSessionId()
      • 返回客户端指定的会话ID。
    • public boolean isRequestedSessionIdValid()
      • 检查请求的会话ID是否仍然有效。
    • public boolean isRequestedSessionIdFromcookie()
      • 检查请求的会话ID是否作为cookie传入。
    • public boolean isRequestedSessionIdFromURL()
      • 检查请求的会话ID是否作为请求URL的一部分传入。
  • public Locale getLocale()
    • 返回客户端根据accept - language头接受内容的首选区域设置。
  • public Enumeration getLocales()
    • 返回Locale对象的Enumeration,根据Accept-Language头指示客户端可接受的区域设置(从首选区域设置开始,按递减顺序)。
  • public String getAuthType()
    • 返回用于保护servlet的身份验证方案的名称,例如,“BASIC”或“SSL”,如果servlet没有受到保护,则返回null。
  • public boolean isSecure()
    • 返回一个布尔值,指示此请求是否使用安全通道(如HTTPS)发出。
  • public boolean isUserInRole(String role)
    • 检查当前登录的用户是否在指定的角色中。
  • public java.security.Principal getUserPrincipal()
    • 如果用户已通过身份验证,则返回发出此请求的用户的登录;如果用户尚未通过身份验证,则返回null。
  • public void setCharacterEncoding(java.lang.String env)
    • 覆盖参数的字符编码。
  • public StringBuffer getRequestURL()
    • 返回请求的URL地址。
  • public ServletInputStream getInputStream()
    • 使用InputStream检索请求体作为二进制数据。
  • public Object searchAttribute(String name)
    • 返回以Object形式搜索两个作用域的命名属性的值,如果给定名称的属性不存在,则返回null。
4.其他说明: 构造函数:

在这个类中一共有四个构造函数

	public BackgroundRequest(Environment env,
                              String contextPath,
                              String servletPath,
                              String pathInfo) {
        this(env, contextPath, servletPath, pathInfo, null, null, null);
    }

    public BackgroundRequest(Environment env,
                              String contextPath,
                              String servletPath,
                              String pathInfo,
                              Map attributes) {
        this(env, contextPath, servletPath, pathInfo, attributes, null, null);
    }

    public BackgroundRequest(Environment env,
                              String contextPath,
                              String servletPath,
                              String pathInfo,
                              Map attributes,
                              Map parameters) {
        this(env, contextPath, servletPath, pathInfo, attributes, parameters, null);
    }

    public BackgroundRequest(Environment env,
                              String contextPath,
                              String servletPath,
                              String pathInfo,
                              Map attributes,
                              Map parameters,
                              Map headers) {
        this.env = env;
        this.contextPath = contextPath;
        this.servletPath = servletPath;
        this.pathInfo = pathInfo;
        this.globalAttributes = (attributes == null ? new HashMap() : attributes);
        this.attributes = new HashMap();
        this.parameters = parameters;
        this.headers = headers;
    }

对于BackgroundRequest来说,环境,上下文路径,servlet路径和路径信息是不可以缺少的;如果全局属性为空,就new一个HashMap否则将传入的参数赋给

静态嵌套类
private static final class EmptyEnumeration implements Enumeration {
    public EmptyEnumeration() {
        // nothing to do};
    }
    public boolean hasMoreElements() {
        return false;
    }
    public Object nextElement() {
        return null;
    }
}

在该java文件中定义了一个静态嵌套类,用于判断枚举类型内是否还有元素。

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

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

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