HTTP状态 500 - 内部服务器错误

来源:2-1 JSTL介绍与下载

慕神0204222

2022-05-05 18:35:56

问题描述:

 异常报告

消息 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

描述 服务器遇到一个意外的情况,阻止它完成请求。

例外情况

org.apache.jasper.JasperException: 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]
	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:54)
	org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:294)
	org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:81)
	org.apache.jasper.compiler.TagLibraryInfoImpl.generateTldResourcePath(TagLibraryInfoImpl.java:251)
	org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:122)
	org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:435)
	org.apache.jasper.compiler.Parser.parseDirective(Parser.java:493)
	org.apache.jasper.compiler.Parser.parseElements(Parser.java:1450)
	org.apache.jasper.compiler.Parser.parse(Parser.java:144)
	org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
	org.apache.jasper.compiler.ParserController.parse(ParserController.java:105)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:202)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:374)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:350)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:597)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:383)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:331)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	com.hewen.servlet.JSTL.service(JSTL.java:25)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	

相关代码:

package com.hewen.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author : [ZhangHewen]
 * @version : [v1.0]
 * @className : JSTL
 * @description : [学习jstl表达式,先导入包]
 * @createTime : [2022/5/5 16:37]
 */
@WebServlet("/jstl01")
public class JSTL extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //设置两个属性,成绩和评级
        request.setAttribute("score", "78");
        request.setAttribute("grade","B");
        //请求转发
        request.getRequestDispatcher("/use_core.jsp").forward(request,response);
//        request.getRequestDispatcher("/index.jsp").forward(request,response);
    }
}

相关代码:

<%--
  Created by IntelliJ IDEA.
  User: ZhangHewen
  Date: 2022/5/5
  Time: 16:42
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--引入jstl的核心库--%>
<%@ taglib  uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
    <title>使用jstl的核心库</title>
</head>
<body>
<%--验证是否导入核心库--%>
<h1>${requestScope.score}</h1>
<%--使用c标签--%>
<c:if test="score>=60">
    <h2 style="color: chartreuse">恭喜您的成绩及格!</h2>
</c:if>
<c:if test="score<60">
    <h2 style="color: red">您的成绩不及格!再接再厉!</h2>
</c:if>
</body>
</html>

相关截图:

https://img.mukewang.com/climg/6273a84f0913a8db19201030.jpg


写回答

1回答

好帮手慕小脸

2022-05-06

同学你好,

1、为使的类名命名更加规范,建议同学将JSTL修改为Jstl

2、根据同学截图反馈,发现jstl相关的jar包在ide项目中有,但在tomcat发布的应用WEB-INF/lib下没有,这是工具发布项目的问题,这里需要同学复制lib到WEB-INF目录下

https://img.mukewang.com/climg/6274867a0989a25903470328.jpg

其次将如下位置处的原先的内容移除掉,重新进行jar包的添加

https://img.mukewang.com/climg/627486ce0920693810200363.jpg

https://img.mukewang.com/climg/62748703095ced0c06100610.jpghttps://img.mukewang.com/climg/6274872f0927540e03980153.jpg

(另一个jar包操作重复即可!)

3、在对应的jsp中获取值应使用${},修改代码如下所示:

https://img.mukewang.com/climg/627487a209bb669505600149.jpg

祝学习愉快~

1

0 学习 · 16556 问题

查看课程