你看我试图制作一个简单的导航菜单,试图制作一个简单的网络应用程序。 我想尝试仅使用一种表格的至少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页面。 您认为我的代码有什么问题?
提前感谢!
答案 0 :(得分:0)
每个链接的URL完全相同,不包含任何参数。要使代码正常工作,网址应为
<%=request.getContextPath()%>/MainServlet?about=
和
<%=request.getContextPath()%>/MainServlet?contact=
我会使用两个不同的servlet:一个负责处理about页面,另一个负责处理联系页面。如果它们只是调度到JSP,它并没有太大的改变,但是如果需要在页面中显示某些数据,那么为每个页面设置一个专用的servlet会更有意义。
它还有助于拥有更清晰的网址,例如/contact
和/about
。