会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132450个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 34051楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 34052楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 34053楼
Python 全系列/第一阶段:Python入门/面向对象 34056楼

老师我的项目出现了一个很奇怪的bug,当我跟老师一样添加c.tld文件之后再添加 taglib 指令标签

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>代码里面的forEach关键字出现异常的红色,此时启动Tomcat报错

image.png

报错信息如下:

image.png

D:\Tomcat\apache-tomcat-9.0.34-windows-x64\apache-tomcat-9.0.34\bin\catalina.bat run

[2020-10-15 09:50:43,165] Artifact mybatiswebdemoTest:war exploded: Waiting for server connection to start artifact deployment...

Using CATALINA_BASE:   "C:\Users\admin\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Tomcat_9_0_34_mybatiswebdemoTest"

Using CATALINA_HOME:   "D:\Tomcat\apache-tomcat-9.0.34-windows-x64\apache-tomcat-9.0.34"

Using CATALINA_TMPDIR: "D:\Tomcat\apache-tomcat-9.0.34-windows-x64\apache-tomcat-9.0.34\temp"

Using JRE_HOME:        "D:\Java\jdk-14.0.2_windows-x64_bin\jdk-14.0.2"

Using CLASSPATH:       "D:\Tomcat\apache-tomcat-9.0.34-windows-x64\apache-tomcat-9.0.34\bin\bootstrap.jar;D:\Tomcat\apache-tomcat-9.0.34-windows-x64\apache-tomcat-9.0.34\bin\tomcat-juli.jar"

NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED

15-Oct-2020 21:50:44.590 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本:     Apache Tomcat/9.0.34

15-Oct-2020 21:50:44.592 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建:            Apr 3 2020 12:02:52 UTC

15-Oct-2020 21:50:44.593 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号(:9.0.34.0

15-Oct-2020 21:50:44.594 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Windows 10

15-Oct-2020 21:50:44.594 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本:               10.0

15-Oct-2020 21:50:44.594 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构:                  amd64

15-Oct-2020 21:50:44.594 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量:         D:\Java\jdk-14.0.2_windows-x64_bin\jdk-14.0.2

15-Oct-2020 21:50:44.594 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 版本:              14.0.2+12-46

15-Oct-2020 21:50:44.594 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商:            Oracle Corporation

15-Oct-2020 21:50:44.595 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:[C:\Users\admin\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Tomcat_9_0_34_mybatiswebdemoTest]

15-Oct-2020 21:50:44.596 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         D:\Tomcat\apache-tomcat-9.0.34-windows-x64\apache-tomcat-9.0.34

15-Oct-2020 21:50:44.597 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[--add-opens=java.base/java.lang=ALL-UNNAMED]

15-Oct-2020 21:50:44.597 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[--add-opens=java.base/java.io=ALL-UNNAMED]

15-Oct-2020 21:50:44.598 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED]

15-Oct-2020 21:50:44.598 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Djava.util.logging.config.file=C:\Users\admin\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Tomcat_9_0_34_mybatiswebdemoTest\conf\logging.properties]

15-Oct-2020 21:50:44.598 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager]

15-Oct-2020 21:50:44.598 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Dcom.sun.management.jmxremote=]

15-Oct-2020 21:50:44.598 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Dcom.sun.management.jmxremote.port=1099]

15-Oct-2020 21:50:44.598 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Dcom.sun.management.jmxremote.ssl=false]

15-Oct-2020 21:50:44.598 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Dcom.sun.management.jmxremote.password.file=C:\Users\admin\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Tomcat_9_0_34_mybatiswebdemoTest\jmxremote.password]

15-Oct-2020 21:50:44.598 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Dcom.sun.management.jmxremote.access.file=C:\Users\admin\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Tomcat_9_0_34_mybatiswebdemoTest\jmxremote.access]

15-Oct-2020 21:50:44.599 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Djava.rmi.server.hostname=127.0.0.1]

15-Oct-2020 21:50:44.599 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Djdk.tls.ephemeralDHKeySize=2048]

15-Oct-2020 21:50:44.599 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Djava.protocol.handler.pkgs=org.apache.catalina.webresources]

15-Oct-2020 21:50:44.599 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Dignore.endorsed.dirs=]

15-Oct-2020 21:50:44.599 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Dcatalina.base=C:\Users\admin\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Tomcat_9_0_34_mybatiswebdemoTest]

15-Oct-2020 21:50:44.599 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Dcatalina.home=D:\Tomcat\apache-tomcat-9.0.34-windows-x64\apache-tomcat-9.0.34]

15-Oct-2020 21:50:44.600 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:[-Djava.io.tmpdir=D:\Tomcat\apache-tomcat-9.0.34-windows-x64\apache-tomcat-9.0.34\temp]

15-Oct-2020 21:50:44.600 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.23] using APR version [1.7.0].

15-Oct-2020 21:50:44.600 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

15-Oct-2020 21:50:44.601 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]

15-Oct-2020 21:50:44.610 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1c  28 May 2019]

15-Oct-2020 21:50:44.878 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"]

15-Oct-2020 21:50:44.970 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[726]毫秒内初始化

15-Oct-2020 21:50:45.031 信息 [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]

15-Oct-2020 21:50:45.031 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.34]

15-Oct-2020 21:50:45.470 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]

15-Oct-2020 21:50:45.489 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in [519] milliseconds

Connected to server

[2020-10-15 09:50:45,967] Artifact mybatiswebdemoTest:war exploded: Artifact is being deployed, please wait...

15-Oct-2020 21:50:47.175 信息 [RMI TCP Connection(5)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

[2020-10-15 09:50:47,196] Artifact mybatiswebdemoTest:war exploded: Artifact is deployed successfully

[2020-10-15 09:50:47,196] Artifact mybatiswebdemoTest:war exploded: Deploy took 1,229 milliseconds

<2020-10-15 21:50:48,065> DEBUG (LogFactory.java:105) [http-nio-8080-exec-1] (org.apache.ibatis.logging.LogFactory) - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.

<2020-10-15 21:50:48,081> DEBUG (VFS.java:116) [http-nio-8080-exec-1] (org.apache.ibatis.io.VFS) - Class not found: org.jboss.vfs.VFS

<2020-10-15 21:50:48,081> DEBUG (JBoss6VFS.java:149) [http-nio-8080-exec-1] (org.apache.ibatis.io.JBoss6VFS) - JBoss 6 VFS API is not available in this environment.

<2020-10-15 21:50:48,085> DEBUG (VFS.java:116) [http-nio-8080-exec-1] (org.apache.ibatis.io.VFS) - Class not found: org.jboss.vfs.VirtualFile

<2020-10-15 21:50:48,087> DEBUG (VFS.java:64) [http-nio-8080-exec-1] (org.apache.ibatis.io.VFS) - VFS implementation org.apache.ibatis.io.JBoss6VFS is not valid in this environment.

<2020-10-15 21:50:48,087> DEBUG (VFS.java:74) [http-nio-8080-exec-1] (org.apache.ibatis.io.VFS) - Using VFS adapter org.apache.ibatis.io.DefaultVFS

<2020-10-15 21:50:48,090> DEBUG (DefaultVFS.java:220) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Find JAR URL: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/pojo/

<2020-10-15 21:50:48,091> DEBUG (DefaultVFS.java:247) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Not a JAR: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/pojo/

<2020-10-15 21:50:48,128> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: Users.class

<2020-10-15 21:50:48,131> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: UsersExample.class

<2020-10-15 21:50:48,135> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: UsersExample$Criteria.class

<2020-10-15 21:50:48,139> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: UsersExample$Criterion.class

<2020-10-15 21:50:48,142> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: UsersExample$GeneratedCriteria.class

<2020-10-15 21:50:48,145> DEBUG (DefaultVFS.java:111) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Listing file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/pojo/

<2020-10-15 21:50:48,145> DEBUG (DefaultVFS.java:220) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Find JAR URL: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/pojo/Users.class

<2020-10-15 21:50:48,146> DEBUG (DefaultVFS.java:247) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Not a JAR: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/pojo/Users.class

<2020-10-15 21:50:48,148> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: 漱壕   : ?

<2020-10-15 21:50:48,150> DEBUG (DefaultVFS.java:220) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Find JAR URL: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/pojo/UsersExample.class

<2020-10-15 21:50:48,150> DEBUG (DefaultVFS.java:247) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Not a JAR: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/pojo/UsersExample.class

<2020-10-15 21:50:48,151> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: 漱壕   : O

<2020-10-15 21:50:48,153> DEBUG (DefaultVFS.java:220) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Find JAR URL: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/pojo/UsersExample$Criteria.class

<2020-10-15 21:50:48,153> DEBUG (DefaultVFS.java:247) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Not a JAR: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/pojo/UsersExample$Criteria.class

<2020-10-15 21:50:48,154> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: 漱壕   : ?

<2020-10-15 21:50:48,157> DEBUG (DefaultVFS.java:220) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Find JAR URL: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/pojo/UsersExample$Criterion.class

<2020-10-15 21:50:48,158> DEBUG (DefaultVFS.java:247) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Not a JAR: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/pojo/UsersExample$Criterion.class

<2020-10-15 21:50:48,159> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: 漱壕   : I       %com/bjsxt/pojo/UsersExample$Criterion  condition Ljava/lang/String;     

<2020-10-15 21:50:48,160> DEBUG (DefaultVFS.java:220) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Find JAR URL: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/pojo/UsersExample$GeneratedCriteria.class

<2020-10-15 21:50:48,161> DEBUG (DefaultVFS.java:247) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Not a JAR: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/pojo/UsersExample$GeneratedCriteria.class

<2020-10-15 21:50:48,162> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: 漱壕   : ?

<2020-10-15 21:50:48,163> DEBUG (ResolverUtil.java:288) [http-nio-8080-exec-1] (org.apache.ibatis.io.ResolverUtil) - Checking to see if class com.bjsxt.pojo.Users matches criteria [is assignable to Object]

<2020-10-15 21:50:48,163> DEBUG (ResolverUtil.java:288) [http-nio-8080-exec-1] (org.apache.ibatis.io.ResolverUtil) - Checking to see if class com.bjsxt.pojo.UsersExample matches criteria [is assignable to Object]

<2020-10-15 21:50:48,169> DEBUG (ResolverUtil.java:288) [http-nio-8080-exec-1] (org.apache.ibatis.io.ResolverUtil) - Checking to see if class com.bjsxt.pojo.UsersExample$Criteria matches criteria [is assignable to Object]

<2020-10-15 21:50:48,177> DEBUG (ResolverUtil.java:288) [http-nio-8080-exec-1] (org.apache.ibatis.io.ResolverUtil) - Checking to see if class com.bjsxt.pojo.UsersExample$Criterion matches criteria [is assignable to Object]

<2020-10-15 21:50:48,181> DEBUG (ResolverUtil.java:288) [http-nio-8080-exec-1] (org.apache.ibatis.io.ResolverUtil) - Checking to see if class com.bjsxt.pojo.UsersExample$GeneratedCriteria matches criteria [is assignable to Object]

<2020-10-15 21:50:48,305> DEBUG (PooledDataSource.java:363) [http-nio-8080-exec-1] (org.apache.ibatis.datasource.pooled.PooledDataSource) - PooledDataSource forcefully closed/removed all connections.

<2020-10-15 21:50:48,305> DEBUG (PooledDataSource.java:363) [http-nio-8080-exec-1] (org.apache.ibatis.datasource.pooled.PooledDataSource) - PooledDataSource forcefully closed/removed all connections.

<2020-10-15 21:50:48,305> DEBUG (PooledDataSource.java:363) [http-nio-8080-exec-1] (org.apache.ibatis.datasource.pooled.PooledDataSource) - PooledDataSource forcefully closed/removed all connections.

<2020-10-15 21:50:48,305> DEBUG (PooledDataSource.java:363) [http-nio-8080-exec-1] (org.apache.ibatis.datasource.pooled.PooledDataSource) - PooledDataSource forcefully closed/removed all connections.

<2020-10-15 21:50:48,315> DEBUG (DefaultVFS.java:220) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Find JAR URL: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/mapper/

<2020-10-15 21:50:48,315> DEBUG (DefaultVFS.java:247) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Not a JAR: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/mapper/

<2020-10-15 21:50:48,317> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: UsersMapper.class

<2020-10-15 21:50:48,321> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: UsersMapper.xml

<2020-10-15 21:50:48,324> DEBUG (DefaultVFS.java:111) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Listing file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/mapper/

<2020-10-15 21:50:48,324> DEBUG (DefaultVFS.java:220) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Find JAR URL: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/mapper/UsersMapper.class

<2020-10-15 21:50:48,325> DEBUG (DefaultVFS.java:247) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Not a JAR: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/mapper/UsersMapper.class

<2020-10-15 21:50:48,326> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: 漱壕   :   com/bjsxt/mapper/UsersMapper  java/lang/Object countByExample  (Lcom/bjsxt/pojo/UsersExample;)I deleteByExample deleteByPrimaryKey (Ljava/lang/Integer;)I insert (Lcom/bjsxt/pojo/Users;)I insertSelective selectByExample /(Lcom/bjsxt/pojo/UsersExample;)Ljava/util/List;  Signature G(Lcom/bjsxt/pojo/UsersExample;)Ljava/util/List<Lcom/bjsxt/pojo/Users;>; selectByPrimaryKey +(Ljava/lang/Integer;)Lcom/bjsxt/pojo/Users; updateByExampleSelective 6(Lcom/bjsxt/pojo/Users;Lcom/bjsxt/pojo/UsersExample;)I "RuntimeVisibleParameterAnnotations %Lorg/apache/ibatis/annotations/Param; value record example updateByExample updateByPrimaryKeySelective updateByPrimaryKey 

<2020-10-15 21:50:48,328> DEBUG (DefaultVFS.java:220) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Find JAR URL: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/mapper/UsersMapper.xml

<2020-10-15 21:50:48,328> DEBUG (DefaultVFS.java:247) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Not a JAR: file:/D:/J2EE项目/MybatisProject/mybatiswebdemoTest/out/artifacts/mybatiswebdemoTest_war_exploded/WEB-INF/classes/com/bjsxt/mapper/UsersMapper.xml

<2020-10-15 21:50:48,329> DEBUG (DefaultVFS.java:100) [http-nio-8080-exec-1] (org.apache.ibatis.io.DefaultVFS) - Reader entry: <?xml version="1.0" encoding="UTF-8" ?>

<2020-10-15 21:50:48,330> DEBUG (ResolverUtil.java:288) [http-nio-8080-exec-1] (org.apache.ibatis.io.ResolverUtil) - Checking to see if class com.bjsxt.mapper.UsersMapper matches criteria [is assignable to Object]

<2020-10-15 21:50:54,031> DEBUG (LoggingCache.java:60) [http-nio-8080-exec-5] (SQL_CACHE) - Cache Hit Ratio [SQL_CACHE]: 0.0

<2020-10-15 21:50:54,138> DEBUG (JdbcTransaction.java:137) [http-nio-8080-exec-5] (org.apache.ibatis.transaction.jdbc.JdbcTransaction) - Opening JDBC Connection

Thu Oct 15 21:50:54 CST 2020 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

<2020-10-15 21:50:54,582> DEBUG (PooledDataSource.java:434) [http-nio-8080-exec-5] (org.apache.ibatis.datasource.pooled.PooledDataSource) - Created connection 1614127273.

<2020-10-15 21:50:54,582> DEBUG (JdbcTransaction.java:101) [http-nio-8080-exec-5] (org.apache.ibatis.transaction.jdbc.JdbcTransaction) - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@6035a0a9]

<2020-10-15 21:50:54,591> DEBUG (BaseJdbcLogger.java:137) [http-nio-8080-exec-5] (com.bjsxt.mapper.UsersMapper.selectByExample_COUNT) - ==>  Preparing: SELECT count(0) FROM users

<2020-10-15 21:50:54,642> DEBUG (BaseJdbcLogger.java:137) [http-nio-8080-exec-5] (com.bjsxt.mapper.UsersMapper.selectByExample_COUNT) - ==> Parameters: 

<2020-10-15 21:50:54,685> DEBUG (BaseJdbcLogger.java:137) [http-nio-8080-exec-5] (com.bjsxt.mapper.UsersMapper.selectByExample_COUNT) - <==      Total: 1

<2020-10-15 21:50:54,701> DEBUG (BaseJdbcLogger.java:137) [http-nio-8080-exec-5] (com.bjsxt.mapper.UsersMapper.selectByExample) - ==>  Preparing: select userid, username, usersex from users LIMIT ?

<2020-10-15 21:50:54,701> DEBUG (BaseJdbcLogger.java:137) [http-nio-8080-exec-5] (com.bjsxt.mapper.UsersMapper.selectByExample) - ==> Parameters: 2(Integer)

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

at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:55)

at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:294)

at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:81)

at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTldResourcePath(TagLibraryInfoImpl.java:251)

