[リストへもどる]
一括表示
タイトルJSTLで脆弱性をカバー
記事No7009
投稿日: 2023/11/13(Mon) 12:04
投稿者hieda
以前にも、同じ質問をされている方がいらっしゃったのですが、私も同じ箇所で
HTTPステータス 500 – Internal Server Error
が発生します。

よろしくお願いします。

タイトルRe: JSTLで脆弱性をカバー
記事No7010
投稿日: 2023/11/13(Mon) 18:38
投稿者サーチマン佐藤
すみません、JSTLを使っている講習はいくつかあるのですが、
何の講習のどの場面でしょうか?

タイトルRe^2: JSTLで脆弱性をカバー
記事No7011
投稿日: 2023/11/14(Tue) 09:50
投稿者hieda
> すみません、JSTLを使っている講習はいくつかあるのですが、
> 何の講習のどの場面でしょうか?

説明不足でした。すみません。

JSPとサーブレット基礎講習/EL式とJSTL/JSTLで脆弱性をカバー
の箇所のコードをコピーして、URLを叩くと
HTTPステータス 500 – Internal Server Error
が発生します。

タイトルRe^3: JSTLで脆弱性をカバー
記事No7012
投稿日: 2023/11/14(Tue) 10:07
投稿者サーチマン佐藤
講習件名、承知しました。

500エラーが出て、ブラウザかEclipseに、
何かメッセージが出ていると思います。

そのメッセージもお願いいたします。

タイトルRe^4: JSTLで脆弱性をカバー
記事No7013
投稿日: 2023/11/14(Tue) 13:16
投稿者hieda
> 講習件名、承知しました。
>
> 500エラーが出て、ブラウザかEclipseに、
> 何かメッセージが出ていると思います。
>
> そのメッセージもお願いいたします。

エラー文を見る感じクラスが見つかってないと思うのですが、そのクラスがどの箇所なのかがわかりません。

タイプ 例外報告

メッセージ java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator

例外

jakarta.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

根本原因

java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator
java.base/java.lang.ClassLoader.defineClass1(Native Method)
java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2484)
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:865)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1401)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1245)
java.base/java.lang.ClassLoader.defineClass1(Native Method)
java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2484)
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:865)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1401)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1245)
org.apache.jasper.compiler.TagLibraryInfoImpl.createValidator(TagLibraryInfoImpl.java:355)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:195)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:429)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:487)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1444)
org.apache.jasper.compiler.Parser.parse(Parser.java:138)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:245)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:106)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:211)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:396)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:396)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

注意 原因のすべてのスタックトレースは、サーバのログに記録されています。

Apache Tomcat/10.1.13

タイトルRe^5: JSTLで脆弱性をカバー
記事No7014
投稿日: 2023/11/14(Tue) 13:23
投稿者サーチマン佐藤
EclipseのlibフォルダにJSTLのライブラリが入ってない気がします。

タイトルRe^6: JSTLで脆弱性をカバー
記事No7015
投稿日: 2023/11/14(Tue) 14:57
投稿者hieda
> EclipseのlibフォルダにJSTLのライブラリが入ってない気がします。

jsp_servlet/src/main/webapp/WEB-INF/lib
 
の中に

taglibs-standard-compat-1.2.5.jar
taglibs-standard-impl-1.2.5.jar
taglibs-standard-jstlel-1.2.5.jar
taglibs-standard-spec-1.2.5.jar

が入っています。

タイトルRe^7: JSTLで脆弱性をカバー
記事No7016
投稿日: 2023/11/14(Tue) 15:03
投稿者サーチマン佐藤
そうですか。
では、JSPの先頭で読み込んでいますか?

タイトルRe^8: JSTLで脆弱性をカバー
記事No7017
投稿日: 2023/11/14(Tue) 15:30
投稿者hieda
> そうですか。
> では、JSPの先頭で読み込んでいますか?

タグリブは3行目に打ち込んでいます。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL式とJSTL(カスタムタグ)</title>
</head>
<body>
<h1>EL式とJSTL(カスタムタグ)</h1>

<p>ID(EL式のみ):${param.id}</p>
<p>ID(JSTL使用):<c:out value="${param.id}" /></p>
</body>
</html>

タイトルRe^9: JSTLで脆弱性をカバー
記事No7018
投稿日: 2023/11/14(Tue) 17:35
投稿者サーチマン佐藤
あっ、すみません、
もしかして、tomcat10を使っていますか?

タイトルRe^10: JSTLで脆弱性をカバー
記事No7019
投稿日: 2023/11/15(Wed) 09:17
投稿者hieda
> あっ、すみません、
> もしかして、tomcat10を使っていますか?

はい。
Tomcat10を使用しています。

タイトルRe^11: JSTLで脆弱性をカバー
記事No7020
投稿日: 2023/11/15(Wed) 17:27
投稿者サーチマン佐藤
原因は、それです。

できましたら、tomcat9で試して頂けませんか。
もしくは、以下からJSTLの最新版を以下からダウンロードして、
https://mvnrepository.com/artifact/jakarta.servlet.jsp.jstl/jakarta.servlet.jsp.jstl-api/2.0.0

JSPの読み込みを以下にすれば出来ると思います。
<%@ taglib prefix="c" uri="http://jakarta.apache.org/jsp/jstl/core"%>


ただ、tomcat9のほうがテキスト通りに進みますし、
Javaの学習には何ら支障ありますので、
tomcat9のサーバーをもう一つ設定することをおすすめです。

タイトルRe^12: JSTLで脆弱性をカバー
記事No7021
投稿日: 2023/11/16(Thu) 09:54
投稿者hieda
> 原因は、それです。
>
> できましたら、tomcat9で試して頂けませんか。
> もしくは、以下からJSTLの最新版を以下からダウンロードして、
> https://mvnrepository.com/artifact/jakarta.servlet.jsp.jstl/jakarta.servlet.jsp.jstl-api/2.0.0
>
> JSPの読み込みを以下にすれば出来ると思います。
> <%@ taglib prefix="c" uri="http://jakarta.apache.org/jsp/jstl/core"%>
>
>
> ただ、tomcat9のほうがテキスト通りに進みますし、
> Javaの学習には何ら支障ありますので、
> tomcat9のサーバーをもう一つ設定することをおすすめです。

tomcat9のサーバーを設定して起動したら、サイト通りに実行できました!

ありがとうございました!

タイトルRe^13: JSTLで脆弱性をカバー
記事No7022
投稿日: 2023/11/16(Thu) 18:07
投稿者サーチマン佐藤
よかったです。

ひとまず、それで学習して頂ければ。
tomcat10になって、読み込みだけ違いますが、
他の文法等々はほぼ変わらないですから。

私のほうでも、おりをみてtomcat10にしていこうと思います。
お疲れさまでした。