使用<a href=""></a>将值从jsp传递到servlet

时间:2012-08-07 06:54:25

标签: java jsp servlets href

我有jsp页面 -

<html>
<head>
</head>
<body>
         <%
               String valueToPass = "Hello" ; 
         %>
    <a href="goToServlet...">Go to servlet</a>
</body>
</html>

和servlet -

    @WebServlet(name="/servlet123",
             urlPatterns={"/servlet123"})
    public class servlet123 extends HttpServlet {

        protected void doGet(HttpServletRequest request,
                HttpServletResponse response) throws ServletException, IOException {

        }

        public void foo() {

        }
}

我应该在<a href="goToServlet...">Go to servlet</a>写一下,以便传递值(如valueToPass或者可能将值作为参数添加到servlet123

我可以使用jsp中的链接调用servlet123中的特定方法(如foo())吗?

修改

如何在URL中调用servlet?我的页面层次结构如下 -

WebContent
 |-- JSPtest
 |    |-- callServletFromLink.jsp
 |-- WEB-INF
 :    :

我想调用文件夹src-&gt; control。中的servlet123

我尝试<a href="servlet123">Go to servlet</a>但是当我按下链接时找不到servlet。

第二次编辑:

我尝试<a href="http://localhost:8080/MyProjectName/servlet123">Go to servlet</a>并且它有效。

2 个答案:

答案 0 :(得分:6)

如果要使用URL将参数发送到servlet,则应以这种方式执行

<a href="goToServlet?param1=value1&param2=value2">Go to servlet</a>

他们检索请求中可用的值。

关于你的第二个问题。我会说不。您可以在ulr中添加一个参数,例如

<a href="goToServlet?method=methodName&param1=value1">Go to servlet</a>

并使用该信息来调用特定方法。

顺便说一下,如果你使用像Struts这样的框架,那么在Struts中会更容易,你可以将URL绑定到特定的Action方法(比如说“servlet”)

<强>被修改

您已经以这种方式定义了您的servlet:

@WebServlet("/servlet123")

您,您的servlet将在/ servlet123上可用。请参阅doc

我已经测试了您的代码并且它正在运行:

@WebServlet(name = "/servlet123", urlPatterns = { "/servlet123" })
public class Servlet123 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();
        out.write("<h2>Hello Friends! Welcome to the world of servlet annotation </h2>");
        out.write("<br/>");
        out.close();
    }
}

然后,我在http://localhost:8080/myApp/servlet123中调用了servlet(如果你使用的话,那就是myApp你的应用程序上下文)。

答案 1 :(得分:1)

<a href="url">urltitle</a>允许您定义网址。从这里调用servlet与从浏览器调用它一样好,只需像在浏览器中那样给出url来调用servlet,如http://mysite.com?param1=val1&param2=val2等。