我有一个链接列表:
<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
,因此无法检查字符串"/"
是否相等。
我怎么能达到这个目的呢?
答案 0 :(得分:0)
您可以在toString()
上执行StringBuffer
以获得String
吗?在进入Java EE等之前,可能是学习一些基础Java的时候了。
您也可以只查找HttpServletRequest
javadoc以确定哪些方法可用于从请求中获取信息。您会注意到其他getRequestURI()
会返回String
。还有其他更适合此类的内容,例如getServletPath()
。
String servletPath = request.getServletPath();
if (servletPath.equals("/index")) {
response.sendRedirect("index.jsp");
}
else if (servletPath.equals("/contactus")) {
response.sendRedirect("contactus.jsp");
}
// ...