JavaWeb中web.xml里如何对标签正确配置啊?

卑鄙的臭臭 2014-06-15 09:57:47
本人菜鸟一枚,在做老师布置的blog网站大作业,但是遇到j访问Servlet的问题(如下图),

尝试了很多,找了很多,但是都不行,现在请论坛上的大神帮忙看看,这个要怎么解决啊?谢谢各位了先!Eclipse里Servlet在这里(如下图)

而调用Servlet的网页是left.html,我的web.xml是这样设置的(如下图):

Ps:建立动态网站的时候设置的上下文是:
...全文
29697 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2014-06-16
  • 打赏
  • 举报
回复
另外,从你贴的错误来看,不是超时,而是启动失败。检查web.xml Servlet mapping specifies an unknown servlet name Photo 你有一个
<servlet-mapping>
  <url-pattern>.....</url-pattern>
  <servlet-name>Photo<servlet-name>
</servlet-mapping>
这里出错,你没有配置任何一个叫做
<servlet>
  <servlet-name>Photo</servlet-name>
 ...
shine333 2014-06-16
  • 打赏
  • 举报
回复
不是,是eclipse的tomcat 在Servers里面(如果没有这个View,可以Window > Show View > Other里面找) 双击你的Tomcat,会弹出设置,其中大部分都是对应你启动的那个tomcat实例的server.xml配置(非tomcat/conf/server.xml,默认没用那个,需要手工切换),里面有个timeouts。这个里面,默认启动超时时间45秒。
卑鄙的臭臭 2014-06-16
  • 打赏
  • 举报
回复
现在提示的错误是:
六月 16, 2014 9:44:00 上午 org.apache.catalina.core.AprLifecycleListener init
信息: Loaded APR based Apache Tomcat Native library 1.1.24 using APR version 1.4.6.
六月 16, 2014 9:44:00 上午 org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
六月 16, 2014 9:44:00 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:HelloWorld' did not find a matching property.
六月 16, 2014 9:44:00 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:D_HelloWorld' did not find a matching property.
六月 16, 2014 9:44:00 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Little_Practise' did not find a matching property.
六月 16, 2014 9:44:00 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:XianDaiJiaoYuJiShu' did not find a matching property.
六月 16, 2014 9:44:00 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:blog' did not find a matching property.
六月 16, 2014 9:44:00 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:blog_EX' did not find a matching property.
六月 16, 2014 9:44:00 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:123' did not find a matching property.
六月 16, 2014 9:44:01 上午 org.apache.catalina.core.AprLifecycleListener initializeSSL
信息: OpenSSL successfully initialized (OpenSSL 1.0.1c 10 May 2012)
六月 16, 2014 9:44:01 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-apr-8080"]
六月 16, 2014 9:44:01 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-apr-8009"]
六月 16, 2014 9:44:01 上午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1367 ms
六月 16, 2014 9:44:01 上午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
六月 16, 2014 9:44:01 上午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.33
六月 16, 2014 9:44:02 上午 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(G:\大三课件\大三:下\Java的Web开发\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\D_HelloWorld\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
六月 16, 2014 9:44:02 上午 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(G:\大三课件\大三:下\Java的Web开发\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\blog\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
六月 16, 2014 9:44:02 上午 org.apache.catalina.core.ContainerBase startInternal
严重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/blog]]
	at java.util.concurrent.FutureTask.report(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/blog]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	... 6 more
Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name Photo
	at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3213)
	at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3192)
	at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1304)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1352)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 6 more

六月 16, 2014 9:44:02 上午 org.apache.catalina.core.ContainerBase startInternal
严重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at java.util.concurrent.FutureTask.report(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:684)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:451)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 6 more

六月 16, 2014 9:44:02 上午 org.apache.catalina.startup.Catalina start
严重: Catalina.start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:684)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:451)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 11 more

六月 16, 2014 9:44:02 上午 org.apache.catalina.startup.Catalina start
信息: Server startup in 804 ms
卑鄙的臭臭 2014-06-16
  • 打赏
  • 举报
回复
引用 15 楼 shine333 的回复:
你项目启动45秒还没完成所有init操作。你看看是否有什么问题。如果没什么特殊的,看看是否调大tomcat的启动时间。
是在tomcat的配置文件server.xml里面调大时间么?
shine333 2014-06-16
  • 打赏
  • 举报
回复
你项目启动45秒还没完成所有init操作。你看看是否有什么问题。如果没什么特殊的,看看是否调大tomcat的启动时间。
卑鄙的臭臭 2014-06-16
  • 打赏
  • 举报
回复
可是现在不知道怎么回事服务器开启不了了……

正在一点点的解决问题……
lodamemory 2014-06-16
  • 打赏
  • 举报
回复
引用 3 楼 hangniy11 的回复:
[quote=引用 2 楼 Pa_Java 的回复:] 错误很明显啊,找不到/blog/blog/servlet/article,按你的配置是在/blog/servlet/article厦门,所以访问的时候应该是

<a href = "../servlet/article?action=typeSelect" target = "main">浏览</a>
嗯嗯 我像你说的改了,然后是这个问题(如下图): 看不太懂…… [/quote] 这个错就是代码里面500的错,第一个是没找到action404的错,500的时候证明你已经在servlet里面了,你打个断点就知道到底哪一行报错了
卑鄙的臭臭 2014-06-16
  • 打赏
  • 举报
回复
引用 8 楼 u013471393 的回复:
是不是配置文件出错的?<servlet-class>com.blog.servlet.ArticleServlet<servlet-class>
我建立的动态网页有上下文:blog,不应该是<servlet-class>blog.com.blog.servlet.ArticleServlet<servlet-class>么?
卑鄙的臭臭 2014-06-16
  • 打赏
  • 举报
回复
引用 9 楼 shine333 的回复:
严重: Parse Fatal Error at line 50 column 3: 元素类型 "servlet" 必须由匹配的结束标记 "</servlet>" 终止。 org.xml.sax.SAXParseException; systemId: jndi:/localhost/blog/WEB-INF/web.xml; lineNumber: 50; columnNumber: 3; 元素类型 "servlet" 必须由匹配的结束标记 "</servlet>" 终止。
额 这个多余的<servlet>我忘记删了……谢谢指正!老师没有交过xml,只是讲了要配置web.xml里面的<servlet>标签和<servlet-mapping>标签
shine333 2014-06-16
  • 打赏
  • 举报
回复
你们老师不会连xml都没教过吧
shine333 2014-06-16
  • 打赏
  • 举报
回复
严重: Parse Fatal Error at line 50 column 3: 元素类型 "servlet" 必须由匹配的结束标记 "</servlet>" 终止。 org.xml.sax.SAXParseException; systemId: jndi:/localhost/blog/WEB-INF/web.xml; lineNumber: 50; columnNumber: 3; 元素类型 "servlet" 必须由匹配的结束标记 "</servlet>" 终止。
菜鸟好玩吗 2014-06-16
  • 打赏
  • 举报
回复
是不是配置文件出错的?<servlet-class>com.blog.servlet.ArticleServlet<servlet-class>
卑鄙的臭臭 2014-06-16
  • 打赏
  • 举报
回复
引用 19 楼 shine333 的回复:
另外,从你贴的错误来看,不是超时,而是启动失败。检查web.xml Servlet mapping specifies an unknown servlet name Photo 你有一个
<servlet-mapping>
  <url-pattern>.....</url-pattern>
  <servlet-name>Photo<servlet-name>
</servlet-mapping>
这里出错,你没有配置任何一个叫做
<servlet>
  <servlet-name>Photo</servlet-name>
 ...
嗯嗯 这个里面我写错了一个photo名字(多加了一个s)但是现在呢又回到了500错误了…… http://bbs.csdn.net/topics/390812557?page=1#post-397578226这里是问题的描述……
卑鄙的臭臭 2014-06-15
  • 打赏
  • 举报
回复
额 不知道为啥,右键 runas 用不了了 重启服务器出现这样的错误…………
六月 15, 2014 11:35:25 下午 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: F:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;F:/Program Files/Java/jdk1.7.0_45/bin/../jre/bin/client;F:/Program Files/Java/jdk1.7.0_45/bin/../jre/bin;F:/Program Files/Java/jdk1.7.0_45/bin/../jre/lib/i386;F:\Program Files\Java\jdk1.7.0_45\bin;F:\tecentWeixin\androidsdkwin\tools;C:\php-5.2.13-Win32;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32\;C:\Program Files\AMD APP\bin\x86;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Intel\OpenCL SDK\2.0\bin\x86;c:\Program Files\Common Files\Ulead Systems\MPEG;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;F:\Program Files\Microsoft SQL Server\100\Tools\Binn\;F:\Program Files\Microsoft SQL Server\100\DTS\Binn\;F:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\Program Files\Windows Live\Shared;F:\Program Files\MATLAB\R2012a\runtime\win32;F:\Program Files\MATLAB\R2012a\bin;F:\Program Files\MATLAB\R2011b\runtime\win32;F:\Program Files\MATLAB\R2011b\bin;F:\各种软件\各种  系统  软件(编程类)\Javaweb软件包\eclipse;;.
六月 15, 2014 11:35:25 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:HelloWorld' did not find a matching property.
六月 15, 2014 11:35:25 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:D_HelloWorld' did not find a matching property.
六月 15, 2014 11:35:25 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Little_Practise' did not find a matching property.
六月 15, 2014 11:35:25 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:XianDaiJiaoYuJiShu' did not find a matching property.
六月 15, 2014 11:35:25 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:blog' did not find a matching property.
六月 15, 2014 11:35:25 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:blog_EX' did not find a matching property.
六月 15, 2014 11:35:25 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:123' did not find a matching property.
六月 15, 2014 11:35:25 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
六月 15, 2014 11:35:25 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8009"]
六月 15, 2014 11:35:25 下午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 576 ms
六月 15, 2014 11:35:25 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
六月 15, 2014 11:35:25 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.33
六月 15, 2014 11:35:26 下午 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(G:\大三课件\大三:下\Java的Web开发\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\D_HelloWorld\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
六月 15, 2014 11:35:26 下午 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(G:\大三课件\大三:下\Java的Web开发\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\blog\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
六月 15, 2014 11:35:26 下午 org.apache.tomcat.util.digester.Digester fatalError
严重: Parse Fatal Error at line 50 column 3: 元素类型 "servlet" 必须由匹配的结束标记 "</servlet>" 终止。
org.xml.sax.SAXParseException; systemId: jndi:/localhost/blog/WEB-INF/web.xml; lineNumber: 50; columnNumber: 3; 元素类型 "servlet" 必须由匹配的结束标记 "</servlet>" 终止。
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537)
	at org.apache.catalina.startup.ContextConfig.parseWebXml(ContextConfig.java:1878)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1259)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)


卑鄙的臭臭 2014-06-15
  • 打赏
  • 举报
回复

	/**
	 * @功能 从数据表中获取某类别下的所有文章 
	 */
	public void selectArticle(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {		
		ArticleDao articleDao = new ArticleDao();
		String strId=request.getParameter("typeId");		
		if(strId==null||strId.equals(""))
			strId="-1";
		int typeId=Integer.parseInt(strId);
		List articleList=articleDao.queryArticle(typeId,"all");
		
		request.setAttribute("articleList",articleList);
		request.setAttribute("articleListSize",new Integer(articleList.size()));
		RequestDispatcher rd=request.getRequestDispatcher("/front/article/ArticleList.jsp");
		rd.forward(request,response);
	}
	
	
	
	/**
	 * @功能 后台-增加文章类别 
	 */
	public void addArticleType(HttpServletRequest request,	HttpServletResponse response) throws ServletException, IOException {
		String messages = "";
		String href="";
		String forward="";	
		
		ArticleTypeBean typeBean = new ArticleTypeBean();
		typeBean.setTypeName(Common.toChinese(request.getParameter("typeName")));
		typeBean.setTypeInfo(Common.toChinese(request.getParameter("typeInfo")));
		
		ArticleTypeDao articleTypeDao = new ArticleTypeDao();
		boolean mark=articleTypeDao.operationArticleType("add", typeBean);
		if(mark) {
			messages+="<li>添加文章类别成功!</li>";
			href="<a href='/Blog/admin/article/ArticleTypeAdd.jsp'>[继续添加文章类别]</a>";
			forward="/admin/success.jsp";
			
		}
		else {
			messages+="<li>添加文章类别失败!</li>";
			href="<a href='javascript:window.history.go(-1)'>[返回]</a>";
			forward="/admin/error.jsp";
		}
		request.setAttribute("messages",messages);
		request.setAttribute("href",href);
		
		RequestDispatcher rd=request.getRequestDispatcher(forward);
		rd.forward(request,response);		
	}
	
	
	
	/**
	 * @功能 阅读文章
	 * @实现 1.增加文章阅读次数<br>2.获取指定文章信息<br>3.获取对该文章的所有评论
	 */
	public void readArticle(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
		HttpSession session=request.getSession();
		ArticleBean articleBean = new ArticleBean();
		ArticleDao articleDao = new ArticleDao();	
		ReviewDao reviewDao=new ReviewDao();
		
		String strId=request.getParameter("id");
		int id=Common.strToint(strId);		
		articleBean.setId(id);
		//累加阅读次数
		articleDao.operationArticle("readTimes", articleBean);
		//查询指定文章的详细内容
		articleBean=articleDao.queryArticleById(id);	
		//保存articleBean到request对象中
		session.setAttribute("readSingle", articleBean);					
		//获取文章评论
		List reviewlist=reviewDao.queryReview(id);
		session.setAttribute("reviewlist",reviewlist);
		request.setAttribute("reviewlistSize", new Integer(reviewlist.size()));
		RequestDispatcher rd = request.getRequestDispatcher("/front/article/ArticleSingle.jsp");
		rd.forward(request, response);
	}
	
	
	
/**
 * @功能 添加文章评论 
 */
public void addFollow(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
	int id=Integer.parseInt(request.getParameter("articleId"));
	String author=Common.toChinese(request.getParameter("reAuthor"));
	String content=Common.toChinese(request.getParameter("reContent"));
	String today=Common.changeTime(new Date());
	if(author==null||author.equals(""))
		author="匿名好友";		
	
	ReviewBean reviewBean = new ReviewBean();		
	reviewBean.setArticleId(id);		
	reviewBean.setReAuthor(author);
	reviewBean.setReContent(content);
	reviewBean.setReSdTime(today);
	
	ReviewDao reviewDao = new ReviewDao();
	String messages="";
	String forward="";
	boolean mark=reviewDao.operationReview("add",reviewBean);
	if (mark) {
		forward="/front/article/success.jsp";
		messages="<li>发表评论成功!</li>";
		
	} else {
		forward="/front/article/error.jsp";
		messages="<li>发表评论失败!</li>";
	}
	request.setAttribute("messages",messages);
	RequestDispatcher rd=request.getRequestDispatcher(forward);
	rd.forward(request,response);	
}
	
	
	
	
	/**
	 * @功能 后台-文章类别浏览功能 
	 */
	public void selectArticleType(HttpServletRequest request,	HttpServletResponse response) throws ServletException, IOException {
		ArticleTypeDao typeDao=new ArticleTypeDao();
		List typelist=typeDao.queryTypeList();
		request.setAttribute("typelist",typelist);
		RequestDispatcher rd=request.getRequestDispatcher("/admin/article/ArticleTypeList.jsp");
		rd.forward(request,response);		
	}
	
	
	
	
	/**
	 * @功能 后台-修改文章类别 
	 */
	public void modifyArticleType(HttpServletRequest request,	HttpServletResponse response) throws ServletException, IOException {
		RequestDispatcher rd=null;
		ArticleTypeBean typeBean=null;
		ArticleTypeDao typeDao=new ArticleTypeDao();		
		
		String type=request.getParameter("type");
		if(type==null)
			type="";
		if(!type.equals("doModify")){			
			int typeId=Common.strToint(request.getParameter("typeId"));
			typeBean=typeDao.queryTypeSingle(typeId);
			request.setAttribute("typeSingle",typeBean);
			rd=request.getRequestDispatcher("/admin/article/ArticleTypeModify.jsp");
			rd.forward(request,response);
		}
		else{
			String messages="";
			String href="";
			String forward="";
			
			typeBean = new ArticleTypeBean();
			typeBean.setId(Common.strToint(request.getParameter("typeId")));
			typeBean.setTypeName(Common.toChinese(request.getParameter("typeName")));
			typeBean.setTypeInfo(Common.toChinese(request.getParameter("typeInfo")));			
			
			boolean mark=typeDao.operationArticleType("modify",typeBean);
			if (mark) {					
				messages="<li>修改类别成功!</li>";
				href="<a href='ArticleServlet?action=typeSelect'>[继续修改其他类别]</a>";
				forward="/admin/success.jsp";
				
			} else {
				messages="<li>修改失败!</li>";
				href="<a href='javascript:window.history.go(-1)>[返回]</a>";
				forward="/admin/error.jsp";
			}
			request.setAttribute("messages",messages);
			request.setAttribute("href",href);
			
			rd=request.getRequestDispatcher(forward);
			rd.forward(request,response);			
		}
	}
	
	
	
	/**
	 * @功能 后台-删除文章类别
	 */
	public void deleteArticleType(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
		ArticleTypeDao typeDao = new ArticleTypeDao();
		ArticleTypeBean typeBean = new ArticleTypeBean();

		String messages="";
		String href="";
		String forward="";
		
		typeBean.setId(Common.strToint(request.getParameter("typeId")));		
		boolean flag=typeDao.operationArticleType("delete",typeBean);		
		if (flag) {			
			messages+="<li>删除类别成功!</li>";
			href="<a href='/Blog/ArticleServlet?action=typeSelect'>[继续删除其他类别]</a>";
			forward="/admin/success.jsp";
		
		} else {
			messages+="<li>删除类别失败!</li>";
			href="<a href='javascript:window.history.go(-1)'>[返回]</a>";
			forward="/admin/error.jsp";
		}
		request.setAttribute("messages",messages);
		request.setAttribute("href",href);
		RequestDispatcher rd = request.getRequestDispatcher(forward);
		rd.forward(request, response);
	}	
	
	
	
	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doGet(request, response);
	}

}
这是另一部分
卑鄙的臭臭 2014-06-15
  • 打赏
  • 举报
回复
引用 4 楼 Pa_Java 的回复:
没有ArticleServlet这个类,无法判断,把代码粘出来吧,错误说的是初始化的失败
package com.blog.servlet;

import java.io.IOException;
import java.util.Date;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.blog.common.Common;
import com.blog.dao.ArticleDao;
import com.blog.dao.ArticleTypeDao;
import com.blog.dao.ReviewDao;
import com.blog.entity.ArticleBean;
import com.blog.entity.ArticleTypeBean;
import com.blog.entity.ReviewBean;

public class ArticleServlet extends HttpServlet {

	/**
	 * The doGet method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to get.
	 * 
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//获取Servlet中将执行的操作
		String action = request.getParameter("action");
		if(action==null)			
			action="";
		
	    if (action.equals("select"))
			this.selectArticle(request, response);		 		//获取某类别下所有文章
	    
		if (action.equals("adminSelectList"))
			this.adminSelectList(request,response);            //后台文章管理中的文章浏览功能
		
		/*if (action.equals("adminSelectSingle"))
			this.adminSelectSingle(request,response);*/
		
		if (action.equals("add"))
			this.addArticle(request, response);						//增加文章
		
		if (action.equals("modify"))
			this.modifyArticle(request, response);					//修改文章
		
		if (action.equals("delete"))
			this.deleteArticle(request, response);					//删除文章
		
		if (action.equals("read"))
			this.readArticle(request, response);					//阅读文章
		
		if (action.equals("followAdd"))
			this.addFollow(request, response);					    //发表文章回复
		
		if (action.equals("typeAdd"))
			this.addArticleType(request, response);					//增加文章类别
		
		if (action.equals("typeSelect"))
			this.selectArticleType(request, response);				//查看文章类别
		
		if (action.equals("typeModify"))
			this.modifyArticleType(request, response);				//修改文章类别
		
		if (action.equals("typeDelete"))
			this.deleteArticleType(request, response);				//删除文章类别
	}

	/**
	 * The doPost method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to post.
	 * 
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	
	/**
	 * @功能 后台-增加文章
	 */
	public void addArticle(HttpServletRequest request,	HttpServletResponse response) throws ServletException, IOException {
		String messages = "";
		String href="";
		String forward="";		
		
		//对表单输入的数据进行乱码处理
		ArticleBean articleBean = new ArticleBean();
		articleBean.setTypeId(Common.strToint(request.getParameter("typeId")));
		articleBean.setTitle(Common.toChinese(request.getParameter("title")));
		articleBean.setContent(Common.changeHTML(Common.toChinese(request.getParameter("content"))));
		articleBean.setSdTime(Common.changeTime(new Date()));
		articleBean.setCreate(Common.toChinese(request.getParameter("create")));
		articleBean.setInfo(Common.toChinese(request.getParameter("info")));
		articleBean.setCount(0);
		
		ArticleDao articleDao = new ArticleDao();
		boolean flag=articleDao.operationArticle("add", articleBean);
		if(flag) {
			messages = "<li>发表文章成功!</li>";
			href="<a href='/Blog/admin/article/AddArticle.jsp'>[继续发表]</a>";
			forward="/admin/success.jsp";
		}
		else{
			messages="<li>发表文章失败!</li>";
			href="<a href='javascript:window.history.go(-1)'>[返回]</a>";
			forward="/admin/error.jsp";
		}			
		request.setAttribute("messages",messages);
		request.setAttribute("href",href);
		
		RequestDispatcher rd = request.getRequestDispatcher(forward);
		rd.forward(request, response);	
	}
	
	
	/**
	 * @功能 后台-删除文章 
	 */
	public void deleteArticle(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
		ArticleDao articleDao = new ArticleDao();
		ArticleBean articleBean = new ArticleBean();

		String messages="";
		String href="";
		String forward="";
		articleBean.setId(Common.strToint(request.getParameter("id")));		
		boolean flag=articleDao.operationArticle("delete", articleBean);		
		if (flag) {
			String typeId=request.getParameter("typeId");
			messages+="<li>删除文章成功!</li>";
			href="<a href='/Blog/ArticleServlet?action=adminSelectList&typeId="+typeId+"'>[继续删除其他文章]</a>";
			forward="/admin/success.jsp";
		
		} else {
			messages+="<li>删除文章失败!</li>";
			href="<a href='javascript:window.history.go(-1)'>[返回]</a>";
			forward="/admin/error.jsp";
		}
		request.setAttribute("messages",messages);
		request.setAttribute("href",href);
		RequestDispatcher rd = request.getRequestDispatcher(forward);
		rd.forward(request, response);
	}
	
	
	/**
	 * @功能 修改文章
	 */
	public void modifyArticle(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {		
		HttpSession session=request.getSession();
		RequestDispatcher rd=null;
		ArticleDao articleDao=new ArticleDao();		
		String type=request.getParameter("type");
		if(type==null)
			type="";
		if(!type.equals("doModify")){			
			int id=Common.strToint(request.getParameter("id"));
			ArticleBean articleBean=articleDao.queryArticleById(id);			
			request.setAttribute("modifySingle",articleBean);
			rd=request.getRequestDispatcher("/admin/article/ArticleModify.jsp");
			rd.forward(request,response);
		}
		else{
			String messages="";
			String href="";
			String forward="";		
			
			ArticleBean articleBean = new ArticleBean();
			articleBean.setId(Common.strToint(request.getParameter("id")));
			articleBean.setTypeId(Integer.parseInt(request.getParameter("typeId")));
			articleBean.setTitle(Common.toChinese(request.getParameter("title")));
			articleBean.setCreate(Common.toChinese(request.getParameter("create")));
			articleBean.setInfo(Common.toChinese(request.getParameter("info")));
			articleBean.setContent(Common.toChinese(request.getParameter("content")));
			
			boolean flag=articleDao.operationArticle("modify",articleBean);
			if (flag) {
				messages="<li>修改成功!</li>";
				href="<a href='/Blog/ArticleServlet?action=adminSelectList&typeId="+session.getAttribute("showTypeId")+"'>[继续修改其他文章]</a>";
				forward="/admin/success.jsp";					
			} else {
				messages="<li>修改失败!</li>";
				href="<a href='javascript:window.history.go(-1)'>[返回]</a>";
				forward="/admin/error.jsp";
			}
			request.setAttribute("messages",messages);
			request.setAttribute("href",href);
			
			rd=request.getRequestDispatcher(forward);
			rd.forward(request,response);			
		}		
	}
	
	/**
	 * @功能 实现后台文章管理中的文章浏览功能 
	 */
	public void adminSelectList(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {		
		HttpSession session=request.getSession();
		ArticleDao articleDao = new ArticleDao();
		String strId=request.getParameter("typeId");
		if(strId==null||strId.equals(""))
			strId="-1";
		int typeId=Integer.parseInt(strId);
		session.setAttribute("showTypeId",new Integer(typeId));
		List articleList=articleDao.queryArticle(typeId,"all");
		request.setAttribute("articleList",articleList);
		RequestDispatcher rd=request.getRequestDispatcher("/admin/article/ArticleList.jsp");
		rd.forward(request,response);
	}
	
	
这个是ArticleServle.javat的部分代码
aubergines 2014-06-15
  • 打赏
  • 举报
回复
没有ArticleServlet这个类,无法判断,把代码粘出来吧,错误说的是初始化的失败
卑鄙的臭臭 2014-06-15
  • 打赏
  • 举报
回复
引用 2 楼 Pa_Java 的回复:
错误很明显啊,找不到/blog/blog/servlet/article,按你的配置是在/blog/servlet/article厦门,所以访问的时候应该是

<a href = "../servlet/article?action=typeSelect" target = "main">浏览</a>

嗯嗯 我像你说的改了,然后是这个问题(如下图):

看不太懂……
aubergines 2014-06-15
  • 打赏
  • 举报
回复
错误很明显啊,找不到/blog/blog/servlet/article,按你的配置是在/blog/servlet/article厦门,所以访问的时候应该是

<a href = "../servlet/article?action=typeSelect" target = "main">浏览</a>
卑鄙的臭臭 2014-06-15
  • 打赏
  • 举报
回复
哦哦,还有,访问代码是这样的:

81,118

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