我有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-> control中调用
servlet123
。我尝试了
<a href="servlet123">Go to servlet</a>
,但是当我按链接时它没有找到servlet。第2次编辑:
我尝试了
<a href="http://localhost:8080/MyProjectName/servlet123">Go to servlet</a>
,它可以工作。 最佳答案
如果要使用URL将参数发送到servlet,则应采用这种方式
<a href="goToServlet?param1=value1¶m2=value2">Go to servlet</a>
然后检索将在请求中可用的值。
关于第二个问题。我会说不。您可以在URL中添加一个参数,例如
<a href="goToServlet?method=methodName¶m1=value1">Go to servlet</a>
并使用该信息来调用特定的方法。
顺便说一句,如果您使用Struts之类的框架,这将更加容易,因为在Struts中,您可以将URL绑定(bind)到特定的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,则将其作为应用程序上下文)。关于java - 使用<a href>将值从jsp传递到servlet,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11840751/