Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“请求”和“响应”变量或值是否在JavaEE中预定义?_Java_Jakarta Ee_Servlets_Request_Response - Fatal编程技术网

“请求”和“响应”变量或值是否在JavaEE中预定义?

“请求”和“响应”变量或值是否在JavaEE中预定义?,java,jakarta-ee,servlets,request,response,Java,Jakarta Ee,Servlets,Request,Response,在上面的代码示例中,请求和响应是否是预定义的,即如果它们是在哪个包中预定义的,我可以使用任何其他名称来代替它们吗? 我还有一个问题ServletException的工作是什么我的意思是,我知道它处理异常,但我的问题是,是否有必要在每个程序中使用它我想知道它的详细功能你可以用你想要的任何名称命名Java程序中的任何变量。没关系,在接口中实现方法或从超类重写方法的规则规定参数类型必须匹配相同的类型、相同的顺序、相同的编号,但名称根本不重要。这与JavaEE无关,只是编程语言的工作方式 关于Servl

在上面的代码示例中,请求和响应是否是预定义的,即如果它们是在哪个包中预定义的,我可以使用任何其他名称来代替它们吗? 我还有一个问题ServletException的工作是什么我的意思是,我知道它处理异常,但我的问题是,是否有必要在每个程序中使用它我想知道它的详细功能

你可以用你想要的任何名称命名Java程序中的任何变量。没关系,在接口中实现方法或从超类重写方法的规则规定参数类型必须匹配相同的类型、相同的顺序、相同的编号,但名称根本不重要。这与JavaEE无关,只是编程语言的工作方式

关于ServletException:快速查看会发现异常正在HttpServlet超类中定义的doGet方法中抛出,因此任何重写该方法的子类也必须抛出异常

您的两个问题都与继承和重写在Java中的工作方式有关,它们不是特定于JavaEE的。我建议您首先学习Java中有关继承和重写的文档,在开始编写更复杂的代码之前,您似乎很难掌握OO概念在Java中的应用。

您可以用任何名称命名Java程序中的任何变量。没关系,在接口中实现方法或从超类重写方法的规则规定参数类型必须匹配相同的类型、相同的顺序、相同的编号,但名称根本不重要。这与JavaEE无关,只是编程语言的工作方式

关于ServletException:快速查看会发现异常正在HttpServlet超类中定义的doGet方法中抛出,因此任何重写该方法的子类也必须抛出异常


您的两个问题都与继承和重写在Java中的工作方式有关,它们不是特定于JavaEE的。我建议您首先研究Java中有关继承和重写的文档,在开始编写更复杂的代码之前,您似乎很难理解OO概念在Java中的应用。

它们只是您所忽略的参数的名称。在essentia中,您的类ServletTemplate继承了HttpServlet,如果您想为GET方法发送的请求提供功能,必须从父类重写它,变量的名称无关紧要Java中重写方法的规则有:

保持方法的相同签名,其中方法的签名。 签名由方法的名称组成,参数列表与名称无关,但类型很重要。 不要通过示例从public到private定义限制性更强的访问器修饰符。 因此,如果需要,可以按如下方式实现该方法

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();
    }

}
无法反转参数,因为以下错误:

public void doGet(HttpServletRequest x,
    HttpServletResponse y) throws ServletException, IOException 
{
    PrintWriter out = y.getWriter();
}

它们只是你夸大的论点的名称。在essentia中,您的类ServletTemplate继承了HttpServlet,如果您想为GET方法发送的请求提供功能,必须从父类重写它,变量的名称无关紧要Java中重写方法的规则有:

保持方法的相同签名,其中方法的签名。 签名由方法的名称组成,参数列表与名称无关,但类型很重要。 不要通过示例从public到private定义限制性更强的访问器修饰符。 因此,如果需要,可以按如下方式实现该方法

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();
    }

}
无法反转参数,因为以下错误:

public void doGet(HttpServletRequest x,
    HttpServletResponse y) throws ServletException, IOException 
{
    PrintWriter out = y.getWriter();
}

非常感谢真的很有帮助:非常感谢真的很有帮助: