firstServlet.java文件:package com.hai;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class firstServlet extends HttpServlet {
public firstServlet() {
super();
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.log("执行doGet方法");
this.execute(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { this.log("执行doPost方法");
this.execute(request,response);
} public long getLastModified(HttpServletRequest request){
this.log("执行getLastModified方法");
return -1;
}

public void execute(HttpServletRequest request, HttpServletResponse response)
         throws ServletException, IOException{

request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");

String requestURI=request.getRequestURI();

String method=request.getMethod();

String param=request.getParameter("param");


response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println("  <BODY>");
out.println("以"+method+"的方式访问该页面,去到的param参数为"+param+"<br/>");
out.println("form action='"+requestURI+"' method='get'>" +
    "<input> type='text' name='param' value='param string'>" +
    "<input type='submit' value='以get方式查询页面'>"+requestURI+"'></form>");

out.println("form action='"+requestURI+"' method='post'>" +
    "<input> type='text' name='param' value='param string'>" +
    "<input type='submit' value='以post方式查询页面'>"+requestURI+"'></form>");

out.println("<stript>document.write('本页最后更新时间:'+document.lastModified)</script>");
out.println("  </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
public void init() throws ServletException {
// Put your code here
}}web.xml<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <servlet-name>firstServlet</servlet-name>
    <servlet-class>com.hai.firstServlet</servlet-class>
  </servlet>  <servlet-mapping>
    <servlet-name>firstServlet</servlet-name>
    <url-pattern>firstServlet</url-pattern>
  </servlet-mapping></web-app>
在myeclipse下访问:http://localhost:8080/firstServlet/网页显示:
HTTP Status 404 - /firstServlet/--------------------------------------------------------------------------------type Status reportmessage /firstServlet/description The requested resource (/firstServlet/) is not available.
--------------------------------------------------------------------------------Apache Tomcat/7.0.23问题出在哪里??在线等....

解决方案 »

  1.   

    http://localhost:8080/firstServlet/
    少了项目名吧,
    应该是http://localhost:8080/项目名/firstServlet/
      

  2.   

      <servlet-mapping>
        <servlet-name>firstServlet</servlet-name>
        <url-pattern>/firstServlet</url-pattern>
      </servlet-mapping>
    标红的地方有“/”
      

  3.   

    启动时控制台输出:2012-5-4 21:25:36 org.apache.catalina.core.AprLifecycleListener init
    信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Program Files (x86)\AppData\Local\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\bin;D:\Program Files (x86)\AppData\Local\Genuitec\Common\plugins\com.genuitec.eclipse.easie.tomcat.myeclipse_8.6.0.me201007231647\tomcat\bin
    2012-5-4 21:25:37 org.apache.coyote.http11.Http11Protocol init
    信息: Initializing Coyote HTTP/1.1 on http-8080
    2012-5-4 21:25:37 org.apache.catalina.startup.Catalina load
    信息: Initialization processed in 489 ms
    2012-5-4 21:25:37 org.apache.catalina.core.StandardService start
    信息: Starting service Catalina
    2012-5-4 21:25:37 org.apache.catalina.core.StandardEngine start
    信息: Starting Servlet Engine: Apache Tomcat/6.0.13
    2012-5-4 21:25:38 org.apache.tomcat.util.digester.Digester endElement
    严重: End event threw exception
    java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tomcat.util.IntrospectionUtils.callMethodN(IntrospectionUtils.java:930)
    at org.apache.catalina.startup.CallMethodMultiRule.end(WebRuleSet.java:794)
    at org.apache.tomcat.util.digester.Rule.end(Rule.java:229)
    at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1058)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562)
    at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:369)
    at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1062)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4236)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> testServlet in servlet mapping
    at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2385)
    at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2361)
    ... 46 more
    2012-5-4 21:25:38 org.apache.catalina.startup.ContextConfig applicationWebConfig
    严重: Parse error in application web.xml file at jndi:/localhost/testServlet/WEB-INF/web.xml
    java.lang.IllegalArgumentException: Invalid <url-pattern> testServlet in servlet mapping
    at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2726)
    at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2752)
    at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1061)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562)
    at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:369)
    at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1062)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4236)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
    2012-5-4 21:25:38 org.apache.catalina.startup.ContextConfig applicationWebConfig
    严重: Occurred at line 17 column 21
    2012-5-4 21:25:38 org.apache.catalina.startup.ContextConfig start
    严重: Marking this application unavailable due to previous error(s)
    2012-5-4 21:25:38 org.apache.catalina.core.StandardContext start
    严重: Error getConfigured
    2012-5-4 21:25:38 org.apache.catalina.core.StandardContext start
    严重: Context [/testServlet] startup failed due to previous errors
    2012-5-4 21:25:38 org.apache.coyote.http11.Http11Protocol start
    信息: Starting Coyote HTTP/1.1 on http-8080
    2012-5-4 21:25:38 org.apache.jk.common.ChannelSocket init
    信息: JK: ajp13 listening on /0.0.0.0:8009
    2012-5-4 21:25:38 org.apache.jk.server.JkMain start
    信息: Jk running ID=0 time=0/33  config=null
    2012-5-4 21:25:38 org.apache.catalina.startup.Catalina start
    信息: Server startup in 1618 ms
      

  4.   

    1、既然是初学,那你也不能把class名字写成小写吧?
    firstServlet ----改为FirstServlet
    2、你web.xml中url-pattern少/
      

  5.   

    就是你的servlet mapping配置的问题。你的配置文是手写的还是工具生成的?重新配置一下web.xml
      

  6.   

    web.xml中url-pattern少/
    项目重新导入到tomcat下,服务器重新启动下
    http://localhost:8080/testServlet/firstServlet/
      

  7.   


    如果再出异常,要学会看异常的发生原因
    Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> testServlet in servlet mapping
    就是说你的web.xml配置错误
    还有404是找不到请求资源路径的错误  
    500是代码有问题
      

  8.   

    问题解决了吗,配置uri要加上/ 服务器启动无异常就可以了,另外可以先试试不加servlet,直接访问工程是否访问的到
      

  9.   

    [Quote=引用 12 楼  的回复:]
    问题解决了吗,配置uri要加上/ 服务器启动无异常就可以了,另外可以先试试不加servlet,直接访问工程是否访问的到
    [/Quot
      

  10.   

     <url-pattern>/firstServlet</url-pattern>然后重启tomcat