Tomcat怎么这么莫名其妙? 把你 web.xml 的内容帖出来看看呀,光发牢骚有什么用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的web.xml是怎么的吗?<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd"><web-app><display-name>My Web Application</display-name><description>A application for test.</description><servlet><servlet-name>Test</servlet-name><display-name>Test</display-name><description>A test Servlet</description><servlet-class>test.Test</servlet-class></servlet><servlet-mapping><servlet-name>Test</servlet-name><url-pattern>/Test</url-pattern></servlet-mapping></web-app> 我知道是什么问题,你的web.xml配置有问题啊!!!当你初打开web.xml的时候,里面应该有三个默认的<servlet>,,,</servlet>,还有与之一一相对应的三个<servlet-mapping>,,,,,</servlet-mapping>,注意:请你最好别改动它们!!!然后下一步要做的就是加上你的SERVLET配置:在最后一个<servlet>,,,</servlet>后面加上<servlet><servlet-name>Test</servlet-name><display-name>Test</display-name><description>A test Servlet</description><servlet-class>test.Test</servlet-class></servlet>在最后一个<servlet-mapping>,,,,,</servlet-mapping>后面加上<servlet-mapping><servlet-name>Test</servlet-name><url-pattern>/Test</url-pattern></servlet-mapping>这样才能保证它们是一一相对应的关系!!!祝你成功,有问题找我,QQ:43763062。我用了很久的tomcat了,按我的做应该没有什么问题! 什么三个默认的,我不赞同啊,给你一个模板,我自己项目的一个注册文件啊:<?xml version="1.0" encoding="ISO-8859-1"?><!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> <servlet> <servlet-name>rdLogServlet</servlet-name> <servlet-class>com/jl/ERPPlotSummary/web/rdLogServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>rdLogServlet</servlet-name> <url-pattern>/ERPPlotSummary/rdLogServlet</url-pattern> </servlet-mapping></web-app> 大哥们,我用的是tomcat4.06如果不同有可能是版本不一样了 Web应用程序的部署文件web.xml的说明 一个Context对应于一个Web应用程序,每个Web应用程序是由一个或者多个servlet组成的。当一个Web应用程序被初始化的时候,它将用自己的ClassLoader对象载入“部署文件web.xml”中定义的每个servlet类。它首先载入在$CATALINA_HOME/conf/web.xml中部署的servlet类。然后载入在Web-INF/web.xml中部署的servlet类。web.xml文件有两部分:servlet类定义和servlet映射定义。每个被载入的servlet类都有一个名字,且被填入该Context的映射表(mapping table)中,和某种URL PATTERN对应。当该Context获得请求时,将查询mapping table,找到被请求的servlet,并执行以获得请求回应。分析一下所有的Context共享的web.xml文件,在其中定义的servlet被所有的Web App载入<!----------------------------------------------------------------------------------><web-app> <!-- 概述:该文件是所有的Web应用程序共用的部署配置文件,每当一个Web应用程序被部署,该文件都将先被处理,然后才是Web应用程序自己的/Web-INF/web.xml --> <!-- servlet类定义部分 --> <!—DefaultServlet 当用户的HTTP请求无法匹配任何一个servlet的时候,该servlet被执行 --> <servlet> <servlet-name>default</servlet-name> <servlet-class> org.apache.catalina.servlets.DefaultServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!—InvokerServlet处理一个Web应用程序中的匿名servlet,当一个servlet被编写并编译放入/Web-INF/classes/中,却没有在/Web-INF/web.xml中定义的时候,该servlet被调用,把匿名servlet映射成/servlet/ClassName的形式 --> <servlet> <servlet-name>invoker</servlet-name> <servlet-class> org.apache.catalina.servlets.InvokerServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <!-- JspServlet 当请求的是一个JSP页面的时候(*.jsp)该servlet被调用,它是一个JSP编译器,将请求的JSP页面编译成为servlet再执行 --> <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>logVerbosityLevel</param-name> <param-value>WARNING</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet> <!-- servlet映射定义部分 --> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ... ... ... ...</web-app>如果你自己新写了自己的servlet,需要增加如下内容:<servlet> <servlet-name>你的servlet名称</servlet-name> <servlet-class>你的servlet类</servlet-class></servlet><servlet-mapping> <servlet-name>你的servlet名称</servlet-name> <url-pattern>路径映射名</url-pattern></servlet-mapping>然后你在浏览器中使用http://地址/路径映射名+你的servlet名称就可以访问你的servlet了如果你足够地懒,就采用如下方法:处理一个Web应用程序中的匿名servlet,当一个servlet被编写并编译放入/Web-INF/classes/中,却没有在/Web-INF/web.xml中定义的时候,该servlet被调用,把匿名servlet映射成/servlet/ClassName的形式 --> <servlet> <servlet-name>invoker</servlet-name> <servlet-class> org.apache.catalina.servlets.InvokerServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> 刚刚碰到类似问题,解决了。你先看看tomcat启动是有没有抛异常,有的话就是jdk或tomcat的lib目录里多了一些包。试试看 嘿嘿记得半年前我是多么包都没多了但是这次我把MySQL的驱动程序放到了jdk和tomcat的lib目录里。两个确实都放了...麻烦问一下怎么检查tomcat启动抛出的异常啊?用start.bat启动确实挺麻烦的,半天启动不了,我就重新启动整个机器...结果就成了描述的那样了 建议改用resin,resin服务器稳定可靠,设置简单,错误定位又十分正确。Tomcat实在把人害苦了 比较弱的问题,请解惑。 flash与web链接 IBatis封装成List时,为什么把从数据库取回值的小数点部分取消了? mailto的内容用URLEncoder.encode成utf-8,outlook出现乱码 tomcat 请问这是啥错~ 面试题目请高手解答 Hibernate copy记录 提交后将密码显示在地址栏了。 数据提交问题 weblogic的javabean调试问题 getServletContext()问题
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>My Web Application</display-name>
<description>
A application for test.
</description>
<servlet>
<servlet-name>Test</servlet-name>
<display-name>Test</display-name>
<description>A test Servlet</description>
<servlet-class>test.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
</web-app>
<servlet>
<servlet-name>Test</servlet-name>
<display-name>Test</display-name>
<description>A test Servlet</description>
<servlet-class>test.Test</servlet-class>
</servlet>
在最后一个<servlet-mapping>,,,,,</servlet-mapping>后面加上
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
这样才能保证它们是一一相对应的关系!!!
祝你成功,有问题找我,QQ:43763062。我用了很久的tomcat了,按我的做应该没有什么问题!
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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>
<servlet>
<servlet-name>rdLogServlet</servlet-name>
<servlet-class>com/jl/ERPPlotSummary/web/rdLogServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>rdLogServlet</servlet-name>
<url-pattern>/ERPPlotSummary/rdLogServlet</url-pattern>
</servlet-mapping>
</web-app>
一个Context对应于一个Web应用程序,每个Web应用程序是由一个或者多个servlet组成的。当一个Web应用程序被初始化的时候,它将用自己的ClassLoader对象载入“部署文件web.xml”中定义的每个servlet类。
它首先载入在$CATALINA_HOME/conf/web.xml中部署的servlet类。然后载入在Web-INF/web.xml中部署的servlet类。web.xml文件有两部分:servlet类定义和servlet映射定义。每个被载入的servlet类都有一个名字,且被填入该Context的映射表(mapping table)中,和某种URL PATTERN对应。当该Context获得请求时,将查询mapping table,找到被请求的servlet,并执行以获得请求回应。
分析一下所有的Context共享的web.xml文件,在其中定义的servlet被所有的Web App载入
<!---------------------------------------------------------------------------------->
<web-app>
<!-- 概述:该文件是所有的Web应用程序共用的部署配置文件,每当一个Web应用程序被部署,该文件都将先被处理,然后才是Web应用程序自己的/Web-INF/web.xml --> <!-- servlet类定义部分 -->
<!—DefaultServlet
当用户的HTTP请求无法匹配任何一个servlet的时候,该servlet被执行 -->
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>
org.apache.catalina.servlets.DefaultServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <!—InvokerServlet
处理一个Web应用程序中的匿名servlet,当一个servlet被编写并编译放入/Web-INF/classes/中,却没有在/Web-INF/web.xml中定义的时候,该servlet被调用,把匿名servlet映射成/servlet/ClassName的形式 -->
<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>
org.apache.catalina.servlets.InvokerServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet> <!-- JspServlet
当请求的是一个JSP页面的时候(*.jsp)该servlet被调用,它是一个JSP编译器,将请求的JSP页面编译成为servlet再执行 -->
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>logVerbosityLevel</param-name>
<param-value>WARNING</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet> <!-- servlet映射定义部分 -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
... ... ... ...
</web-app>
如果你自己新写了自己的servlet,需要增加如下内容:<servlet>
<servlet-name>你的servlet名称</servlet-name>
<servlet-class>你的servlet类</servlet-class>
</servlet><servlet-mapping>
<servlet-name>你的servlet名称</servlet-name>
<url-pattern>路径映射名</url-pattern>
</servlet-mapping>
然后你在浏览器中使用http://地址/路径映射名+你的servlet名称就可以访问你的servlet了如果你足够地懒,就采用如下方法:处理一个Web应用程序中的匿名servlet,当一个servlet被编写并编译放入/Web-INF/classes/中,却没有在/Web-INF/web.xml中定义的时候,该servlet被调用,把匿名servlet映射成/servlet/ClassName的形式 -->
<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>
org.apache.catalina.servlets.InvokerServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
你先看看tomcat启动是有没有抛异常,有的话就是jdk或tomcat的lib目录里多了一些包。试试看
用start.bat启动确实挺麻烦的,半天启动不了,我就重新启动整个机器...结果就成了描述的那样了