[
我有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?
<a href="goToServlet...">Go to servlet</a>
valueToPass
servlet123
我可以使用JSP中的链接在servlet123(如foo())中调用特定方法吗?
foo()
编辑:
如何在URL中调用servlet?我的页面层次结构如下所示-
WebContent |-- JSPtest | |-- callServletFromLink.jsp |-- WEB-INF : :
我想servlet123在文件夹src-> control中调用。
我尝试过,<a href="servlet123">Go to servlet</a>但是当我按下链接时找不到servlet。
<a href="servlet123">Go to servlet</a>
第二次编辑:
我试过了<a href="http://localhost:8080/MyProjectName/servlet123">Go to servlet</a>,它起作用了。
<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)
如果要使用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绑定到特定的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(); } }
然后,我在中调用servlet http://localhost:8080/myApp/servlet123(如果使用myApp,则将其作为应用程序上下文)。
http://localhost:8080/myApp/servlet123