当 servlet 映射到多个 URL 模式时找出实际的 URL 模式匹配
Find out actual URL pattern match when servlet is mapped on multiple URL patterns
我有一个链接列表:
<ul>
<li><a href="index">Home</a></li>
<li><a href="contactus">Contact Us</a></li>
<li><a href="services">Services</a></li>
<li><a href="enquire">Enquire<a></li>
</ul>
以及以下 servlet:
@WebServlet( urlPatterns={"/index","/contactus","/services","/enquire"})
public class IndexServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Index URL mapping should be checked here like
if(request.getRequestURL().equals("/index"))
{
response.sendredirtect("index.jsp")
}
//Url for contact us should be checked here
if(request.getRequestURL().equals("/contactus"))
{
response.sendredirtect("contactus.jsp")
}
//same for all the above url requests
}
由于 getRequestURL()
方法是 StringBuffer
,因此无法检查它是否与字符串 "/"
相等。
我怎样才能做到这一点?
你可以在 StringBuffer
上做一个 toString()
来得到一个 String
吗?在深入研究 Java EE 等之前,也许是时候学习一些基本的 Java 了。
您也可以只查找 HttpServletRequest
javadoc 来确定哪些方法可用于从请求中获取信息。您会注意到 getRequestURI()
其中 returns 和 String
。还有其他更适合这个的,比如 getServletPath()
.
String servletPath = request.getServletPath();
if (servletPath.equals("/index")) {
response.sendRedirect("index.jsp");
}
else if (servletPath.equals("/contactus")) {
response.sendRedirect("contactus.jsp");
}
// ...
我有一个链接列表:
<ul>
<li><a href="index">Home</a></li>
<li><a href="contactus">Contact Us</a></li>
<li><a href="services">Services</a></li>
<li><a href="enquire">Enquire<a></li>
</ul>
以及以下 servlet:
@WebServlet( urlPatterns={"/index","/contactus","/services","/enquire"})
public class IndexServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Index URL mapping should be checked here like
if(request.getRequestURL().equals("/index"))
{
response.sendredirtect("index.jsp")
}
//Url for contact us should be checked here
if(request.getRequestURL().equals("/contactus"))
{
response.sendredirtect("contactus.jsp")
}
//same for all the above url requests
}
由于 getRequestURL()
方法是 StringBuffer
,因此无法检查它是否与字符串 "/"
相等。
我怎样才能做到这一点?
你可以在 StringBuffer
上做一个 toString()
来得到一个 String
吗?在深入研究 Java EE 等之前,也许是时候学习一些基本的 Java 了。
您也可以只查找 HttpServletRequest
javadoc 来确定哪些方法可用于从请求中获取信息。您会注意到 getRequestURI()
其中 returns 和 String
。还有其他更适合这个的,比如 getServletPath()
.
String servletPath = request.getServletPath();
if (servletPath.equals("/index")) {
response.sendRedirect("index.jsp");
}
else if (servletPath.equals("/contactus")) {
response.sendRedirect("contactus.jsp");
}
// ...