一尘不染

使用以下命令将值从jsp传递到servlet [](file:///C://Users//ghz//Desktop//all//CodingDict- Local//%E7%88%AC%E8%99%AB//pages//jsp/page_36_09.html)

jsp

[

我有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
 :    :

我想servlet123在文件夹src-> control中调用。

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

第二次编辑:

我试过了<a href="http://localhost:8080/MyProjectName/servlet123">Go to servlet</a>,它起作用了。

](file:///C://Users//ghz//Desktop//all//CodingDict-
Local//%E7%88%AC%E8%99%AB//pages//jsp/page_36_09.html)


阅读 342

收藏
2020-06-08

共1个答案

一尘不染

[

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

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

然后检索将在请求中可用的值。

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

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

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

顺便说一句,如果您使用Struts之类的框架,这将更加容易,因为在Struts中,您可以将URL绑定到特定的Action方法(比如说“ servlet”)

编辑

您已通过以下方式定义了servlet:

@WebServlet("/servlet123")

](file:///C://Users//ghz//Desktop//all//CodingDict-
Local//%E7%88%AC%E8%99%AB//pages//jsp/page_36_09.html)

您,您的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();
    }
}

然后,我在中调用servlet
http://localhost:8080/myApp/servlet123(如果使用myApp,则将其作为应用程序上下文)。

2020-06-08