2009-12-15 337 views
8

有没有一种方法可以在不使用JavaScript的情况下通过超链接来调用Java Servlet?点击超链接调用servlet

+3

好吧,新的评论在那里显示为一个黄色的信封,所以你会阅读它们 - 去接受帮助你的答案,或者不要指望很多人在未来帮助你。 – Bozho 2009-12-15 18:52:35

回答

24

使超链接有一个URL,您可以在web.xml文件中定义一个servlet映射。

servlet-mapping元素定义了servlet和URL模式之间的映射。下面的例子命名myservlet该servlet映射到与/foo开头的URL:

<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>会调用Servlet。
+0

我不清楚,你能解释我在一点点深刻 – sarah 2009-12-15 13:37:49

+0

Thankx它解决了:) – sarah 2009-12-15 14:01:58

3

认为您已经定义了一个servlet“callme”并为此servlet配置了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> 
+0

我会upvoted正确的映射,但downvoted为脚本,所以它被投票0每saldo。 – BalusC 2009-12-15 16:59:20

6
  1. web.xml声明你的servlet通过设置其姓名,班级和网址 - 模式 (假设您的网址格式为/myServlet
  2. <a href="/myServlet">mylink</a>
  3. 覆盖的servlet中做任何你想做的doGet(..)方法
1

究竟你是什么意思与“调用的Java Servlet?用于点击链接的最正常的(即没有任何JavaScript魔术的)浏览器行为是发送HTTP请求以在链接中指定的URL处获取文档并显示它 - 并且存在Servlet以响应HTTP请求。

所以你不必做任何特别的事情。只要有一个常规的HTML链接,并确保您要“调用”的servlet对应于该链接的URL。当然,接下来的问题是Servlet返回的结果以及浏览器如何处理它。