定义了一个servlet类,在配置web.xml的时候出错,怎么回事?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定义了一个servlet类,在配置web.xml的时候出错,怎么回事?相关的知识,希望对你有一定的参考价值。
<?xml version="1.0" encoding="UTF-8"?>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>//(在eclipse中这行提示The markup in the document following the root element must be well-formed.)
<servlet-name>MyServlet</servlet-name>
<url-patttern>/MyServlet</url-patttern>
</servlet-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
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_3_0.xsd">
<servlet>
<servlet-name>SendMsg</servlet-name>
<servlet-class>my.jsp.Servlet.SendMsg</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SendMsg</servlet-name>
<url-pattern>/SendMsgTest</url-pattern>
</servlet-mapping>
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>追问
什么作用?
追答
index.jsp 这个是设置网站默认访问,如果你把index.jsp设置为 你自己的名称,也可以
英文解释就是访问文件的集合
<web-app>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>//(在eclipse中这行提示The markup in the document following the root element must be well-formed.)
<servlet-name>MyServlet</servlet-name>
<url-patttern>/MyServlet</url-patttern>
</servlet-mapping>
</web-app>追问
每一个servlet都对应一个标签是吗
追答不是 都放在一个里面
Servlet异常处理
1.Servlet 异常处理
使用场景:
当一个 Servlet 抛出一个异常时,Web 容器在使用了 exception-type 元素的 web.xml 中搜索与抛出异常类型相匹配的配置。web.xml 中使用 error-page 元素来指定对特定异常 或 HTTP 状态码 作出相应的 Servlet 调用。
2.web.xml 配置
假设,有一个 ErrorHandler 的 Servlet 在任何已定义的异常或错误出现时被调用。以下将是在 web.xml 中创建的项。
1 <!-- servlet 定义 --> 2 3 <servlet> 4 5 <servlet-name>ErrorHandler</servlet-name> 6 7 <servlet-class>ErrorHandler</servlet-class> 8 9 </servlet> 10 11 <!-- servlet 映射 --> 12 13 <servlet-mapping> 14 15 <servlet-name>ErrorHandler</servlet-name> 16 17 <url-pattern>/ErrorHandler</url-pattern> 18 19 </servlet-mapping> 20 21 22 23 <!-- error-code 相关的错误页面 --> 24 25 <error-page> 26 27 <error-code>404</error-code> 28 29 <location>/ErrorHandler</location> 30 31 </error-page> 32 33 <error-page> 34 35 <error-code>403</error-code> 36 37 <location>/ErrorHandler</location> 38 39 </error-page> 40 41 42 43 <!-- exception-type 相关的错误页面 --> 44 45 <error-page> 46 47 <exception-type> 48 49 javax.servlet.ServletException 50 51 </exception-type > 52 53 <location>/ErrorHandler</location> 54 55 </error-page> 56 57 58 59 <error-page> 60 61 <exception-type>java.io.IOException</exception-type > 62 63 <location>/ErrorHandler</location> 64 65 </error-page>
如果您想对所有的异常有一个通用的错误处理程序,那么应该定义下面的 error-page,而不是为每个异常定义单独的 error-page 元素:
<error-page> <exception-type>java.lang.Throwable</exception-type > <location>/ErrorHandler</location> </error-page>
在 web.xml 文件中添加如下配置来处理异常:
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <web-app> 4 5 <servlet> 6 7 <servlet-name>ErrorHandler</servlet-name> 8 9 <servlet-class>com.sxt.test.ErrorHandler</servlet-class> 10 11 </servlet> 12 13 <!-- servlet mappings --> 14 15 <servlet-mapping> 16 17 <servlet-name>ErrorHandler</servlet-name> 18 19 <url-pattern>/TomcatTest/ErrorHandler</url-pattern> 20 21 </servlet-mapping> 22 23 <error-page> 24 25 <error-code>404</error-code> 26 27 <location>/TomcatTest/ErrorHandler</location> 28 29 </error-page> 30 31 <error-page> 32 33 <exception-type>java.lang.Throwable</exception-type > 34 35 <location>/ErrorHandler</location> 36 37 </error-page> 38 39 </web-app>
现在,尝试使用一个会产生异常的 Servlet,或者输入一个错误的 URL,这将触发 Web 容器调用 ErrorHandler 的 Servlet,并显示适当的消息。
以上是关于定义了一个servlet类,在配置web.xml的时候出错,怎么回事?的主要内容,如果未能解决你的问题,请参考以下文章