[转载]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应用访问 

posted @ 2013-05-23 12:06 眉间尺之魂 阅读(...) 评论(...) 编辑 收藏