JavaEE 重要的API阅读

JavaEE API阅读

目的是为了应对学校考试,主要关注的是类的继承关系、抛出错误的类型、包名、包结构等等知识。此帖用于记录。

PageContext抽象类

包名及继承关系

继承自JspContext类。PageContext 实例提供对与某个 JSP 页⾯关联的所有名称空间的访问,隐式对象是⾃动添加到 pageContext 的。

域

可以看到基本都是隐含对象的成员。

方法

getter包括page、request、response、servletConfig、ServletContext,不常见的是errorData、Exception


ServletContext 接口

ServletContext对象包含在ServletConfig对象中,该对象由Web服务器在初始化servlet时提供给servlet。

要注意的方法

虽然名字叫context,但是没有getContextPath这个方法。

是⼀个Servlet的环境对象,⽤来创建⼀个Servlet的环境信息。 它定义的⽅法是为了能让servlet 能和创建它的 servlet 容器建⽴沟通,⽐如派发⼀个请求、写⼊⼀个⽇志⽂件 等。 每个web 应⽤都只能有⼀个 Context 对象(web 应⽤程序是⼀个 servlet 的集合)。 ServletContext类⾥⾯的⽅法主要有这么⼏⼤类:

  • 对Filter的操作
  • 对Listener的操作
  • 对Servlet的操作
  • 对Attribute的操作
  • 对Context的操作
  • 对InitParameter的操作
  • 对log的操作
  • 对Path的操作

ServletConfig接口

方法

要注意ServletContext getServletContext()方法,用于返回当前执行的 Servlet 所在的 ServletContext 的引用。ServletContext 提供了与 Servlet 相关的环境信息和上下文,允许 Servlet 访问应用程序的参数、资源和其他重要数据。


Servlet接口

方法

servlet中的service()函数可以抛出两个excption:第一个 Servlet Exception 当 servlet 出现异常时;由于这个服务可能会涉及到输⼊输出,所以IOException是必然会有的,⽤来处理输⼊输出时可能遇到的问题。

除了和生命周期有关的三个方法(init、service、destroy)之外,还有两个getter,分别用于获取ServletConfig和ServletInfo。


WebServlet注解

常用的Annotation还包括@WebListener、@WebFilter、@WebInitParam等等。

在Spring框架中还有注解:@Controller、@RequestMapping等等

比如

java 复制代码
@Controller
public class NumberGuessController {
	@RequestMapping(path = { "/guess", "/" })
	//某方法..................
}

注解可选属性

其实日常使用只会用到urlPatterns,是String[]类型的

java 复制代码
//@WebServlet("/你项目的Serlvet Mapping")
@WebServlet("/hello") 

当然也可以是一组url,

java 复制代码
@WebServlet(urlPatterns = {"/hello", "/greet"})

包含其他元素的写法是这样的:

java 复制代码
@WebServlet(  
    name=...
    urlPatterns=......
    value = "/config",  
    initParams = {  
        @WebInitParam(name = "param1", value = "value1"),  
        @WebInitParam(name = "param2", value = "value2")  
    }  
)

HttpServlet抽象类

继承自GenericServlet类,实现了Serializable、**Servlet、ServletConfig(这两个接口前面学习过)**接口。

方法


HttpServletRequest接口

这个类是⽤来给 HTTP 提供请求信息的,也是对ServletRequest的拓展。因为这个类封装了请求信息,所以⼏乎就没有set⽅法,可以通过这个类获取这些请求信息,如URI上下⽂(URL和查询字符串)、Cookies、HTTP报 头相关、HTTP⽅法(DOGHPPT),以及请求所在会话的相关信息(session)。

方法

方法太多,还继承了interface javax.servlet.ServletRequest的方法,请参阅API文档:

把一些比较熟悉的方法摘取出来:

那为什么请求URL要想得到需要返回的是Stringbuffer类型⽽不是String类型的?因为实际上并没有完整现成的 URL,⽽是需要通过调⽤该函数根据已有的信息如URI和查询字符串合成⼀个URL,这就需要缓冲区来存储可能需要的数据。


HttpServletResponse类