<2020-10-15 21:50:54,704> DEBUG (BaseJdbcLogger.java:137) [http-nio-8080-exec-5] (com.bjsxt.mapper.UsersMapper.selectByExample) - <==      Total: 2

<2020-10-15 21:50:54,734> DEBUG (JdbcTransaction.java:123) [http-nio-8080-exec-5] (org.apache.ibatis.transaction.jdbc.JdbcTransaction) - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@6035a0a9]

<2020-10-15 21:50:54,735> DEBUG (JdbcTransaction.java:91) [http-nio-8080-exec-5] (org.apache.ibatis.transaction.jdbc.JdbcTransaction) - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@6035a0a9]

<2020-10-15 21:50:54,736> DEBUG (PooledDataSource.java:391) [http-nio-8080-exec-5] (org.apache.ibatis.datasource.pooled.PooledDataSource) - Returned connection 1614127273 to pool.

at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:122)

at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:431)

at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:489)

at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1445)

at org.apache.jasper.compiler.Parser.parse(Parser.java:144)

at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)

at org.apache.jasper.compiler.ParserController.parse(ParserController.java:105)

at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:206)

at org.apache.jasper.compiler.Compiler.compile(Compiler.java:386)

at org.apache.jasper.compiler.Compiler.compile(Compiler.java:362)

at org.apache.jasper.compiler.Compiler.compile(Compiler.java:346)

at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:605)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)

at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)

at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)

at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)

at com.bjsxt.web.servlet.UsersServlet.findUsers(UsersServlet.java:91)

at com.bjsxt.web.servlet.UsersServlet.doPost(UsersServlet.java:36)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at com.bjsxt.web.filter.OpenSessionInViewFilter.doFilter(OpenSessionInViewFilter.java:29)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.base/java.lang.Thread.run(Thread.java:832)

15-Oct-2020 21:50:55.474 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\Tomcat\apache-tomcat-9.0.34-windows-x64\apache-tomcat-9.0.34\webapps\manager]

