0

你看我正在尝试制作一个简单的导航菜单来尝试制作一个简单的网络应用程序。我想尝试至少 2 个仅使用一种形式的菜单。单击任何菜单时,它将调用 servlet MainServlet,它将决定要显示哪个 JSP 页面。

在 JSP 中:

<form action="menu" method="POST">
<a href="<%=request.getContextPath()%>/MainServlet" name="about">About</a>
<a href="<%=request.getContextPath()%>/MainServlet" name="contact">Contact Us</a>
</form>

在 web.xml 中:

<servlet>
<servlet-name>MainServlet</servlet-name>
<servlet-class>com.javashuffle.servlets.MainServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>MainServlet</servlet-name>
<url-pattern>/MainServlet</url-pattern>
</servlet-mapping>

在 MainServlet 中:

doGet() {
   if (request.getParameter("about") != null) {
   RequestDispatcher dispatcher = request.getRequestDispatcher("about.jsp");
   dispatcher.forward(request, response);
   } else if (request.getParameter("contact") != null) {
   RequestDispatcher dispatcher = request.getRequestDispatcher("contact.jsp");
   dispatcher.forward(request, response);
   }
}

我似乎无法使用 servlet 中的代码访问所需的 JSP 页面。你认为我的代码有什么问题?

提前致谢!

4

1 回答 1

0

每个链接的 URL 完全相同,并且不包含任何参数。为了使您的代码正常工作,URL 应该是

<%=request.getContextPath()%>/MainServlet?about=

<%=request.getContextPath()%>/MainServlet?contact=

我将使用两个不同的 servlet:一个负责处理 about 页面,另一个负责处理联系页面。如果他们所做的只是分派到 JSP 并没有太大变化,但是如果需要在页面中显示一些数据,则为每个页面设置一个专用的 servlet 更有意义。

它还有助于拥有更清晰的 URL,例如/contact/about.

于 2013-05-12T11:35:50.040 回答