拓展 ServletResponse 来提供 HTTP 在发送响应时的功能。它可以通过特定的⽅法来访问 HTTP 头部和 cookies。 它的⽅法⽆⾮是操作HTTP协议报⽂:

  • 访问cookie
  • 访问数据报头(和它相关的操作)
  • 访问报头(和它相关的操作)
  • 设置状态码

方法

方法太多,还继承了接口 javax.servlet.ServletResponse的方法,请参阅API文档:

可以关注一个与cookie相关的方法,其余主要与网页状态(status,比如404,500,200,101......)、回复格式、回复编码等有关。


HttpSessionEvent类

这个类其实很简单,就是根据⼀个给定的事件源创建⼀个事件。事件是会话的事件,在事件结束后会使⽤下⾯的这个⽅法getSession返回那个被事件更新了的会话。这个类除了构造函数外就只有这⼀个⽅法。

方法


HttpSessionAttributeListener接口

方法

这个类是⽤来监听Http会话属性的改变的。⼀个HttpSession的事件会造成HttpSession属性的改变,Listener就 会监听这种改变。其中,对属性的操作就对应着该类的三个⽅法:增添属性、删除属性、替换属性。(没有查询!只有增改删!)


Cookie类

方法

⼀个cookie有⼀个名字、⼀个值、可选的属性:comment(描述)、path(路径)、domain(作⽤域)、age (寿命)、version(版本)。


Tag接口

域

方法

⼀个标签的⽣命周期是这样的:


SimpleTag接口

方法


TagSupport类

tag接口⼀般不会去直接实现,⽽是实现⼀个tagSupport来继承tag。

域

注意,这几个返回值要知道:

方法


Filter接口

方法

主要就是生命周期方法。

要注意的是doFilter方法,有三个参数,有一个FilterChain也包含一个doFilter方法,作用是调用链中的下一个doFilter方法或直接交给servlet。


FilterChain接口

方法


FilterConfig接口

方法


Action类

Action (Apache Struts API Documentation)

方法


ActionServlet

ActionServlet (Apache Struts API Documentation)

域

方法


ActionForm类

域

可以看到ActionServlet是它的内部类。

方法


ActionMapping类

域

方法


ActionForward类

域

方法


DynaActionForm类


JspWriter类

方法

主要是write、print、println等继承自父类Writer的常见方法。


JSP、Strut、Spring相关知识

JSP三大元素

  • 指令元素
  • 脚本元素
  • 动作元素

<%! ... %> 是声明标签:定义⽅法的标签

<% ... %> 是脚本段标签,⽤于声明局部变量;

<%= ... %> 是Java表达式标签,⽤于包含⼀个直接转换成Java代码的Java表达式;

<%@ ... %> 是指令元素标签,⽤来包含⼀个Page\Taglib\Include 指令

0cLI3Km-1731552715988)]

方法

主要是write、print、println等继承自父类Writer的常见方法。


JSP、Strut、Spring相关知识

JSP三大元素

  • 指令元素
  • 脚本元素
  • 动作元素

<%! ... %> 是声明标签:定义⽅法的标签

<% ... %> 是脚本段标签,⽤于声明局部变量;

<%= ... %> 是Java表达式标签,⽤于包含⼀个直接转换成Java代码的Java表达式;

<%@ ... %> 是指令元素标签,⽤来包含⼀个Page\Taglib\Include 指令

外链图片转存中...(img-enZSleNs-1731552715988)

外链图片转存中...(img-eMMcYcdX-1731552715988)

相关推荐
凌晨1684 分钟前
YOLO系列学习笔记:从YOLOv1到YOLOv3的演进之路
笔记·yolo·目标跟踪
蛋蛋的就会顺顺的9 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
需要8269 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
小 黄 鸡9 小时前
HashMap 面试必会知识点详解(JDK 8)
java·面试·职场和发展
伯恩bourne11 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端
silvamux_11 小时前
curl 测试 OpenAI 兼容 API 的完整流程
java·人工智能·缓存·ai·oneapi
省钱兄--zs12 小时前
深圳24小时自助健身房软硬件解决方案实战指南与开发流程详解
java·数据仓库·spring boot·小程序·架构
顽疲12 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog12 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友
用户212968352616812 小时前
开源了一个 Java 多智能体 LLM 框架 Baton:一个依赖,把 Agent 循环、工具调用、记忆、编排全配齐
java·llm