2009-12-15 4 views
8

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

+3

ну, новые комментарии появляются в виде желтого конверта там, поэтому вы читаете их - поймите и примите ответ, который вам помог, или не ожидайте, что многие люди помогут вам в будущем. – Bozho

ответ

24

Сделать гиперссылку 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> будет вызывать сервлет.
+0

Я не получаю это ясно, не могли бы вы объяснить мне в немного более detial – sarah

+0

Thankx это сработало :) – sarah

3

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

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> 
+0

Я бы поддержал правильное отображение, но downvoted для scriptlet, поэтому он проголосовал 0 за салдо. – BalusC

6
  1. вы объявляете ваш сервлет в web.xml, установив его имя, класс и URL -паттерн (скажем, ваш url-шаблон /myServlet)
  2. написать <a href="/myServlet">mylink</a>
  3. переопределение doGet(..) метод сервлета, чтобы делать все, что вы хотите
1

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

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

Смежные вопросы