jakarta ee中是否预定义了“请求”和“响应”变量或值?
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletTemplate extends HttpServlet {
public void doGet(HttpServletRequest ***request***,
HttpServletResponse ***response***)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
}
}
在上面的代码示例中,请求和响应是否是预定义的,即如果它们是在哪个包中预定义的,我可以使用任何其他名称来代替它们吗? 我还有一个问题,ServletException的工作是什么?我的意思是我知道它处理异常,但我的问题是,是否有必要在每个程序中使用它?我想知道它的详细功能
# 1 楼答案
您可以使用任意名称命名Java程序中的任意变量。没关系,在接口中实现方法或从超类重写方法的规则规定参数类型必须匹配(相同的类型、相同的顺序、相同的编号),但名称根本不重要。这与JavaEE无关,只是编程语言的工作方式
关于
ServletException
:快速查看documentation会发现异常正在doGet()
超类中定义的doGet()
方法中抛出,因此任何重写该方法的子类也必须抛出异常您的两个问题都与继承和重写在Java中的工作方式有关,它们不是特定于JavaEE的。我建议您首先学习Java中有关继承和重写的文档,在开始编写更复杂的代码之前,您似乎很难掌握OO概念在Java中的应用
# 2 楼答案
它们只是你夸大的论点的名称。在essentia中,您的类ServletTemplate继承了HttpServlet,如果您想为GET方法发送的请求提供功能,必须从父类重写它,变量的名称无关紧要Java中重写方法的规则有:
因此,您可以实现如下方法(如果需要)
无法反转参数,因为以下错误: