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");
........ 编译没有错误
运行出现开头的提示错误
问题是不知道如何去跟进 , 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");
........ 编译没有错误
运行出现开头的提示错误
我的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>
<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-inf\classes\addressbook\model下
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>
<servlet-name>search </servlet-name>
<url-pattern>/addressbook/SearchServlet </url-pattern>
</servlet-mapping> 红色的去掉.
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>
out.println("<td><a href=SearchServlet?email="+email+"&phone="+phone+">"+ j + "</td>");
<servlet>
<servlet-name>search </servlet-name>
<servlet-class>addressbook.model.SearchServlet </servlet-class>
</servlet> 这个要和对应的<servlet-mapping>放一起的(好像是)你调整好,编译之后,直接打开这个链接试试http://localhost:8080/addressbook/[email protected]&phone=333333656
<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有问题, 只能分开放。
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>
<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>
如果是上面的
第1个登录界面 都找不到
提示
page can't be found.
再试试把<servlet-name>中间内容的前后空格去掉吧......
(之前对action model做的新的java类都是这样执行的 )
---感觉提高了很多 至少明白这个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>
vc抛开了繁琐的细节的配置 上手很快
即使mfc也没有搞这么多
语法上java要简单好多(没有指针)