Вызов сервлета по нажатию гиперссылки - PullRequest
8 голосов
/ 15 декабря 2009

Есть ли способ вызвать сервлет Java по щелчку гиперссылки без использования JavaScript?

Ответы [ 4 ]

23 голосов
/ 15 декабря 2009

Сделать гиперссылку URL-адресом, для которого определено отображение сервлета, определенное в файле web.xml.

Элемент servlet-mapping определяет отображение между сервлетом и шаблоном URL. В приведенном ниже примере сервлет с именем myservlet сопоставляется с любым URL-адресом, начинающимся с /foo:

<servlet>
  <servlet-name>myservlet</servlet-name>
  <servlet-class>com.stackoverflow.examples.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>myservlet</servlet-name>
  <url-pattern>/foo/*</url-pattern>
</servlet-mapping>
  • В этом примере гиперссылка, такая как <a href="/foo/test.html">Click Me</a>, будет вызывать сервлет.
6 голосов
/ 15 декабря 2009
  1. вы объявляете свой сервлет в web.xml, устанавливая его имя, класс и шаблон URL (допустим, ваш URL-шаблон /myServlet)
  2. запись <a href="/myServlet">mylink</a>
  3. переопределить метод doGet(..) сервлета, чтобы делать все, что вы хотите
3 голосов
/ 15 декабря 2009

Думаю, что вы определили сервлет "callme", ​​и для этого сервлета был настроен web.xml. Используйте следующий синтаксис, чтобы вызвать его с помощью гиперссылки

web.xml

<servlet>
<description>callme Functions</description>
<display-name>callme</display-name>
<servlet-name>callme</servlet-name> <servlet-class>com.test.Projects.callme</servlet- 
class>
</servlet>

<servlet-mapping>
<servlet-name>callme</servlet-name>
<url-pattern>/callme</url-pattern>
</servlet-mapping>

в JSP:

<a href="<%=request.getContextPath()%>/callme">Call the servlet</a>
1 голос
/ 15 декабря 2009

Что именно вы имеете в виду, когда называете «сервлет Java»? Наиболее обычное (то есть без использования магии JavaScript) браузер для нажатия на ссылку - это отправка HTTP-запроса на получение документа по URL-адресу, указанному в ссылке, отобразить его - и сервлеты существуют для ответа на HTTP-запросы.

Так что вам не нужно делать ничего особенного вообще. Просто используйте обычную ссылку HTML и убедитесь, что сервлет, который вы хотите «вызвать», соответствует URL этой ссылки. Конечно, следующий вопрос - что возвращает этот сервлет и что вы хотите, чтобы браузер делал с ним.

...