Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用<;将值从jsp传递到servlet;a href>;_Java_Jsp_Servlets_Href - Fatal编程技术网

Java 使用<;将值从jsp传递到servlet;a href>;

Java 使用<;将值从jsp传递到servlet;a href>;,java,jsp,servlets,href,Java,Jsp,Servlets,Href,我有一个JSP页面- <html> <head> </head> <body> <% String valueToPass = "Hello" ; %> <a href="goToServlet...">Go to servlet</a> </body> </html> 我应该在中写些什么才能将值(如valueT

我有一个JSP页面-

<html>
<head>
</head>
<body>
         <%
               String valueToPass = "Hello" ; 
         %>
    <a href="goToServlet...">Go to servlet</a>
</body>
</html>
我应该在
中写些什么才能将值(如
valueToPass
或可能将值作为参数添加到中)传递到
servlet123

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

编辑:

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

WebContent
 |-- JSPtest
 |    |-- callServletFromLink.jsp
 |-- WEB-INF
 :    :
我想调用文件夹src->control中的
servlet123

我尝试了
,但当我按下链接时,它没有找到servlet

第二次编辑:


我尝试了
,它成功了。

允许您定义url。从这里调用servlet与从浏览器调用servlet一样好,只需像在浏览器中调用servlet那样给出url即可。

如果您想使用url向servlet发送参数,您应该这样做

<a href="goToServlet?param1=value1&param2=value2">Go to servlet</a>
您的servlet将在/servlet123上可用。看

我已经测试了您的代码,它正在工作:

@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();
    }
}
@WebServlet(name=“/servlet123”,urlPatterns={”/servlet123})
公共类Servlet123扩展了HttpServlet{
@凌驾
受保护的void doGet(HttpServletRequest-req,HttpServletResponse-resp)抛出ServletException,IOException{
分别为setContentType(“文本/html”);
PrintWriter out=resp.getWriter();
out.write(“朋友们好!欢迎来到servlet注释的世界”);
写出(“
”); out.close(); } }

然后,我在
http://localhost:8080/myApp/servlet123
(如果您正在使用myApp,请将其作为您的应用程序上下文)。

谢谢,如果我使用类似“goToServlet?param1=value1¶m2=value2”的URL,将调用servlet中的哪个方法?多吉特?你应该用多吉特。看看这个答案:然后使用request.getParameter(“方法”)获取值“methodName”。您应该对任何参数值进行url编码,请参阅。如果在Java中,您可以使用内置类。@mrswadge我知道编码。我不知道如何在URL中调用servlet。@jddsantaella我这样做了,但链接不起作用,我再次编辑了文章。现在我如何在第二个servlet中检索param1和param2的值?如果需要,记得对值进行编码
<a href="goToServlet?method=methodName&param1=value1">Go to servlet</a>
@WebServlet("/servlet123")
@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();
    }
}