在我的Java Web应用程序中,我使用HttpServletRequest
getPathInfo()
方法获取请求发送到Servlet的路径。
我的Servlet:Controller
包含以下代码:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = request.getPathInfo();
RequestDispatcher dispatcher = null;
if(action.equals("/viewDetails"))
{
dispatcher = this.getServletContext().getRequestDispatcher("/viewDetails.jspx");
}
}
这里我正在检查请求的操作是什么,以便我可以将用户引导到适当的视图。
现在我的loginForm.jspx
我有一个这样的登录表单:
<form method="POST" action="http://localhost:8080/do/viewDetails">
这将通过控制器识别的操作/viewDetails
进入控制器。
在我的web.xml中,我已映射/do
模式以链接到Controller
servlet。因此,每当找到/do
路径时,请求就会发送到Controller,该Controller确定去哪里(如processRequest方法中所示)。
现在我遇到的问题是,当我尝试在HTML a
标记中以相同方式链接到控制器时,它不起作用,例如:
<a href="http://localhost:8080/do/viewDetails">View all details</a>
我是否可以使用a href
执行与<form action...
相同的操作?
修改
单击“查看所有详细信息”链接时浏览器的屏幕截图: