[转载]jstl标签库错误(jstl学习)
[转载]jstl标签库错误(jstl学习)
当初次使用JSTL时,虽然我们在jsp页面上已经加上了:
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
但是我们在启动服务器运行此jsp时,tomcat会提示下面的错误:
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
原因在哪呢?
后来经查阅相应的答案,又加上自己的实验,经过下面的配置可以解决上面的问题:
把jstl.jar, standard.jar 这两个文件移到Tomcat的 shared/lib 中
引入它们之后,重启tomcat就可以了.
我试着尝试把这两个文件放到工程目录下的lib下,在Tomcat的 shared/lib下把这两个文件去掉,最后还是出现原先的问题。
Share/lib 这个目录到底是做什么用的呢?
我们来看一下Tomcat下的运行脚本:
如果仔细研究一下tomcat的启动和关闭脚本,会发现startup.bat和shutdown.bat都执行同一个目录下的catalina.bat脚本。其实质是这样的:执行startup.bat脚本,相当于执行了catalina
start命令,执行shutdown.bat相当于执行了catalina stop命令。
commonlib,serverlib,sharedlib这三个目录相信大家都见过吧,但具体是干什么用的呢?
其中
serverlib下的jar文件只能被tomcat服务器访问。
sharedlib下的jar文件可以被所有的web应用访问,但不能被tomcat服务器访问。
commonlib目录下的jar文件可以被tomcat服务器和所有的web应用访问