Tomcat,Jstl,Servlet-api,jsp-api,standard各版本支持

2024-06-17 05:32

本文主要是介绍Tomcat,Jstl,Servlet-api,jsp-api,standard各版本支持,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言


最近在整合SSM框架,然后引入了SiteMesh2.4布局框架,然后就引出了一系列问题,先是jstl版本报错,然后就是运行项目JSP页面报错等等这一些问题都是由于Tomcat,Jstl,Servlet-api,jsp-api,standard这几者之间的关系导致的。我在项目中引用了jstl1.2,servlet-api3.1.0,jsp-api2.2,standard1.1.2 mavne依赖如下:

<!-- Servlet api -->
<dependency><groupId>javax.servlet</groupId><artifactId>3.1.0</artifactId><version></version><scope>provided</scope>
</dependency>
<dependency>  <groupId>javax.servlet.jsp</groupId>  <artifactId>jsp-api</artifactId>  <version>2.2</version>  <scope>provided</scope>  
</dependency>
<dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>7.0</version>
</dependency>			
<!-- JSTL -->
<dependency>  <groupId>javax.servlet</groupId>  <artifactId>jstl</artifactId><type>jar</type><version>1.2</version>  
</dependency>
<!-- standard -->
<dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><type>jar</type><version>1.1.2</version>
</dependency>
<dependency>  <groupId>org.glassfish.web</groupId>  <artifactId>jstl-impl</artifactId>  <version>1.2</version>  <exclusions>  <exclusion>  <artifactId>servlet-api</artifactId>  <groupId>javax.servlet</groupId>  </exclusion>  <exclusion>  <artifactId>jsp-api</artifactId>  <groupId>javax.servlet.jsp</groupId>  </exclusion>  <exclusion>  <artifactId>jstl-api</artifactId>  <groupId>javax.servlet.jsp.jstl</groupId>  </exclusion>  </exclusions>  
</dependency>  


Servlet版本用的是3.0,web.xml中的scheme定义为:

<web-app   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" version="3.0">  


由于JSTL1.0和JSTL1.1的声明语句不一样:

JSTL1.0的使用方法为:
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>JSTL1.1的使用方法为:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>JSTL1.2的使用方法为
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

我在JSP页面中引用的就是jstl1.1的语法,然后放到Tomcat8中去运行,一运行就报错:

org.apache.jasper.JasperException: /register.jsp (line: 10, column: 1) The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application


最后发现把语法改成1.0的就能运行,说明Tomcat8不支持1.1,然后发现Tomcat8/lib目录下并没有jstl1.1的jar包,复制一个到该目录下就行了。


如果说是报下面这种错的话,基本上就是由于版本不一致所导致的:

org.apache.jasper.JasperException:
java.lang.RuntimeException: org.apache.jasper.JasperException:


有时候要看EL表达式是否支持,默认开启支持EL表达式支持有:


1、servlet2.4
2、J2EE6


默认不支持EL表达式需要进行如下2种配置中的其一来开启EL:


1、在JSP中加入:

<%@ page isELIgnored="false"%>

2、在web.xm中加入:

<jsp-config>     <jsp-property-group>     <url-pattern>*.jsp</url-pattern>     <el-ignored>false</el-ignored>     </jsp-property-group>     
</jsp-config>


二、对应关系




Servlet - - Jsp - - EL表达式 - - Tomcat一览表




注:


1,来源自Tomcat官网:http://tomcat.apache.org/whichversion.html


JSTL各个版本与Jsp及Servlet版本之间的依赖关系:




注:


1,来源自百度百科:http://baike.baidu.com/view/73527.htm 

这篇关于Tomcat,Jstl,Servlet-api,jsp-api,standard各版本支持的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1068597

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

一分钟带你上手Python调用DeepSeek的API

《一分钟带你上手Python调用DeepSeek的API》最近DeepSeek非常火,作为一枚对前言技术非常关注的程序员来说,自然都想对接DeepSeek的API来体验一把,下面小编就来为大家介绍一下... 目录前言免费体验API-Key申请首次调用API基本概念最小单元推理模型智能体自定义界面总结前言最

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

java中不同版本JSONObject区别小结

《java中不同版本JSONObject区别小结》本文主要介绍了java中不同版本JSONObject区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1. FastjsON2. Jackson3. Gson4. org.json6. 总结在Jav

通过prometheus监控Tomcat运行状态的操作流程

《通过prometheus监控Tomcat运行状态的操作流程》文章介绍了如何安装和配置Tomcat,并使用Prometheus和TomcatExporter来监控Tomcat的运行状态,文章详细讲解了... 目录Tomcat安装配置以及prometheus监控Tomcat一. 安装并配置tomcat1、安装

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep