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,分别用于获取ServletConfigServletInfo


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)]

相关推荐
hummhumm18 分钟前
第 12 章 - Go语言 方法
java·开发语言·javascript·后端·python·sql·golang
hummhumm18 分钟前
第 8 章 - Go语言 数组与切片
java·开发语言·javascript·python·sql·golang·database
尼克_张20 分钟前
tomcat配合geoserver安装及使用
java·tomcat
wywcool33 分钟前
JVM学习之路(5)垃圾回收
java·jvm·后端·学习
-seventy-1 小时前
Java Web 工程全貌
java
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 小时前
idea 删除本地分支后,弹窗 delete tracked brank
java·ide·intellij-idea
言慢行善1 小时前
idea出现的问题
java·ide·intellij-idea
杨荧1 小时前
【JAVA毕业设计】基于Vue和SpringBoot的宠物咖啡馆平台
java·开发语言·jvm·vue.js·spring boot·spring cloud·开源
小青头1 小时前
numpy学习笔记
笔记·学习·numpy
Ling_suu2 小时前
Spring——单元测试
java·spring·单元测试