Является ли передача параметра в метод такой же, как создание объекта? - PullRequest
4 голосов
/ 16 февраля 2010

Я изучаю сервлеты и JSP. Я задаюсь вопросом о doGet и других методах, которые могут быть переопределены. «DoGet» принимает 2 параметра - запрос HTTPServletRequest и ответ HTTPServletResponse. Это мой вопрос: объекты запроса и ответа используются в теле метода, но я не вижу создания какого-либо объекта, например request = новый HTTPServletRequest. Эти объекты созданы в другом месте, например в суперклассе? На самом деле это вопрос Java, так как я часто задаюсь вопросом об этом и в Applets, то есть объект Graphics g передается методу «paint», но я не вижу, где он создается?

GF

Ответы [ 5 ]

2 голосов
/ 16 февраля 2010

В двух приведенных вами примерах, сервлетах и ​​апплетах, код выполняется внутри контейнера. Tomcat - это контейнер для сервлетов, и это означает, что контейнер обеспечивает определенную функциональность. В этом случае контейнер создаст объекты запроса и ответа и передаст их вашему сервлету.

Если вы пишете простую Java-программу, которая запускается сама по себе, вы несете ответственность за создание всех объектов.

2 голосов
/ 16 февраля 2010

Как правило, на любом языке программирования, когда метод вызывается с экземплярами объекта (или любым другим параметром), да, эти объекты создаются где-то .

По большей части вам не нужно беспокоиться о , где , просто они , когда имеют дело с ними внутри ваших функций.

Возвращаясь к вашему вопросу, хотя, хотя могут быть определенные ситуации, когда объект был создан нетрадиционными способами (в зависимости от технологического стека), вы можете быть уверены, что чаще всего, если у вас есть ссылка на объект, переданный вам в методе, который вы написали, затем он был создан с использованием традиционных средств где-то в стеке вызовов (или другой, если у вас несколько потоков).

В случае Java это будет означать, что кто-то вызвал new ... в какой-то момент и сделал его доступным для сайта вызова вашего метода, чтобы передать его в качестве параметра.

1 голос
/ 16 февраля 2010

Он создается веб-сервером (например, tomcat) и вызывает ваш сервлет с этими параметрами

0 голосов
/ 16 февраля 2010

все методы в сервлетах вызываются контейнером сервлета, таким как tomcat

0 голосов
/ 16 февраля 2010

Объекты создаются на сайте call-сайта. То есть тот, кто вызывает метод, отвечает за создание объектов, которые он / она передал методу в качестве параметров (если, конечно, он не передает уже существующие объекты, но они также были созданы где-то ранее).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...