15-Oct-2020 21:50:55.576 信息 [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [D:\Tomcat\apache-tomcat-9.0.34-windows-x64\apache-tomcat-9.0.34\webapps\manager] has finished in [102] ms



且客户端浏览器无法加载showUsers.jsp

image.png


如果去掉 taglib 指令标签

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


则forEach关键字不报错

image.png


此时启动Tomcat可以加载到showUsers.jsp但是不显示数据

image.png



我在网上查到了一个解决办法但是不敢乱来,还是想听听老师的意见

image.png


以下是源码

UsersServlet

package com.bjsxt.web.servlet;

import com.bjsxt.pojo.Users;
import com.bjsxt.pojo.UsersExample;
import com.bjsxt.service.UsersService;
import com.bjsxt.service.impl.UsersServiceImpl;
import com.github.pagehelper.PageInfo;

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;

@WebServlet("/usersServlet.do")
public class UsersServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        /*设置请求编码格式*/
        req.setCharacterEncoding("utf-8");

        /*设置响应编码格式*/
        resp.setContentType("text/html;charset=utf-8");

        String flag = req.getParameter("flag");
        if("addUsers".equals(flag)){
            this.addUsers(req,resp);
        }else if("findUsers".equals(flag)){
            this.findUsers(req,resp);
        }
    }

    private void addUsers(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //获取用户提交数据
        Users users = this.createUsers(req);

        //实例化业务层对象
        UsersService usersService = new UsersServiceImpl();
        usersService.addUsers(users);

        //为避免重复提交,使用重定向到成功页面
        resp.sendRedirect("ok.jsp");

    }

    /**
     * 获取用户提交的信息
     */
    private Users createUsers(HttpServletRequest req) {

        String username = req.getParameter("username");
        String usersex = req.getParameter("usersex");

        Users users = new Users();
        users.setUsername(username);
        users.setUsersex(usersex);

        return users;
    }

    /**
     * 查询用户
     */
    private void findUsers(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取用户提交的数据
        Users users = this.createUsers(req);
        //获取当前页
        String pageIndex = req.getParameter("pageIndex");
        int page = 1;
        if (pageIndex != null && pageIndex.length() > 0) {
            //强转
            page = Integer.parseInt(pageIndex);
        }
        UsersService usersService = new UsersServiceImpl();
        PageInfo<Users> pageInfo = usersService.findUsers(page, users);

        //传递数据
        req.setAttribute("pageInfo", pageInfo);
        //为了避免魔鬼查询得维持住查询条件得把封装了查询条件的users对象一起传过去
        req.setAttribute("users", users);

        //有数据传递得用请求转发
        req.getRequestDispatcher("showUsers.jsp").forward(req,resp);

    }

}


UsersServiceImpl

package com.bjsxt.service.impl;

import com.bjsxt.mapper.UsersMapper;
import com.bjsxt.pojo.Users;
import com.bjsxt.pojo.UsersExample;
import com.bjsxt.service.UsersService;
import com.bjsxt.utils.MybatisUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class UsersServiceImpl implements UsersService {

    @Override
    public void addUsers(Users users) {
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        //通过getMapper()方法获取UsersMapper接口实现类的代理对象
        UsersMapper mapper = sqlSession.getMapper(UsersMapper.class);
        mapper.insertSelective(users);
    }

    /**
     * 查询用户
     * @param page
     * @param users
     * @return
     */
    @Override
    public PageInfo<Users> findUsers(int page, Users users) {
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        //通过getMapper()方法获取UsersMapper接口实现类的代理对象
        UsersMapper mapper = sqlSession.getMapper(UsersMapper.class);
        //获取条件
        UsersExample usersExample = this.createUsersExample(users);

        PageHelper.startPage(page, 2);

        List<Users> list = mapper.selectByExample(usersExample);

        //将list放到pageInfo中      pageInfo:封装了基于分页查询得到的结果集的实体类
        PageInfo<Users> pageInfo = new PageInfo<>(list);

        return pageInfo;
    }

    /**
     * 生成查询条件
     */
    private UsersExample createUsersExample(Users users){
        UsersExample usersExample = new UsersExample();
        UsersExample.Criteria criteria = usersExample.createCriteria();
        if(users.getUsername() != null && users.getUsername().length() > 0){
            criteria.andUsernameEqualTo(users.getUsername());
        }
        if(users.getUsersex() != null && users.getUsersex().length() > 0){
            criteria.andUsersexEqualTo(users.getUsersex());
        }

        return usersExample;
    }

}



showUsers.jsp

<%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2020/10/15
  Time: 19:54
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>显示查询结果</title>
</head>
<body>
<table align="center" border="1" width="40%">
    <tr>
        <th>用户 ID</th>
        <th>用户姓名</th>
        <th>用户性别</th>
    </tr>
    <c:forEach items="${pageInfo.list}" var="users">
        <tr>
            <td>${users.userid}</td>
            <td>${users.username}</td>
            <td>${users.usersex}</td>
        </tr>
    </c:forEach>
</table>
</body>
</html>


求老师指点我该怎么解决


















JAVA 全系列/第六阶段:项目管理与SSM框架/Mybatis 34057楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 34058楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/数据结构 34061楼
JAVA 全系列/第一阶段:JAVA 快速入门/飞机大战小项目训练 34065楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637