tomcat中找不到servlet

JeilyNE 2007-04-07 01:12:12
我编写了一个servlet Dispatch.java,通过index.jsp调用,

index.jsp代码如下:
<%@ page language="java" contentType="text/html; charset=gb2312"%>

<html>
<head>
<title>MyStore</title>
</head>
<body>
<h1>Welcome to MyStore</h1>
<p>Click here to <a href="<%=response.encodeURL("dispatch?operation=browse") %>">browse the catalog</a>
</body>
</html>

我用的是eclipse开发,Dispatch.java位于\WEB-INF\src\mystore.servlet包内web.xml中servlet设置如下:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>mystore.servlet.Dispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/dispatch</url-pattern>
</servlet-mapping>

运行后点击browse the catalog链接提示如下:
HTTP Status 404 - /dispatch

--------------------------------------------------------------------------------

type Status report

message /dispatch

description The requested resource (/dispatch) is not available.

是不是servlet设置错了??或者是请求错误?请高手帮忙解决下,谢谢。。。
...全文
623 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
ikaoni 2007-04-08
  • 打赏
  • 举报
回复
我也犯这样的错误,
前两天打错了一个字母,研究了一天多才解决.
呵呵
看来还是要细心啊
ikaoni 2007-04-08
  • 打赏
  • 举报
回复
刚看了,还是web.xml里粗心打错了,
一个是web-app打成了web-add
另一个是url-pattern里那个dispatch打成了disptch.
下面是这段的正确代码.
我试了,运行没问题了.

<web-app>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>mystore.servlet.Dispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/dispatch</url-pattern>
</servlet-mapping>

</web-app>
JeilyNE 2007-04-08
  • 打赏
  • 举报
回复
谢谢楼上的兄弟,昨天给的代码里,web.xml中<web-app>写错- -b!!低级错误,改正了 还是提示同样的错误
ikaoni 2007-04-08
  • 打赏
  • 举报
回复
我刚看到贴子,今天试试看.
JeilyNE 2007-04-08
  • 打赏
  • 举报
回复
没人懂吗??。。。。。帖子沉了。。。。。自己顶个
JeilyNE 2007-04-08
  • 打赏
  • 举报
回复
解决了,谢谢楼上的兄弟, 我把index.jsp 放在工程主目录下,把Dispatcher.java中“/browse.jsp”改成"/Mystore/browse.jsp" 就可以了,呵
ikaoni 2007-04-08
  • 打赏
  • 举报
回复

我没有用eclipse,我是在Tomcat中做的测试,把你的应用放到webapps目录下.

对了,还把目录名改了一下,Mystore改成mystore,这样就和包名大小写一致了.
JeilyNE 2007-04-08
  • 打赏
  • 举报
回复
谢谢楼上的兄弟,刚把那个改了 试下可以,

我用的是eclipse3.2+Tomcat5.5.17,最先Mystore是放在我建立的一个工程Tomtest下的,结果每次运行都提示我说的那个错误,后直接把你刚给贴的web.xml粘贴进去,还是运行不了。后面把Mystore移出来建一个单独的工程放置,才可以运行。。。真不知是什么问题。郁闷
JeilyNE 2007-04-07
  • 打赏
  • 举报
回复
照楼上说的做了,还是不行,提示同样的错误。。。
vsover 2007-04-07
  • 打赏
  • 举报
回复
反编译他是没有用的 你可以试试把他放到Root目录下 看是否能找到 (笨方法 )

因为找不到文件 就应该是设置的错 不可能是程序的错
vsover 2007-04-07
  • 打赏
  • 举报
回复
唉 真有缘 我上午也遇到相同问题 1个多小时没有解决

只不过我现在在网吧 不能帮你测试 ...嘿

我也等....
JeilyNE 2007-04-07
  • 打赏
  • 举报
回复
Dispatcher.java代码如下:
package mystore.servlet;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import mystore.javabeans.*;
public class Dispatcher extends HttpServlet{

private ServletContext sc;
public void init(ServletConfig config)throws ServletException{
super.init(config);
sc=this.getServletContext();
}

protected void service(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
response.setContentType("text/html");
String operation=request.getParameter("operation");
if(operation==null){
operation="";
}

if(operation.equalsIgnoreCase("browse")){
this.doBrowse(request,response);
return;
}
if(operation.equalsIgnoreCase("addItem")){
this.doAdd(request,response);
return;
}
if(operation.equalsIgnoreCase("removeItem")){
this.doRemove(request, response);
return;
}
if(operation.equalsIgnoreCase("removeAll")){
this.doRemoveAll(request, response);
return;
}
if(operation.equalsIgnoreCase("doUnKnown")){
this.doUnknown(request, response);
return;
}

}
private void doBrowse(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
RequestDispatcher rd=sc.getRequestDispatcher("/browse.jsp");
rd.forward(request, response);
}
private void doAdd(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
HttpSession session=request.getSession();
Hashtable cart=(Hashtable)session.getAttribute("shoppingcart");
if(cart==null){
cart=new Hashtable();
session.setAttribute("shoppingcart", cart);
}
String itemSku=request.getParameter("sku");
Catalog cat=new Catalog();
ItemInfo item=cat.getItem(itemSku);
cart.put(itemSku, item);
doBrowse(request,response);
}
private void doRemove(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
HttpSession session=request.getSession();
Hashtable cart=(Hashtable)session.getAttribute("shoppingcart");

if(cart==null){
cart=new Hashtable();
session.setAttribute("shoppingcart", cart);
}
String itemSku=request.getParameter("sku");
cart.remove(itemSku);
doBrowse(request,response);
}
private void doRemoveAll(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
HttpSession session=request.getSession();
session.setAttribute("shoppingcart", new Hashtable());
doBrowse(request,response);
}
private void doUnknown(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
Exception e=new Exception("The operation is invalid!");
RequestDispatcher rd=sc.getRequestDispatcher("/error.jsp");
request.setAttribute("javax.servlet.jsp.jspException",e);
rd.forward(request, response);
}
}
JeilyNE 2007-04-07
  • 打赏
  • 举报
回复
楼上的 ,我的代码已经发出,谢谢。
ikaoni 2007-04-07
  • 打赏
  • 举报
回复
如果可以的话,把你的应用打个包发给我ihway@163.com
我试试
JeilyNE 2007-04-07
  • 打赏
  • 举报
回复
请deng1234(秋风)具体说下。。。
deng1234 2007-04-07
  • 打赏
  • 举报
回复
web.xml

里面设置有错,
bianjing2008 2007-04-07
  • 打赏
  • 举报
回复
帮你顶下再说..........看不出毛病........
JeilyNE 2007-04-07
  • 打赏
  • 举报
回复
找了,存在Dsipatcher.class文件。。。。到底是什么原因呢,在线等。。。。。
oracs 2007-04-07
  • 打赏
  • 举报
回复
看看有没有\WEB-INF\classes\mystore\servlet\Dispatcher.class文件?

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