我的环境:Windows 7 64位,Eclipse Kepler,Glassfish 4。 我的动态Web项目结构大纲:
MyProject
|
|__java (src folder)
| |
| |__controller (package)
| |
| |__ControllerServlet.java
|
|__WebContent
|
|__WEB-INF
|
|__view
|__category.jsp
|
|etc...
我在我的浏览器中输入了网址http://localhost:4848/AffableBean/category
,但它失败了并且给了我404错误。
为什么会这样?
ControllerServlet.java :(仅限代码段)
@WebServlet(name = "ControllerServlet", urlPatterns = { "/category",
"/addToCart", "/viewCart", "/updateCart", "/checkout", "/purchase",
"/chooseLanguage" })
public class ControllerServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String userPath = request.getServletPath();
String url = "/WEB-INF/view" + userPath + ".jsp";
System.out.println("test url = " + url);//TEST
try {
request.getRequestDispatcher(url).forward(request, response);
} catch (Exception ex) {
ex.printStackTrace();
}
}
//same code for doPost.
如何修复此错误?我认为任何请求都不会触及控制器servlet。
答案 0 :(得分:1)
我解决了这个问题。当我从localhost:4848访问Web应用程序时,它将带我到index.jsp。我注意到网络应用的网址是http://MyComputerName:6262/AffableBean/
。我添加/类别以使其工作。服务器端口号是6262,管理服务器端口号是4848.我真的不明白这一点。当我使用tomcat时,我从未遇到过这个问题。只有端口号。