SearchServlet发生错误 
问题是不知道如何去跟进 , breakpoint  can't be added
how to debug
bruce says: http://localhost:8080/addressbook/[email protected]&phone=333333656 
type Status report message /addressbook/SearchServlet description The requested resource (/addressbook/SearchServlet) is not available. 代码 
package addressbook.model; import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.*; 
import java.util.*; class SearchServlet extends HttpServlet  { 
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ 
//static{ 
System.out.println("load serverlet class"); 
//} 
String name=request.getParameter("email"); 
        String phone1=request.getParameter("phone"); 
      ........ 编译没有错误 
运行出现开头的提示错误  

解决方案 »

  1.   

    路径错误,要看看web.xml是怎么映射的
      

  2.   

    应该是web.xml的servlet-mapping没配好.贴出来看看.
      

  3.   

    <?xml version="1.0" encoding="ISO-8859-1"?>
    我的SearchServlet.java 文件放的目录为package addressbook.model; 
    和jsp不在同一目录 (jsp在webcontent目录) 
    web.xml的servlet-mapping  不知道如何配置 
    内容如下
    <!DOCTYPE web-app PUBLIC 
              "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
              "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"><web-app>
      <display-name>Struts AddressBook Sample Applications</display-name>
      <servlet>
        <servlet-name>userdatabase</servlet-name>
        <servlet-class>addressbook.UserDatabaseServlet</servlet-class>
        <init-param>
          <param-name>debug</param-name>
          <param-value>2</param-value>
        </init-param>
        <init-param>
          <param-name>pathname</param-name>
          <param-value>/WEB-INF/userdatabase.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      
      <taglib>
        <taglib-uri>/WEB-INF/app.tld</taglib-uri>
        <taglib-location>/WEB-INF/app.tld</taglib-location>
      </taglib>
      <taglib>
        <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
        <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
      </taglib>
      <taglib>
        <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
        <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
      </taglib>
      <taglib>
        <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
        <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
      </taglib>
    </web-app>
      

  4.   

    在这行<welcome-file-list>之前添加这么一段试试:
    <servlet>
        <servlet-name>search</servlet-name>
        <servlet-class>addressbook.model.SearchServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>search</servlet-name>
        <url-pattern>/addressbook/SearchServlet</url-pattern>
    </servlet-mapping> 
      

  5.   

    还要将SearchServlet.class文件放到
    web-inf\classes\addressbook\model下
      

  6.   

    加了发生错误
    The element type "sesrvlet-mapping" must be terminated by the matching end-tag "</sesrvlet-mapping>".<web-app>
      <display-name>Struts AddressBook Sample Applications</display-name>
      <servlet>
        <servlet-name>userdatabase</servlet-name>
        <servlet-class>addressbook.UserDatabaseServlet</servlet-class>
        <init-param>
          <param-name>debug</param-name>
          <param-value>2</param-value>
        </init-param>
        <init-param>
          <param-name>pathname</param-name>
          <param-value>/WEB-INF/userdatabase.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
      </servlet>
        
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
          </servlet-mapping>
        <servlet>
        <servlet-name>search</servlet-name>
        <servlet-class>addressbook.model.SearchServlet</servlet-class>
    </servlet>
         <sesrvlet-mapping>
            <servlet-name>search</servlet-name>
        <url-pattern>/addressbook/SearchServlet</url-pattern>
      </servlet-mapping>
      
      

  7.   

    <sesrvlet-mapping>
            <servlet-name>search </servlet-name>
        <url-pattern>/addressbook/SearchServlet </url-pattern>
      </servlet-mapping> 红色的去掉.
      

  8.   

    配置问题解决, 但是运行发现还是不能找到文件
    HTTP Status 404 - /addressbook/SearchServlet--------------------------------------------------------------------------------type Status reportmessage /addressbook/SearchServletdescription The requested resource (/addressbook/SearchServlet) is not available.
    --------------------------------------------------------------------------------Apache Tomcat/6.0.18
    配置如下 (编译通过)
    <web-app>
      <display-name>Struts AddressBook Sample Applications</display-name>
      <servlet>
        <servlet-name>userdatabase</servlet-name>
        <servlet-class>addressbook.UserDatabaseServlet</servlet-class>
        <init-param>
          <param-name>debug</param-name>
          <param-value>2</param-value>
        </init-param>
        <init-param>
          <param-name>pathname</param-name>
          <param-value>/WEB-INF/userdatabase.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
      </servlet> <servlet>
           <servlet-name>search</servlet-name>
        <servlet-class>addressbook.model.SearchServlet</servlet-class>
    </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
          </servlet-mapping>
       
        
     
         <servlet-mapping>
            <servlet-name>search</servlet-name>
        <url-pattern>/addressbook/SearchServlet</url-pattern>
      </servlet-mapping>
      

  9.   

     我的调用代码是     
     out.println("<td><a href=SearchServlet?email="+email+"&phone="+phone+">"+ j + "</td>");
              
      

  10.   

    晕.怎么把这段代码提上来了?
    <servlet>
          <servlet-name>search </servlet-name>
        <servlet-class>addressbook.model.SearchServlet </servlet-class>
    </servlet> 这个要和对应的<servlet-mapping>放一起的(好像是)你调整好,编译之后,直接打开这个链接试试http://localhost:8080/addressbook/[email protected]&phone=333333656
      

  11.   

    </servlet> <servlet>
          <servlet-name>search </servlet-name>
        <servlet-class>addressbook.model.SearchServlet </servlet-class>
    </servlet>
        <servlet-mapping>
            <servlet-name>search </servlet-name>
        <url-pattern>/addressbook/SearchServlet </url-pattern>
      </servlet-mapping>
    编译通不过
    提示web.xml有问题, 只能分开放。
      

  12.   

    能编译通过的是 运行发现还是不能找到文件 
    HTTP Status 404 - /addressbook/SearchServlet -------------------------------------------------------------------------------- type Status report message /addressbook/SearchServlet description The requested resource (/addressbook/SearchServlet) is not available.   <servlet>
        <servlet-name>userdatabase</servlet-name>
        <servlet-class>addressbook.UserDatabaseServlet</servlet-class>
        <init-param>
          <param-name>debug</param-name>
          <param-value>2</param-value>
        </init-param>
        <init-param>
          <param-name>pathname</param-name>
          <param-value>/WEB-INF/userdatabase.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
        <servlet> 
          <servlet-name>SearchServlet </servlet-name> 
        <servlet-class>addressbook.model.SearchServlet </servlet-class> 
    </servlet> 
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
      </servlet> 
      
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
          </servlet-mapping>
       
      
             <servlet-mapping>
            <servlet-name>SearchServlet</servlet-name>
        <url-pattern>/addressbook/SearchServlet</url-pattern>
      </servlet-mapping>
      

  13.   

    你试试把其它servlet和servlet-mapping拿掉,只剩下<servlet>
        <servlet-name>search</servlet-name>
        <servlet-class>addressbook.model.SearchServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>search</servlet-name>
        <url-pattern>/addressbook/SearchServlet</url-pattern>
    </servlet-mapping>
      

  14.   

    不可以 
    如果是上面的
    第1个登录界面 都找不到 
    提示
    page can't be found.
      

  15.   

    你调整好,编译之后,直接打开这个链接试试http://localhost:8080/addressbook/[email protected]&phone=333333656
      

  16.   

    HTTP Status 404 - /addressbook/SearchServlet--------------------------------------------------------------------------------type Status reportmessage /addressbook/SearchServletdescription The requested resource (/addressbook/SearchServlet) is not available.
      

  17.   

    晕,不会吧这样都不行
    再试试把<servlet-name>中间内容的前后空格去掉吧......
      

  18.   

    SearchServlet.class放到指定的目录了么?
      

  19.   

    我的默认是在debug 下, 这个无所谓的
    (之前对action model做的新的java类都是这样执行的 )
      

  20.   

    在同事热情帮助下 ,奋勇调试最终解决这个问题
    ---感觉提高了很多 至少明白这个servelet是真么回事,不敢说完全明白,但至少有了储备
    总结
    1 大小写 空格 名称
    2 serverlet的class前面要加上public 否则调试不能通过
    <servlet>
        <servlet-name>userdatabase </servlet-name>
        <servlet-class>addressbook.UserDatabaseServlet </servlet-class>
        <init-param>
          <param-name>debug </param-name>
          <param-value>2 </param-value>
        </init-param>
        <init-param>
          <param-name>pathname </param-name>
          <param-value>/WEB-INF/userdatabase.xml </param-value>
        </init-param>
        <load-on-startup>1 </load-on-startup>
      </servlet>
        <servlet>
          <servlet-name>search</servlet-name>
        <servlet-class>addressbook.model.SearchServlet</servlet-class>
    </servlet>
      <servlet>
        <servlet-name>action </servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet </servlet-class>
        <init-param>
          <param-name>config </param-name>
          <param-value>/WEB-INF/struts-config.xml </param-value>
        </init-param>
        <load-on-startup>2 </load-on-startup>
      </servlet>
     
      <servlet-mapping>
        <servlet-name>action </servlet-name>
        <url-pattern>*.do </url-pattern>
          </servlet-mapping>
     
     
           <servlet-mapping>
            <servlet-name>SearchServlet </servlet-name>
        <url-pattern>SearchServlet</url-pattern>
      </servlet-mapping> 
      

  21.   

    直言比vc还艰苦 vc不会有真么复杂的配置
    vc抛开了繁琐的细节的配置 上手很快
    即使mfc也没有搞这么多
    语法上java要简单好多(没有指针)