优化部分UI
This commit is contained in:
parent
c14dc33a21
commit
1ad04a2354
|
@ -11,6 +11,26 @@
|
|||
</webroots>
|
||||
</configuration>
|
||||
</facet>
|
||||
<facet type="web" name="Web3">
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/conf/web.xml" />
|
||||
</descriptors>
|
||||
<webroots>
|
||||
<root url="file://$MODULE_DIR$/conf" relative="/WEB-INF" />
|
||||
</webroots>
|
||||
</configuration>
|
||||
</facet>
|
||||
<facet type="web" name="Web2">
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/.smarttomcat/School-ST/conf/web.xml" />
|
||||
</descriptors>
|
||||
<webroots>
|
||||
<root url="file://$MODULE_DIR$/.smarttomcat/School-ST/conf" relative="/WEB-INF" />
|
||||
</webroots>
|
||||
</configuration>
|
||||
</facet>
|
||||
</component>
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
|
|
|
@ -0,0 +1,198 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
#
|
||||
#
|
||||
# List of comma-separated paths defining the contents of the "common"
|
||||
# classloader. Prefixes should be used to define what is the repository type.
|
||||
# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
|
||||
# If left as blank,the JVM system loader will be used as Catalina's "common"
|
||||
# loader.
|
||||
# Examples:
|
||||
# "foo": Add this folder as a class repository
|
||||
# "foo/*.jar": Add all the JARs of the specified folder as class
|
||||
# repositories
|
||||
# "foo/bar.jar": Add bar.jar as a class repository
|
||||
#
|
||||
# Note: Values are enclosed in double quotes ("...") in case either the
|
||||
# ${catalina.base} path or the ${catalina.home} path contains a comma.
|
||||
# Because double quotes are used for quoting, the double quote character
|
||||
# may not appear in a path.
|
||||
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar"
|
||||
|
||||
#
|
||||
# List of comma-separated paths defining the contents of the "server"
|
||||
# classloader. Prefixes should be used to define what is the repository type.
|
||||
# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
|
||||
# If left as blank, the "common" loader will be used as Catalina's "server"
|
||||
# loader.
|
||||
# Examples:
|
||||
# "foo": Add this folder as a class repository
|
||||
# "foo/*.jar": Add all the JARs of the specified folder as class
|
||||
# repositories
|
||||
# "foo/bar.jar": Add bar.jar as a class repository
|
||||
#
|
||||
# Note: Values may be enclosed in double quotes ("...") in case either the
|
||||
# ${catalina.base} path or the ${catalina.home} path contains a comma.
|
||||
# Because double quotes are used for quoting, the double quote character
|
||||
# may not appear in a path.
|
||||
server.loader=
|
||||
|
||||
#
|
||||
# List of comma-separated paths defining the contents of the "shared"
|
||||
# classloader. Prefixes should be used to define what is the repository type.
|
||||
# Path may be relative to the CATALINA_BASE path or absolute. If left as blank,
|
||||
# the "common" loader will be used as Catalina's "shared" loader.
|
||||
# Examples:
|
||||
# "foo": Add this folder as a class repository
|
||||
# "foo/*.jar": Add all the JARs of the specified folder as class
|
||||
# repositories
|
||||
# "foo/bar.jar": Add bar.jar as a class repository
|
||||
# Please note that for single jars, e.g. bar.jar, you need the URL form
|
||||
# starting with file:.
|
||||
#
|
||||
# Note: Values may be enclosed in double quotes ("...") in case either the
|
||||
# ${catalina.base} path or the ${catalina.home} path contains a comma.
|
||||
# Because double quotes are used for quoting, the double quote character
|
||||
# may not appear in a path.
|
||||
shared.loader=
|
||||
|
||||
# Default list of JAR files that should not be scanned using the JarScanner
|
||||
# functionality. This is typically used to scan JARs for configuration
|
||||
# information. JARs that do not contain such information may be excluded from
|
||||
# the scan to speed up the scanning process. This is the default list. JARs on
|
||||
# this list are excluded from all scans. The list must be a comma separated list
|
||||
# of JAR file names.
|
||||
# The list of JARs to skip may be over-ridden at a Context level for individual
|
||||
# scan types by configuring a JarScanner with a nested JarScanFilter.
|
||||
# The JARs listed below include:
|
||||
# - Tomcat Bootstrap JARs
|
||||
# - Tomcat API JARs
|
||||
# - Catalina JARs
|
||||
# - Jasper JARs
|
||||
# - Tomcat JARs
|
||||
# - Common non-Tomcat JARs
|
||||
# - Test JARs (JUnit, Cobertura and dependencies)
|
||||
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\
|
||||
annotations-api.jar,\
|
||||
ant-junit*.jar,\
|
||||
ant-launcher*.jar,\
|
||||
ant*.jar,\
|
||||
asm-*.jar,\
|
||||
aspectj*.jar,\
|
||||
bcel*.jar,\
|
||||
biz.aQute.bnd*.jar,\
|
||||
bootstrap.jar,\
|
||||
catalina-ant.jar,\
|
||||
catalina-ha.jar,\
|
||||
catalina-ssi.jar,\
|
||||
catalina-storeconfig.jar,\
|
||||
catalina-tribes.jar,\
|
||||
catalina.jar,\
|
||||
cglib-*.jar,\
|
||||
cobertura-*.jar,\
|
||||
commons-beanutils*.jar,\
|
||||
commons-codec*.jar,\
|
||||
commons-collections*.jar,\
|
||||
commons-compress*.jar,\
|
||||
commons-daemon.jar,\
|
||||
commons-dbcp*.jar,\
|
||||
commons-digester*.jar,\
|
||||
commons-fileupload*.jar,\
|
||||
commons-httpclient*.jar,\
|
||||
commons-io*.jar,\
|
||||
commons-lang*.jar,\
|
||||
commons-logging*.jar,\
|
||||
commons-math*.jar,\
|
||||
commons-pool*.jar,\
|
||||
derby-*.jar,\
|
||||
dom4j-*.jar,\
|
||||
easymock-*.jar,\
|
||||
ecj-*.jar,\
|
||||
el-api.jar,\
|
||||
geronimo-spec-jaxrpc*.jar,\
|
||||
h2*.jar,\
|
||||
ha-api-*.jar,\
|
||||
hamcrest-*.jar,\
|
||||
hibernate*.jar,\
|
||||
httpclient*.jar,\
|
||||
icu4j-*.jar,\
|
||||
jakartaee-migration-*.jar,\
|
||||
jasper-el.jar,\
|
||||
jasper.jar,\
|
||||
jaspic-api.jar,\
|
||||
jaxb-*.jar,\
|
||||
jaxen-*.jar,\
|
||||
jaxws-rt-*.jar,\
|
||||
jdom-*.jar,\
|
||||
jetty-*.jar,\
|
||||
jmx-tools.jar,\
|
||||
jmx.jar,\
|
||||
jsp-api.jar,\
|
||||
jstl.jar,\
|
||||
jta*.jar,\
|
||||
junit-*.jar,\
|
||||
junit.jar,\
|
||||
log4j*.jar,\
|
||||
mail*.jar,\
|
||||
objenesis-*.jar,\
|
||||
oraclepki.jar,\
|
||||
org.hamcrest.core_*.jar,\
|
||||
org.junit_*.jar,\
|
||||
oro-*.jar,\
|
||||
servlet-api-*.jar,\
|
||||
servlet-api.jar,\
|
||||
slf4j*.jar,\
|
||||
taglibs-standard-spec-*.jar,\
|
||||
tagsoup-*.jar,\
|
||||
tomcat-api.jar,\
|
||||
tomcat-coyote.jar,\
|
||||
tomcat-coyote-ffm.jar,\
|
||||
tomcat-dbcp.jar,\
|
||||
tomcat-i18n-*.jar,\
|
||||
tomcat-jdbc.jar,\
|
||||
tomcat-jni.jar,\
|
||||
tomcat-juli-adapters.jar,\
|
||||
tomcat-juli.jar,\
|
||||
tomcat-util-scan.jar,\
|
||||
tomcat-util.jar,\
|
||||
tomcat-websocket.jar,\
|
||||
tools.jar,\
|
||||
unboundid-ldapsdk-*.jar,\
|
||||
websocket-api.jar,\
|
||||
websocket-client-api.jar,\
|
||||
wsdl4j*.jar,\
|
||||
xercesImpl.jar,\
|
||||
xml-apis.jar,\
|
||||
xmlParserAPIs-*.jar,\
|
||||
xmlParserAPIs.jar,\
|
||||
xom-*.jar
|
||||
|
||||
# Default list of JAR files that should be scanned that overrides the default
|
||||
# jarsToSkip list above. This is typically used to include a specific JAR that
|
||||
# has been excluded by a broad file name pattern in the jarsToSkip list.
|
||||
# The list of JARs to scan may be over-ridden at a Context level for individual
|
||||
# scan types by configuring a JarScanner with a nested JarScanFilter.
|
||||
tomcat.util.scan.StandardJarScanFilter.jarsToScan=\
|
||||
log4j-taglib*.jar,\
|
||||
log4j-jakarta-web*.jar,\
|
||||
log4javascript*.jar,\
|
||||
slf4j-taglib*.jar
|
||||
|
||||
# String cache configuration.
|
||||
tomcat.util.buf.StringCache.byte.enabled=true
|
||||
#tomcat.util.buf.StringCache.char.enabled=true
|
||||
#tomcat.util.buf.StringCache.trainThreshold=500000
|
||||
#tomcat.util.buf.StringCache.cacheSize=5000
|
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<!-- The contents of this file will be loaded for each web application -->
|
||||
<Context>
|
||||
|
||||
<!-- Default set of monitored resources. If one of these changes, the -->
|
||||
<!-- web application will be reloaded. -->
|
||||
<WatchedResource>WEB-INF/web.xml</WatchedResource>
|
||||
<WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
|
||||
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
|
||||
|
||||
<!-- Uncomment this to enable session persistence across Tomcat restarts -->
|
||||
<!--
|
||||
<Manager pathname="SESSIONS.ser" />
|
||||
-->
|
||||
</Context>
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<jaspic-providers xmlns="http://tomcat.apache.org/xml"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://tomcat.apache.org/xml jaspic-providers.xsd"
|
||||
version="1.0">
|
||||
<!-- No JASPIC providers configured by default -->
|
||||
</jaspic-providers>
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://tomcat.apache.org/xml"
|
||||
xmlns:jaspic="http://tomcat.apache.org/xml"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
version="1.0">
|
||||
<xs:element name="jaspic-providers">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="provider" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="property" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" use="required" type="jaspic:propertyname" />
|
||||
<xs:attribute name="value" use="required" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="className" type="xs:string" />
|
||||
<xs:attribute name="layer" type="xs:string" />
|
||||
<xs:attribute name="appContext" type="xs:string" />
|
||||
<xs:attribute name="description" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="version" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:simpleType name="propertyname">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:schema>
|
|
@ -0,0 +1,76 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
|
||||
|
||||
.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
|
||||
|
||||
############################################################
|
||||
# Handler specific properties.
|
||||
# Describes specific configuration info for Handlers.
|
||||
############################################################
|
||||
|
||||
1catalina.org.apache.juli.AsyncFileHandler.level = ALL
|
||||
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
|
||||
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
|
||||
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
|
||||
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
|
||||
|
||||
2localhost.org.apache.juli.AsyncFileHandler.level = ALL
|
||||
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
|
||||
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
|
||||
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
|
||||
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8
|
||||
|
||||
3manager.org.apache.juli.AsyncFileHandler.level = ALL
|
||||
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
|
||||
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
|
||||
3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
|
||||
3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
|
||||
|
||||
4host-manager.org.apache.juli.AsyncFileHandler.level = ALL
|
||||
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
|
||||
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
|
||||
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
|
||||
4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
|
||||
|
||||
java.util.logging.ConsoleHandler.level = ALL
|
||||
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
|
||||
java.util.logging.ConsoleHandler.encoding = UTF-8
|
||||
|
||||
|
||||
############################################################
|
||||
# Facility specific properties.
|
||||
# Provides extra control for each logger.
|
||||
############################################################
|
||||
|
||||
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
|
||||
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler
|
||||
|
||||
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
|
||||
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler
|
||||
|
||||
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
|
||||
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler
|
||||
|
||||
# For example, set the org.apache.catalina.util.LifecycleBase logger to log
|
||||
# each component that extends LifecycleBase changing state:
|
||||
#org.apache.catalina.util.LifecycleBase.level = FINE
|
||||
|
||||
# To see debug messages for HTTP/2 handling, uncomment the following line:
|
||||
#org.apache.coyote.http2.level = FINE
|
||||
|
||||
# To see debug messages for WebSocket handling, uncomment the following line:
|
||||
#org.apache.tomcat.websocket.level = FINE
|
|
@ -0,0 +1,154 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<!-- Note: A "Server" is not itself a "Container", so you may not
|
||||
define subcomponents such as "Valves" at this level.
|
||||
Documentation at /docs/config/server.html
|
||||
-->
|
||||
<Server port="-1" shutdown="SHUTDOWN">
|
||||
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
|
||||
<!-- Security listener. Documentation at /docs/config/listeners.html
|
||||
<Listener className="org.apache.catalina.security.SecurityListener" />
|
||||
-->
|
||||
<!-- OpenSSL support using Tomcat Native -->
|
||||
<Listener className="org.apache.catalina.core.AprLifecycleListener" />
|
||||
<!-- OpenSSL support using FFM API from Java 22 -->
|
||||
<!-- <Listener className="org.apache.catalina.core.OpenSSLLifecycleListener" /> -->
|
||||
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
|
||||
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
|
||||
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
|
||||
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
|
||||
|
||||
<!-- Global JNDI resources
|
||||
Documentation at /docs/jndi-resources-howto.html
|
||||
-->
|
||||
<GlobalNamingResources>
|
||||
<!-- Editable user database that can also be used by
|
||||
UserDatabaseRealm to authenticate users
|
||||
-->
|
||||
<Resource name="UserDatabase" auth="Container"
|
||||
type="org.apache.catalina.UserDatabase"
|
||||
description="User database that can be updated and saved"
|
||||
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
|
||||
pathname="conf/tomcat-users.xml" />
|
||||
</GlobalNamingResources>
|
||||
|
||||
<!-- A "Service" is a collection of one or more "Connectors" that share
|
||||
a single "Container" Note: A "Service" is not itself a "Container",
|
||||
so you may not define subcomponents such as "Valves" at this level.
|
||||
Documentation at /docs/config/service.html
|
||||
-->
|
||||
<Service name="Catalina">
|
||||
|
||||
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
|
||||
<!--
|
||||
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
|
||||
maxThreads="150" minSpareThreads="4"/>
|
||||
-->
|
||||
|
||||
|
||||
<!-- A "Connector" represents an endpoint by which requests are received
|
||||
and responses are returned. Documentation at :
|
||||
HTTP Connector: /docs/config/http.html
|
||||
AJP Connector: /docs/config/ajp.html
|
||||
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
|
||||
-->
|
||||
<Connector port="8080" protocol="HTTP/1.1"
|
||||
connectionTimeout="20000"
|
||||
redirectPort="8443" />
|
||||
<!-- A "Connector" using the shared thread pool-->
|
||||
<!--
|
||||
<Connector executor="tomcatThreadPool"
|
||||
port="8080" protocol="HTTP/1.1"
|
||||
connectionTimeout="20000"
|
||||
redirectPort="8443" />
|
||||
-->
|
||||
<!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
|
||||
This connector uses the NIO implementation. The default
|
||||
SSLImplementation will depend on the presence of the APR/native
|
||||
library and the useOpenSSL attribute of the AprLifecycleListener.
|
||||
Either JSSE or OpenSSL style configuration may be used regardless of
|
||||
the SSLImplementation selected. JSSE style configuration is used below.
|
||||
-->
|
||||
<!--
|
||||
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
|
||||
maxThreads="150" SSLEnabled="true">
|
||||
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
|
||||
<SSLHostConfig>
|
||||
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
|
||||
certificateKeystorePassword="changeit" type="RSA" />
|
||||
</SSLHostConfig>
|
||||
</Connector>
|
||||
-->
|
||||
|
||||
<!-- Define an AJP 1.3 Connector on port 8009 -->
|
||||
<!--
|
||||
<Connector protocol="AJP/1.3"
|
||||
address="::1"
|
||||
port="8009"
|
||||
redirectPort="8443" />
|
||||
-->
|
||||
|
||||
<!-- An Engine represents the entry point (within Catalina) that processes
|
||||
every request. The Engine implementation for Tomcat stand alone
|
||||
analyzes the HTTP headers included with the request, and passes them
|
||||
on to the appropriate Host (virtual host).
|
||||
Documentation at /docs/config/engine.html -->
|
||||
|
||||
<!-- You should set jvmRoute to support load-balancing via AJP ie :
|
||||
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
|
||||
-->
|
||||
<Engine name="Catalina" defaultHost="localhost">
|
||||
|
||||
<!--For clustering, please take a look at documentation at:
|
||||
/docs/cluster-howto.html (simple how to)
|
||||
/docs/config/cluster.html (reference documentation) -->
|
||||
<!--
|
||||
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
|
||||
-->
|
||||
|
||||
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
|
||||
via a brute-force attack -->
|
||||
<Realm className="org.apache.catalina.realm.LockOutRealm">
|
||||
<!-- This Realm uses the UserDatabase configured in the global JNDI
|
||||
resources under the key "UserDatabase". Any edits
|
||||
that are performed against this UserDatabase are immediately
|
||||
available for use by the Realm. -->
|
||||
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
|
||||
resourceName="UserDatabase"/>
|
||||
</Realm>
|
||||
|
||||
<Host name="localhost" appBase="webapps"
|
||||
unpackWARs="true" autoDeploy="true">
|
||||
|
||||
<!-- SingleSignOn valve, share authentication between web applications
|
||||
Documentation at: /docs/config/valve.html -->
|
||||
<!--
|
||||
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
|
||||
-->
|
||||
|
||||
<!-- Access log processes all example.
|
||||
Documentation at: /docs/config/valve.html
|
||||
Note: The pattern used is equivalent to using pattern="common" -->
|
||||
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
|
||||
prefix="localhost_access_log" suffix=".txt"
|
||||
pattern="%h %l %u %t "%r" %s %b" />
|
||||
|
||||
</Host>
|
||||
</Engine>
|
||||
</Service>
|
||||
</Server>
|
|
@ -0,0 +1,56 @@
|
|||
<?xml version='1.0' encoding='cp936'?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<tomcat-users xmlns="http://tomcat.apache.org/xml"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
|
||||
version="1.0">
|
||||
<!--
|
||||
By default, no user is included in the "manager-gui" role required
|
||||
to operate the "/manager/html" web application. If you wish to use this app,
|
||||
you must define such a user - the username and password are arbitrary.
|
||||
|
||||
Built-in Tomcat manager roles:
|
||||
- manager-gui - allows access to the HTML GUI and the status pages
|
||||
- manager-script - allows access to the HTTP API and the status pages
|
||||
- manager-jmx - allows access to the JMX proxy and the status pages
|
||||
- manager-status - allows access to the status pages only
|
||||
|
||||
The users below are wrapped in a comment and are therefore ignored. If you
|
||||
wish to configure one or more of these users for use with the manager web
|
||||
application, do not forget to remove the <!.. ..> that surrounds them. You
|
||||
will also need to set the passwords to something appropriate.
|
||||
-->
|
||||
<!--
|
||||
<user username="admin" password="<must-be-changed>" roles="manager-gui"/>
|
||||
<user username="robot" password="<must-be-changed>" roles="manager-script"/>
|
||||
-->
|
||||
<!--
|
||||
The sample user and role entries below are intended for use with the
|
||||
examples web application. They are wrapped in a comment and thus are ignored
|
||||
when reading this file. If you wish to configure these users for use with the
|
||||
examples web application, do not forget to remove the <!.. ..> that surrounds
|
||||
them. You will also need to set the passwords to something appropriate.
|
||||
-->
|
||||
<!--
|
||||
<role rolename="tomcat"/>
|
||||
<role rolename="role1"/>
|
||||
<user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
|
||||
<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
|
||||
<user username="role1" password="<must-be-changed>" roles="role1"/>
|
||||
-->
|
||||
</tomcat-users>
|
|
@ -0,0 +1,59 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://tomcat.apache.org/xml"
|
||||
xmlns:users="http://tomcat.apache.org/xml"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
version="1.0">
|
||||
<xs:element name="tomcat-users">
|
||||
<xs:complexType>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element name="role">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="rolename" use="required" type="users:entityname" />
|
||||
<xs:attribute name="description" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="group">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="groupname" use="required" type="users:entityname" />
|
||||
<xs:attribute name="description" type="xs:string" />
|
||||
<xs:attribute name="roles" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="user">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="username" use="required" type="users:entityname" />
|
||||
<xs:attribute name="fullname" type="xs:string" />
|
||||
<xs:attribute name="password" type="xs:string" />
|
||||
<xs:attribute name="roles" type="xs:string" />
|
||||
<xs:attribute name="groups" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:attribute name="version" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:simpleType name="entityname">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:schema>
|
File diff suppressed because it is too large
Load Diff
27
README.md
27
README.md
|
@ -1,2 +1,27 @@
|
|||
# School-ST
|
||||
|
||||
### 仓库创建日期:2025-2-10
|
||||
### 语言:Java(Jsp)
|
||||
### 项目简介
|
||||
- 本项目是一个学生管理系统,主要功能有:学生信息管理、课程信息管理、成绩信息管理、教师信息管理、班级信息管理、学生选课管理、教师授课管理、学生成绩查询、学生选课查询、教师授课查询等。
|
||||
- 学生信息管理:对学生信息进行增删改查。
|
||||
- 课程信息管理:对课程信息进行增删改查。
|
||||
- 成绩信息管理:对成绩信息进行增删改查。
|
||||
- 教师信息管理:对教师信息进行增删改查。
|
||||
- 班级信息管理:对班级信息进行增删改查。
|
||||
- 学生选课管理:对学生选课信息进行增删改查。
|
||||
- 教师授课管理:对教师授课信息进行增删改查。
|
||||
- 学生成绩查询:查询学生成绩信息。
|
||||
- 学生选课查询:查询学生选课信息。
|
||||
- 教师授课查询:查询教师授课信息。
|
||||
- 系统登录:用户登录系统。
|
||||
- 系统退出:用户退出系统。
|
||||
### 项目结构
|
||||
```
|
||||
School-ST
|
||||
│ .idea
|
||||
│ .settings
|
||||
│ build
|
||||
├─doc
|
||||
│ src
|
||||
```
|
||||
###
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<Context docBase="F:\Coding\JetBrains\Idea\KTT\School-ST\src\main\webapp"/>
|
|
@ -0,0 +1,198 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
#
|
||||
#
|
||||
# List of comma-separated paths defining the contents of the "common"
|
||||
# classloader. Prefixes should be used to define what is the repository type.
|
||||
# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
|
||||
# If left as blank,the JVM system loader will be used as Catalina's "common"
|
||||
# loader.
|
||||
# Examples:
|
||||
# "foo": Add this folder as a class repository
|
||||
# "foo/*.jar": Add all the JARs of the specified folder as class
|
||||
# repositories
|
||||
# "foo/bar.jar": Add bar.jar as a class repository
|
||||
#
|
||||
# Note: Values are enclosed in double quotes ("...") in case either the
|
||||
# ${catalina.base} path or the ${catalina.home} path contains a comma.
|
||||
# Because double quotes are used for quoting, the double quote character
|
||||
# may not appear in a path.
|
||||
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar"
|
||||
|
||||
#
|
||||
# List of comma-separated paths defining the contents of the "server"
|
||||
# classloader. Prefixes should be used to define what is the repository type.
|
||||
# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
|
||||
# If left as blank, the "common" loader will be used as Catalina's "server"
|
||||
# loader.
|
||||
# Examples:
|
||||
# "foo": Add this folder as a class repository
|
||||
# "foo/*.jar": Add all the JARs of the specified folder as class
|
||||
# repositories
|
||||
# "foo/bar.jar": Add bar.jar as a class repository
|
||||
#
|
||||
# Note: Values may be enclosed in double quotes ("...") in case either the
|
||||
# ${catalina.base} path or the ${catalina.home} path contains a comma.
|
||||
# Because double quotes are used for quoting, the double quote character
|
||||
# may not appear in a path.
|
||||
server.loader=
|
||||
|
||||
#
|
||||
# List of comma-separated paths defining the contents of the "shared"
|
||||
# classloader. Prefixes should be used to define what is the repository type.
|
||||
# Path may be relative to the CATALINA_BASE path or absolute. If left as blank,
|
||||
# the "common" loader will be used as Catalina's "shared" loader.
|
||||
# Examples:
|
||||
# "foo": Add this folder as a class repository
|
||||
# "foo/*.jar": Add all the JARs of the specified folder as class
|
||||
# repositories
|
||||
# "foo/bar.jar": Add bar.jar as a class repository
|
||||
# Please note that for single jars, e.g. bar.jar, you need the URL form
|
||||
# starting with file:.
|
||||
#
|
||||
# Note: Values may be enclosed in double quotes ("...") in case either the
|
||||
# ${catalina.base} path or the ${catalina.home} path contains a comma.
|
||||
# Because double quotes are used for quoting, the double quote character
|
||||
# may not appear in a path.
|
||||
shared.loader=
|
||||
|
||||
# Default list of JAR files that should not be scanned using the JarScanner
|
||||
# functionality. This is typically used to scan JARs for configuration
|
||||
# information. JARs that do not contain such information may be excluded from
|
||||
# the scan to speed up the scanning process. This is the default list. JARs on
|
||||
# this list are excluded from all scans. The list must be a comma separated list
|
||||
# of JAR file names.
|
||||
# The list of JARs to skip may be over-ridden at a Context level for individual
|
||||
# scan types by configuring a JarScanner with a nested JarScanFilter.
|
||||
# The JARs listed below include:
|
||||
# - Tomcat Bootstrap JARs
|
||||
# - Tomcat API JARs
|
||||
# - Catalina JARs
|
||||
# - Jasper JARs
|
||||
# - Tomcat JARs
|
||||
# - Common non-Tomcat JARs
|
||||
# - Test JARs (JUnit, Cobertura and dependencies)
|
||||
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\
|
||||
annotations-api.jar,\
|
||||
ant-junit*.jar,\
|
||||
ant-launcher*.jar,\
|
||||
ant*.jar,\
|
||||
asm-*.jar,\
|
||||
aspectj*.jar,\
|
||||
bcel*.jar,\
|
||||
biz.aQute.bnd*.jar,\
|
||||
bootstrap.jar,\
|
||||
catalina-ant.jar,\
|
||||
catalina-ha.jar,\
|
||||
catalina-ssi.jar,\
|
||||
catalina-storeconfig.jar,\
|
||||
catalina-tribes.jar,\
|
||||
catalina.jar,\
|
||||
cglib-*.jar,\
|
||||
cobertura-*.jar,\
|
||||
commons-beanutils*.jar,\
|
||||
commons-codec*.jar,\
|
||||
commons-collections*.jar,\
|
||||
commons-compress*.jar,\
|
||||
commons-daemon.jar,\
|
||||
commons-dbcp*.jar,\
|
||||
commons-digester*.jar,\
|
||||
commons-fileupload*.jar,\
|
||||
commons-httpclient*.jar,\
|
||||
commons-io*.jar,\
|
||||
commons-lang*.jar,\
|
||||
commons-logging*.jar,\
|
||||
commons-math*.jar,\
|
||||
commons-pool*.jar,\
|
||||
derby-*.jar,\
|
||||
dom4j-*.jar,\
|
||||
easymock-*.jar,\
|
||||
ecj-*.jar,\
|
||||
el-api.jar,\
|
||||
geronimo-spec-jaxrpc*.jar,\
|
||||
h2*.jar,\
|
||||
ha-api-*.jar,\
|
||||
hamcrest-*.jar,\
|
||||
hibernate*.jar,\
|
||||
httpclient*.jar,\
|
||||
icu4j-*.jar,\
|
||||
jakartaee-migration-*.jar,\
|
||||
jasper-el.jar,\
|
||||
jasper.jar,\
|
||||
jaspic-api.jar,\
|
||||
jaxb-*.jar,\
|
||||
jaxen-*.jar,\
|
||||
jaxws-rt-*.jar,\
|
||||
jdom-*.jar,\
|
||||
jetty-*.jar,\
|
||||
jmx-tools.jar,\
|
||||
jmx.jar,\
|
||||
jsp-api.jar,\
|
||||
jstl.jar,\
|
||||
jta*.jar,\
|
||||
junit-*.jar,\
|
||||
junit.jar,\
|
||||
log4j*.jar,\
|
||||
mail*.jar,\
|
||||
objenesis-*.jar,\
|
||||
oraclepki.jar,\
|
||||
org.hamcrest.core_*.jar,\
|
||||
org.junit_*.jar,\
|
||||
oro-*.jar,\
|
||||
servlet-api-*.jar,\
|
||||
servlet-api.jar,\
|
||||
slf4j*.jar,\
|
||||
taglibs-standard-spec-*.jar,\
|
||||
tagsoup-*.jar,\
|
||||
tomcat-api.jar,\
|
||||
tomcat-coyote.jar,\
|
||||
tomcat-coyote-ffm.jar,\
|
||||
tomcat-dbcp.jar,\
|
||||
tomcat-i18n-*.jar,\
|
||||
tomcat-jdbc.jar,\
|
||||
tomcat-jni.jar,\
|
||||
tomcat-juli-adapters.jar,\
|
||||
tomcat-juli.jar,\
|
||||
tomcat-util-scan.jar,\
|
||||
tomcat-util.jar,\
|
||||
tomcat-websocket.jar,\
|
||||
tools.jar,\
|
||||
unboundid-ldapsdk-*.jar,\
|
||||
websocket-api.jar,\
|
||||
websocket-client-api.jar,\
|
||||
wsdl4j*.jar,\
|
||||
xercesImpl.jar,\
|
||||
xml-apis.jar,\
|
||||
xmlParserAPIs-*.jar,\
|
||||
xmlParserAPIs.jar,\
|
||||
xom-*.jar
|
||||
|
||||
# Default list of JAR files that should be scanned that overrides the default
|
||||
# jarsToSkip list above. This is typically used to include a specific JAR that
|
||||
# has been excluded by a broad file name pattern in the jarsToSkip list.
|
||||
# The list of JARs to scan may be over-ridden at a Context level for individual
|
||||
# scan types by configuring a JarScanner with a nested JarScanFilter.
|
||||
tomcat.util.scan.StandardJarScanFilter.jarsToScan=\
|
||||
log4j-taglib*.jar,\
|
||||
log4j-jakarta-web*.jar,\
|
||||
log4javascript*.jar,\
|
||||
slf4j-taglib*.jar
|
||||
|
||||
# String cache configuration.
|
||||
tomcat.util.buf.StringCache.byte.enabled=true
|
||||
#tomcat.util.buf.StringCache.char.enabled=true
|
||||
#tomcat.util.buf.StringCache.trainThreshold=500000
|
||||
#tomcat.util.buf.StringCache.cacheSize=5000
|
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<!-- The contents of this file will be loaded for each web application -->
|
||||
<Context>
|
||||
|
||||
<!-- Default set of monitored resources. If one of these changes, the -->
|
||||
<!-- web application will be reloaded. -->
|
||||
<WatchedResource>WEB-INF/web.xml</WatchedResource>
|
||||
<WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
|
||||
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
|
||||
|
||||
<!-- Uncomment this to enable session persistence across Tomcat restarts -->
|
||||
<!--
|
||||
<Manager pathname="SESSIONS.ser" />
|
||||
-->
|
||||
</Context>
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<jaspic-providers xmlns="http://tomcat.apache.org/xml"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://tomcat.apache.org/xml jaspic-providers.xsd"
|
||||
version="1.0">
|
||||
<!-- No JASPIC providers configured by default -->
|
||||
</jaspic-providers>
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://tomcat.apache.org/xml"
|
||||
xmlns:jaspic="http://tomcat.apache.org/xml"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
version="1.0">
|
||||
<xs:element name="jaspic-providers">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="provider" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="property" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" use="required" type="jaspic:propertyname" />
|
||||
<xs:attribute name="value" use="required" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="className" type="xs:string" />
|
||||
<xs:attribute name="layer" type="xs:string" />
|
||||
<xs:attribute name="appContext" type="xs:string" />
|
||||
<xs:attribute name="description" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="version" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:simpleType name="propertyname">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:schema>
|
|
@ -0,0 +1,76 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
|
||||
|
||||
.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
|
||||
|
||||
############################################################
|
||||
# Handler specific properties.
|
||||
# Describes specific configuration info for Handlers.
|
||||
############################################################
|
||||
|
||||
1catalina.org.apache.juli.AsyncFileHandler.level = ALL
|
||||
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
|
||||
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
|
||||
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
|
||||
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
|
||||
|
||||
2localhost.org.apache.juli.AsyncFileHandler.level = ALL
|
||||
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
|
||||
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
|
||||
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90
|
||||
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8
|
||||
|
||||
3manager.org.apache.juli.AsyncFileHandler.level = ALL
|
||||
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
|
||||
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
|
||||
3manager.org.apache.juli.AsyncFileHandler.maxDays = 90
|
||||
3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
|
||||
|
||||
4host-manager.org.apache.juli.AsyncFileHandler.level = ALL
|
||||
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
|
||||
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
|
||||
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90
|
||||
4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8
|
||||
|
||||
java.util.logging.ConsoleHandler.level = ALL
|
||||
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
|
||||
java.util.logging.ConsoleHandler.encoding = UTF-8
|
||||
|
||||
|
||||
############################################################
|
||||
# Facility specific properties.
|
||||
# Provides extra control for each logger.
|
||||
############################################################
|
||||
|
||||
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
|
||||
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler
|
||||
|
||||
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
|
||||
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler
|
||||
|
||||
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
|
||||
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler
|
||||
|
||||
# For example, set the org.apache.catalina.util.LifecycleBase logger to log
|
||||
# each component that extends LifecycleBase changing state:
|
||||
#org.apache.catalina.util.LifecycleBase.level = FINE
|
||||
|
||||
# To see debug messages for HTTP/2 handling, uncomment the following line:
|
||||
#org.apache.coyote.http2.level = FINE
|
||||
|
||||
# To see debug messages for WebSocket handling, uncomment the following line:
|
||||
#org.apache.tomcat.websocket.level = FINE
|
|
@ -0,0 +1,174 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
--><!-- Note: A "Server" is not itself a "Container", so you may not
|
||||
define subcomponents such as "Valves" at this level.
|
||||
Documentation at /docs/config/server.html
|
||||
--><Server port="8005" shutdown="SHUTDOWN">
|
||||
|
||||
<Listener className="org.apache.catalina.startup.VersionLoggerListener"/>
|
||||
|
||||
<!-- Security listener. Documentation at /docs/config/listeners.html
|
||||
<Listener className="org.apache.catalina.security.SecurityListener" />
|
||||
-->
|
||||
|
||||
<!-- OpenSSL support using Tomcat Native -->
|
||||
|
||||
<Listener className="org.apache.catalina.core.AprLifecycleListener"/>
|
||||
|
||||
<!-- OpenSSL support using FFM API from Java 22 -->
|
||||
|
||||
<!-- <Listener className="org.apache.catalina.core.OpenSSLLifecycleListener" /> -->
|
||||
|
||||
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
|
||||
|
||||
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
|
||||
|
||||
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
|
||||
|
||||
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
|
||||
|
||||
<!-- Global JNDI resources
|
||||
Documentation at /docs/jndi-resources-howto.html
|
||||
-->
|
||||
|
||||
<GlobalNamingResources>
|
||||
|
||||
<!-- Editable user database that can also be used by
|
||||
UserDatabaseRealm to authenticate users
|
||||
-->
|
||||
|
||||
<Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
|
||||
|
||||
</GlobalNamingResources>
|
||||
|
||||
<!-- A "Service" is a collection of one or more "Connectors" that share
|
||||
a single "Container" Note: A "Service" is not itself a "Container",
|
||||
so you may not define subcomponents such as "Valves" at this level.
|
||||
Documentation at /docs/config/service.html
|
||||
-->
|
||||
|
||||
<Service name="Catalina">
|
||||
|
||||
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
|
||||
|
||||
<!--
|
||||
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
|
||||
maxThreads="150" minSpareThreads="4"/>
|
||||
-->
|
||||
|
||||
<!-- A "Connector" represents an endpoint by which requests are received
|
||||
and responses are returned. Documentation at :
|
||||
HTTP Connector: /docs/config/http.html
|
||||
AJP Connector: /docs/config/ajp.html
|
||||
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
|
||||
-->
|
||||
|
||||
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"/>
|
||||
|
||||
<!-- A "Connector" using the shared thread pool-->
|
||||
|
||||
<!--
|
||||
<Connector executor="tomcatThreadPool"
|
||||
port="8080" protocol="HTTP/1.1"
|
||||
connectionTimeout="20000"
|
||||
redirectPort="8443" />
|
||||
-->
|
||||
|
||||
<!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
|
||||
This connector uses the NIO implementation. The default
|
||||
SSLImplementation will depend on the presence of the APR/native
|
||||
library and the useOpenSSL attribute of the AprLifecycleListener.
|
||||
Either JSSE or OpenSSL style configuration may be used regardless of
|
||||
the SSLImplementation selected. JSSE style configuration is used below.
|
||||
-->
|
||||
|
||||
<!--
|
||||
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
|
||||
maxThreads="150" SSLEnabled="true">
|
||||
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
|
||||
<SSLHostConfig>
|
||||
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
|
||||
certificateKeystorePassword="changeit" type="RSA" />
|
||||
</SSLHostConfig>
|
||||
</Connector>
|
||||
-->
|
||||
|
||||
<!-- Define an AJP 1.3 Connector on port 8009 -->
|
||||
|
||||
<!--
|
||||
<Connector protocol="AJP/1.3"
|
||||
address="::1"
|
||||
port="8009"
|
||||
redirectPort="8443" />
|
||||
-->
|
||||
|
||||
<!-- An Engine represents the entry point (within Catalina) that processes
|
||||
every request. The Engine implementation for Tomcat stand alone
|
||||
analyzes the HTTP headers included with the request, and passes them
|
||||
on to the appropriate Host (virtual host).
|
||||
Documentation at /docs/config/engine.html -->
|
||||
|
||||
<!-- You should set jvmRoute to support load-balancing via AJP ie :
|
||||
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
|
||||
-->
|
||||
|
||||
<Engine defaultHost="localhost" name="Catalina">
|
||||
|
||||
<!--For clustering, please take a look at documentation at:
|
||||
/docs/cluster-howto.html (simple how to)
|
||||
/docs/config/cluster.html (reference documentation) -->
|
||||
|
||||
<!--
|
||||
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
|
||||
-->
|
||||
|
||||
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
|
||||
via a brute-force attack -->
|
||||
|
||||
<Realm className="org.apache.catalina.realm.LockOutRealm">
|
||||
|
||||
<!-- This Realm uses the UserDatabase configured in the global JNDI
|
||||
resources under the key "UserDatabase". Any edits
|
||||
that are performed against this UserDatabase are immediately
|
||||
available for use by the Realm. -->
|
||||
|
||||
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
|
||||
|
||||
</Realm>
|
||||
|
||||
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
|
||||
|
||||
<!-- SingleSignOn valve, share authentication between web applications
|
||||
Documentation at: /docs/config/valve.html -->
|
||||
|
||||
<!--
|
||||
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
|
||||
-->
|
||||
|
||||
<!-- Access log processes all example.
|
||||
Documentation at: /docs/config/valve.html
|
||||
Note: The pattern used is equivalent to using pattern="common" -->
|
||||
|
||||
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
|
||||
|
||||
</Host>
|
||||
|
||||
</Engine>
|
||||
|
||||
</Service>
|
||||
|
||||
</Server>
|
|
@ -0,0 +1,56 @@
|
|||
<?xml version='1.0' encoding='cp936'?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<tomcat-users xmlns="http://tomcat.apache.org/xml"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
|
||||
version="1.0">
|
||||
<!--
|
||||
By default, no user is included in the "manager-gui" role required
|
||||
to operate the "/manager/html" web application. If you wish to use this app,
|
||||
you must define such a user - the username and password are arbitrary.
|
||||
|
||||
Built-in Tomcat manager roles:
|
||||
- manager-gui - allows access to the HTML GUI and the status pages
|
||||
- manager-script - allows access to the HTTP API and the status pages
|
||||
- manager-jmx - allows access to the JMX proxy and the status pages
|
||||
- manager-status - allows access to the status pages only
|
||||
|
||||
The users below are wrapped in a comment and are therefore ignored. If you
|
||||
wish to configure one or more of these users for use with the manager web
|
||||
application, do not forget to remove the <!.. ..> that surrounds them. You
|
||||
will also need to set the passwords to something appropriate.
|
||||
-->
|
||||
<!--
|
||||
<user username="admin" password="<must-be-changed>" roles="manager-gui"/>
|
||||
<user username="robot" password="<must-be-changed>" roles="manager-script"/>
|
||||
-->
|
||||
<!--
|
||||
The sample user and role entries below are intended for use with the
|
||||
examples web application. They are wrapped in a comment and thus are ignored
|
||||
when reading this file. If you wish to configure these users for use with the
|
||||
examples web application, do not forget to remove the <!.. ..> that surrounds
|
||||
them. You will also need to set the passwords to something appropriate.
|
||||
-->
|
||||
<!--
|
||||
<role rolename="tomcat"/>
|
||||
<role rolename="role1"/>
|
||||
<user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
|
||||
<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
|
||||
<user username="role1" password="<must-be-changed>" roles="role1"/>
|
||||
-->
|
||||
</tomcat-users>
|
|
@ -0,0 +1,59 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://tomcat.apache.org/xml"
|
||||
xmlns:users="http://tomcat.apache.org/xml"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
version="1.0">
|
||||
<xs:element name="tomcat-users">
|
||||
<xs:complexType>
|
||||
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element name="role">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="rolename" use="required" type="users:entityname" />
|
||||
<xs:attribute name="description" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="group">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="groupname" use="required" type="users:entityname" />
|
||||
<xs:attribute name="description" type="xs:string" />
|
||||
<xs:attribute name="roles" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="user">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="username" use="required" type="users:entityname" />
|
||||
<xs:attribute name="fullname" type="xs:string" />
|
||||
<xs:attribute name="password" type="xs:string" />
|
||||
<xs:attribute name="roles" type="xs:string" />
|
||||
<xs:attribute name="groups" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:choice>
|
||||
<xs:attribute name="version" type="xs:string" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:simpleType name="entityname">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:minLength value="1"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:schema>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,318 @@
|
|||
10-Feb-2025 13:53:20.027 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.98
|
||||
10-Feb-2025 13:53:20.030 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Dec 5 2024 19:50:29 UTC
|
||||
10-Feb-2025 13:53:20.030 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 9.0.98.0
|
||||
10-Feb-2025 13:53:20.031 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 11
|
||||
10-Feb-2025 13:53:20.031 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0
|
||||
10-Feb-2025 13:53:20.031 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64
|
||||
10-Feb-2025 13:53:20.031 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Users\douyi\.jdks\corretto-11.0.25
|
||||
10-Feb-2025 13:53:20.031 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 11.0.25+9-LTS
|
||||
10-Feb-2025 13:53:20.031 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Amazon.com Inc.
|
||||
10-Feb-2025 13:53:20.031 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
10-Feb-2025 13:53:20.031 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
10-Feb-2025 13:53:20.037 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang=ALL-UNNAMED
|
||||
10-Feb-2025 13:53:20.037 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.io=ALL-UNNAMED
|
||||
10-Feb-2025 13:53:20.037 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util=ALL-UNNAMED
|
||||
10-Feb-2025 13:53:20.037 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
|
||||
10-Feb-2025 13:53:20.037 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
|
||||
10-Feb-2025 13:53:20.038 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.home=C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
10-Feb-2025 13:53:20.038 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.base=F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
10-Feb-2025 13:53:20.038 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.io.tmpdir=F:\Coding\JetBrains\Idea\KTT\School-ST\temp
|
||||
10-Feb-2025 13:53:20.038 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.config.file=F:\Coding\JetBrains\Idea\KTT\School-ST\conf\logging.properties
|
||||
10-Feb-2025 13:53:20.038 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
|
||||
10-Feb-2025 13:53:20.038 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -javaagent:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\lib\idea_rt.jar=10882:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\bin
|
||||
10-Feb-2025 13:53:20.038 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dfile.encoding=UTF-8
|
||||
10-Feb-2025 13:53:20.041 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.4]加载了基于APR的Apache Tomcat本机库[1.3.1]。
|
||||
10-Feb-2025 13:53:20.041 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [true]。
|
||||
10-Feb-2025 13:53:20.041 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]
|
||||
10-Feb-2025 13:53:20.047 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL成功初始化 [OpenSSL 3.0.14 4 Jun 2024]
|
||||
10-Feb-2025 13:53:20.273 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"]
|
||||
10-Feb-2025 13:53:20.295 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[432]毫秒内初始化
|
||||
10-Feb-2025 13:53:20.356 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina]
|
||||
10-Feb-2025 13:53:20.356 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.98]
|
||||
10-Feb-2025 13:53:20.365 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 正在部署部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]。
|
||||
10-Feb-2025 13:53:20.462 警告 [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [6.1]。将使用默认版本。
|
||||
10-Feb-2025 13:53:20.937 信息 [main] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
|
||||
10-Feb-2025 13:53:21.419 警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[463]毫秒。
|
||||
10-Feb-2025 13:53:21.437 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]的部署已在[1,073]ms内完成
|
||||
10-Feb-2025 13:53:21.444 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
|
||||
10-Feb-2025 13:53:21.841 信息 [main] org.apache.catalina.startup.Catalina.start [1544]毫秒后服务器启动
|
||||
10-Feb-2025 13:56:35.181 信息 [Thread-1] org.apache.coyote.AbstractProtocol.pause 暂停ProtocolHandler["http-nio-8080"]
|
||||
10-Feb-2025 13:56:35.913 信息 [Thread-1] org.apache.catalina.core.StandardService.stopInternal 正在停止服务[Catalina]
|
||||
10-Feb-2025 13:56:35.924 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc Web应用程序 [School-ST] 注册了JDBC驱动程序 [com.mysql.cj.jdbc.Driver],但在Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册。
|
||||
10-Feb-2025 13:56:35.924 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web应用程序[School-ST]似乎启动了一个名为[mysql-cj-abandoned-connection-cleanup]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[
|
||||
java.base@11.0.25/java.lang.Object.wait(Native Method)
|
||||
java.base@11.0.25/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
|
||||
com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:91)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
java.base@11.0.25/java.lang.Thread.run(Thread.java:829)]
|
||||
10-Feb-2025 13:56:35.929 信息 [Thread-1] org.apache.coyote.AbstractProtocol.stop 正在停止ProtocolHandler ["http-nio-8080"]
|
||||
10-Feb-2025 13:56:35.937 信息 [Thread-1] org.apache.coyote.AbstractProtocol.destroy 正在销毁协议处理器 ["http-nio-8080"]
|
||||
10-Feb-2025 13:56:37.128 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.98
|
||||
10-Feb-2025 13:56:37.132 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Dec 5 2024 19:50:29 UTC
|
||||
10-Feb-2025 13:56:37.132 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 9.0.98.0
|
||||
10-Feb-2025 13:56:37.132 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 11
|
||||
10-Feb-2025 13:56:37.132 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0
|
||||
10-Feb-2025 13:56:37.132 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64
|
||||
10-Feb-2025 13:56:37.132 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Users\douyi\.jdks\corretto-11.0.25
|
||||
10-Feb-2025 13:56:37.132 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 11.0.25+9-LTS
|
||||
10-Feb-2025 13:56:37.132 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Amazon.com Inc.
|
||||
10-Feb-2025 13:56:37.132 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
10-Feb-2025 13:56:37.133 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
10-Feb-2025 13:56:37.139 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang=ALL-UNNAMED
|
||||
10-Feb-2025 13:56:37.139 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.io=ALL-UNNAMED
|
||||
10-Feb-2025 13:56:37.139 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util=ALL-UNNAMED
|
||||
10-Feb-2025 13:56:37.139 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
|
||||
10-Feb-2025 13:56:37.139 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
|
||||
10-Feb-2025 13:56:37.139 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.home=C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
10-Feb-2025 13:56:37.139 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.base=F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
10-Feb-2025 13:56:37.139 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.io.tmpdir=F:\Coding\JetBrains\Idea\KTT\School-ST\temp
|
||||
10-Feb-2025 13:56:37.139 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.config.file=F:\Coding\JetBrains\Idea\KTT\School-ST\conf\logging.properties
|
||||
10-Feb-2025 13:56:37.139 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
|
||||
10-Feb-2025 13:56:37.139 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -javaagent:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\lib\idea_rt.jar=11414:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\bin
|
||||
10-Feb-2025 13:56:37.139 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dfile.encoding=UTF-8
|
||||
10-Feb-2025 13:56:37.142 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.4]加载了基于APR的Apache Tomcat本机库[1.3.1]。
|
||||
10-Feb-2025 13:56:37.142 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [true]。
|
||||
10-Feb-2025 13:56:37.142 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]
|
||||
10-Feb-2025 13:56:37.149 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL成功初始化 [OpenSSL 3.0.14 4 Jun 2024]
|
||||
10-Feb-2025 13:56:37.416 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"]
|
||||
10-Feb-2025 13:56:37.439 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[464]毫秒内初始化
|
||||
10-Feb-2025 13:56:37.519 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina]
|
||||
10-Feb-2025 13:56:37.519 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.98]
|
||||
10-Feb-2025 13:56:37.527 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 正在部署部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]。
|
||||
10-Feb-2025 13:56:37.633 警告 [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [6.1]。将使用默认版本。
|
||||
10-Feb-2025 13:56:38.127 信息 [main] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
|
||||
10-Feb-2025 13:56:38.565 警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[419]毫秒。
|
||||
10-Feb-2025 13:56:38.589 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]的部署已在[1,062]ms内完成
|
||||
10-Feb-2025 13:56:38.593 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
|
||||
10-Feb-2025 13:56:38.980 信息 [main] org.apache.catalina.startup.Catalina.start [1540]毫秒后服务器启动
|
||||
10-Feb-2025 13:58:07.239 信息 [Thread-1] org.apache.coyote.AbstractProtocol.pause 暂停ProtocolHandler["http-nio-8080"]
|
||||
10-Feb-2025 13:58:08.933 信息 [Thread-1] org.apache.catalina.core.StandardService.stopInternal 正在停止服务[Catalina]
|
||||
10-Feb-2025 13:58:08.947 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc Web应用程序 [School-ST] 注册了JDBC驱动程序 [com.mysql.cj.jdbc.Driver],但在Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册。
|
||||
10-Feb-2025 13:58:08.949 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web应用程序[School-ST]似乎启动了一个名为[mysql-cj-abandoned-connection-cleanup]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[
|
||||
java.base@11.0.25/java.lang.Object.wait(Native Method)
|
||||
java.base@11.0.25/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
|
||||
com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:91)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
java.base@11.0.25/java.lang.Thread.run(Thread.java:829)]
|
||||
10-Feb-2025 13:58:08.954 信息 [Thread-1] org.apache.coyote.AbstractProtocol.stop 正在停止ProtocolHandler ["http-nio-8080"]
|
||||
10-Feb-2025 13:58:08.971 信息 [Thread-1] org.apache.coyote.AbstractProtocol.destroy 正在销毁协议处理器 ["http-nio-8080"]
|
||||
10-Feb-2025 13:58:10.503 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.98
|
||||
10-Feb-2025 13:58:10.506 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Dec 5 2024 19:50:29 UTC
|
||||
10-Feb-2025 13:58:10.506 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 9.0.98.0
|
||||
10-Feb-2025 13:58:10.506 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 11
|
||||
10-Feb-2025 13:58:10.506 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0
|
||||
10-Feb-2025 13:58:10.506 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64
|
||||
10-Feb-2025 13:58:10.506 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Users\douyi\.jdks\corretto-11.0.25
|
||||
10-Feb-2025 13:58:10.506 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 11.0.25+9-LTS
|
||||
10-Feb-2025 13:58:10.506 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Amazon.com Inc.
|
||||
10-Feb-2025 13:58:10.506 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
10-Feb-2025 13:58:10.506 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
10-Feb-2025 13:58:10.513 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang=ALL-UNNAMED
|
||||
10-Feb-2025 13:58:10.513 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.io=ALL-UNNAMED
|
||||
10-Feb-2025 13:58:10.513 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util=ALL-UNNAMED
|
||||
10-Feb-2025 13:58:10.513 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
|
||||
10-Feb-2025 13:58:10.513 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
|
||||
10-Feb-2025 13:58:10.513 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.home=C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
10-Feb-2025 13:58:10.513 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.base=F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
10-Feb-2025 13:58:10.513 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.io.tmpdir=F:\Coding\JetBrains\Idea\KTT\School-ST\temp
|
||||
10-Feb-2025 13:58:10.513 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.config.file=F:\Coding\JetBrains\Idea\KTT\School-ST\conf\logging.properties
|
||||
10-Feb-2025 13:58:10.514 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
|
||||
10-Feb-2025 13:58:10.514 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -javaagent:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\lib\idea_rt.jar=11761:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\bin
|
||||
10-Feb-2025 13:58:10.514 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dfile.encoding=UTF-8
|
||||
10-Feb-2025 13:58:10.516 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.4]加载了基于APR的Apache Tomcat本机库[1.3.1]。
|
||||
10-Feb-2025 13:58:10.516 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [true]。
|
||||
10-Feb-2025 13:58:10.516 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]
|
||||
10-Feb-2025 13:58:10.522 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL成功初始化 [OpenSSL 3.0.14 4 Jun 2024]
|
||||
10-Feb-2025 13:58:10.753 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"]
|
||||
10-Feb-2025 13:58:10.774 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[429]毫秒内初始化
|
||||
10-Feb-2025 13:58:10.834 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina]
|
||||
10-Feb-2025 13:58:10.834 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.98]
|
||||
10-Feb-2025 13:58:10.841 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 正在部署部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]。
|
||||
10-Feb-2025 13:58:10.931 警告 [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [6.1]。将使用默认版本。
|
||||
10-Feb-2025 13:58:11.394 信息 [main] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
|
||||
10-Feb-2025 13:58:11.819 警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[406]毫秒。
|
||||
10-Feb-2025 13:58:11.841 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]的部署已在[1,000]ms内完成
|
||||
10-Feb-2025 13:58:11.846 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
|
||||
10-Feb-2025 13:58:12.301 信息 [main] org.apache.catalina.startup.Catalina.start [1527]毫秒后服务器启动
|
||||
10-Feb-2025 14:12:34.036 信息 [Thread-1] org.apache.coyote.AbstractProtocol.pause 暂停ProtocolHandler["http-nio-8080"]
|
||||
10-Feb-2025 14:12:34.767 信息 [Thread-1] org.apache.catalina.core.StandardService.stopInternal 正在停止服务[Catalina]
|
||||
10-Feb-2025 14:12:34.774 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc Web应用程序 [School-ST] 注册了JDBC驱动程序 [com.mysql.cj.jdbc.Driver],但在Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册。
|
||||
10-Feb-2025 14:12:34.775 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web应用程序[School-ST]似乎启动了一个名为[mysql-cj-abandoned-connection-cleanup]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[
|
||||
java.base@11.0.25/java.lang.Object.wait(Native Method)
|
||||
java.base@11.0.25/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
|
||||
com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:91)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
java.base@11.0.25/java.lang.Thread.run(Thread.java:829)]
|
||||
10-Feb-2025 14:12:34.778 信息 [Thread-1] org.apache.coyote.AbstractProtocol.stop 正在停止ProtocolHandler ["http-nio-8080"]
|
||||
10-Feb-2025 14:12:34.781 信息 [Thread-1] org.apache.coyote.AbstractProtocol.destroy 正在销毁协议处理器 ["http-nio-8080"]
|
||||
10-Feb-2025 14:12:35.974 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.98
|
||||
10-Feb-2025 14:12:35.976 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Dec 5 2024 19:50:29 UTC
|
||||
10-Feb-2025 14:12:35.977 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 9.0.98.0
|
||||
10-Feb-2025 14:12:35.977 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 11
|
||||
10-Feb-2025 14:12:35.977 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0
|
||||
10-Feb-2025 14:12:35.977 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64
|
||||
10-Feb-2025 14:12:35.977 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Users\douyi\.jdks\corretto-11.0.25
|
||||
10-Feb-2025 14:12:35.977 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 11.0.25+9-LTS
|
||||
10-Feb-2025 14:12:35.977 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Amazon.com Inc.
|
||||
10-Feb-2025 14:12:35.977 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
10-Feb-2025 14:12:35.977 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
10-Feb-2025 14:12:35.984 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang=ALL-UNNAMED
|
||||
10-Feb-2025 14:12:35.984 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.io=ALL-UNNAMED
|
||||
10-Feb-2025 14:12:35.984 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util=ALL-UNNAMED
|
||||
10-Feb-2025 14:12:35.985 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
|
||||
10-Feb-2025 14:12:35.985 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
|
||||
10-Feb-2025 14:12:35.985 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.home=C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
10-Feb-2025 14:12:35.985 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.base=F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
10-Feb-2025 14:12:35.985 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.io.tmpdir=F:\Coding\JetBrains\Idea\KTT\School-ST\temp
|
||||
10-Feb-2025 14:12:35.985 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.config.file=F:\Coding\JetBrains\Idea\KTT\School-ST\conf\logging.properties
|
||||
10-Feb-2025 14:12:35.985 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
|
||||
10-Feb-2025 14:12:35.985 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -javaagent:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\lib\idea_rt.jar=13438:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\bin
|
||||
10-Feb-2025 14:12:35.986 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dfile.encoding=UTF-8
|
||||
10-Feb-2025 14:12:35.988 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.4]加载了基于APR的Apache Tomcat本机库[1.3.1]。
|
||||
10-Feb-2025 14:12:35.988 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [true]。
|
||||
10-Feb-2025 14:12:35.988 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]
|
||||
10-Feb-2025 14:12:35.993 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL成功初始化 [OpenSSL 3.0.14 4 Jun 2024]
|
||||
10-Feb-2025 14:12:36.223 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"]
|
||||
10-Feb-2025 14:12:36.246 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[428]毫秒内初始化
|
||||
10-Feb-2025 14:12:36.358 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina]
|
||||
10-Feb-2025 14:12:36.358 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.98]
|
||||
10-Feb-2025 14:12:36.367 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 正在部署部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]。
|
||||
10-Feb-2025 14:12:36.470 警告 [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [6.1]。将使用默认版本。
|
||||
10-Feb-2025 14:12:36.923 信息 [main] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
|
||||
10-Feb-2025 14:12:37.331 警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[393]毫秒。
|
||||
10-Feb-2025 14:12:37.353 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]的部署已在[986]ms内完成
|
||||
10-Feb-2025 14:12:37.357 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
|
||||
10-Feb-2025 14:12:37.767 信息 [main] org.apache.catalina.startup.Catalina.start [1521]毫秒后服务器启动
|
||||
10-Feb-2025 14:14:10.361 信息 [Thread-1] org.apache.coyote.AbstractProtocol.pause 暂停ProtocolHandler["http-nio-8080"]
|
||||
10-Feb-2025 14:14:11.097 信息 [Thread-1] org.apache.catalina.core.StandardService.stopInternal 正在停止服务[Catalina]
|
||||
10-Feb-2025 14:14:11.103 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc Web应用程序 [School-ST] 注册了JDBC驱动程序 [com.mysql.cj.jdbc.Driver],但在Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册。
|
||||
10-Feb-2025 14:14:11.103 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web应用程序[School-ST]似乎启动了一个名为[mysql-cj-abandoned-connection-cleanup]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[
|
||||
java.base@11.0.25/java.lang.Object.wait(Native Method)
|
||||
java.base@11.0.25/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
|
||||
com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:91)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
java.base@11.0.25/java.lang.Thread.run(Thread.java:829)]
|
||||
10-Feb-2025 14:14:11.106 信息 [Thread-1] org.apache.coyote.AbstractProtocol.stop 正在停止ProtocolHandler ["http-nio-8080"]
|
||||
10-Feb-2025 14:14:11.109 信息 [Thread-1] org.apache.coyote.AbstractProtocol.destroy 正在销毁协议处理器 ["http-nio-8080"]
|
||||
10-Feb-2025 14:14:12.330 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.98
|
||||
10-Feb-2025 14:14:12.334 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Dec 5 2024 19:50:29 UTC
|
||||
10-Feb-2025 14:14:12.334 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 9.0.98.0
|
||||
10-Feb-2025 14:14:12.334 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 11
|
||||
10-Feb-2025 14:14:12.334 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0
|
||||
10-Feb-2025 14:14:12.334 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64
|
||||
10-Feb-2025 14:14:12.334 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Users\douyi\.jdks\corretto-11.0.25
|
||||
10-Feb-2025 14:14:12.334 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 11.0.25+9-LTS
|
||||
10-Feb-2025 14:14:12.334 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Amazon.com Inc.
|
||||
10-Feb-2025 14:14:12.334 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
10-Feb-2025 14:14:12.334 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
10-Feb-2025 14:14:12.343 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang=ALL-UNNAMED
|
||||
10-Feb-2025 14:14:12.343 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.io=ALL-UNNAMED
|
||||
10-Feb-2025 14:14:12.344 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util=ALL-UNNAMED
|
||||
10-Feb-2025 14:14:12.344 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
|
||||
10-Feb-2025 14:14:12.344 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
|
||||
10-Feb-2025 14:14:12.344 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.home=C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
10-Feb-2025 14:14:12.344 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.base=F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
10-Feb-2025 14:14:12.344 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.io.tmpdir=F:\Coding\JetBrains\Idea\KTT\School-ST\temp
|
||||
10-Feb-2025 14:14:12.344 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.config.file=F:\Coding\JetBrains\Idea\KTT\School-ST\conf\logging.properties
|
||||
10-Feb-2025 14:14:12.344 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
|
||||
10-Feb-2025 14:14:12.345 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -javaagent:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\lib\idea_rt.jar=13721:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\bin
|
||||
10-Feb-2025 14:14:12.345 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dfile.encoding=UTF-8
|
||||
10-Feb-2025 14:14:12.347 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.4]加载了基于APR的Apache Tomcat本机库[1.3.1]。
|
||||
10-Feb-2025 14:14:12.348 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [true]。
|
||||
10-Feb-2025 14:14:12.348 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]
|
||||
10-Feb-2025 14:14:12.354 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL成功初始化 [OpenSSL 3.0.14 4 Jun 2024]
|
||||
10-Feb-2025 14:14:12.585 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"]
|
||||
10-Feb-2025 14:14:12.606 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[461]毫秒内初始化
|
||||
10-Feb-2025 14:14:12.701 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina]
|
||||
10-Feb-2025 14:14:12.701 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.98]
|
||||
10-Feb-2025 14:14:12.717 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 正在部署部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]。
|
||||
10-Feb-2025 14:14:12.825 警告 [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [6.1]。将使用默认版本。
|
||||
10-Feb-2025 14:14:13.273 信息 [main] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
|
||||
10-Feb-2025 14:14:13.670 警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[381]毫秒。
|
||||
10-Feb-2025 14:14:13.693 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]的部署已在[977]ms内完成
|
||||
10-Feb-2025 14:14:13.697 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
|
||||
10-Feb-2025 14:14:14.087 信息 [main] org.apache.catalina.startup.Catalina.start [1479]毫秒后服务器启动
|
||||
10-Feb-2025 15:36:01.587 信息 [Thread-1] org.apache.coyote.AbstractProtocol.pause 暂停ProtocolHandler["http-nio-8080"]
|
||||
10-Feb-2025 15:36:02.306 信息 [Thread-1] org.apache.catalina.core.StandardService.stopInternal 正在停止服务[Catalina]
|
||||
10-Feb-2025 15:36:02.318 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc Web应用程序 [School-ST] 注册了JDBC驱动程序 [com.mysql.cj.jdbc.Driver],但在Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册。
|
||||
10-Feb-2025 15:36:02.319 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web应用程序[School-ST]似乎启动了一个名为[mysql-cj-abandoned-connection-cleanup]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[
|
||||
java.base@11.0.25/java.lang.Object.wait(Native Method)
|
||||
java.base@11.0.25/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
|
||||
com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:91)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
java.base@11.0.25/java.lang.Thread.run(Thread.java:829)]
|
||||
10-Feb-2025 15:36:02.325 信息 [Thread-1] org.apache.coyote.AbstractProtocol.stop 正在停止ProtocolHandler ["http-nio-8080"]
|
||||
10-Feb-2025 15:36:02.330 信息 [Thread-1] org.apache.coyote.AbstractProtocol.destroy 正在销毁协议处理器 ["http-nio-8080"]
|
||||
10-Feb-2025 15:36:02.358 信息 [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369)
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:995)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
||||
10-Feb-2025 15:36:03.574 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.98
|
||||
10-Feb-2025 15:36:03.576 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Dec 5 2024 19:50:29 UTC
|
||||
10-Feb-2025 15:36:03.576 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 9.0.98.0
|
||||
10-Feb-2025 15:36:03.576 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 11
|
||||
10-Feb-2025 15:36:03.576 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0
|
||||
10-Feb-2025 15:36:03.577 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64
|
||||
10-Feb-2025 15:36:03.577 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Users\douyi\.jdks\corretto-11.0.25
|
||||
10-Feb-2025 15:36:03.577 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 11.0.25+9-LTS
|
||||
10-Feb-2025 15:36:03.577 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Amazon.com Inc.
|
||||
10-Feb-2025 15:36:03.577 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
10-Feb-2025 15:36:03.577 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
10-Feb-2025 15:36:03.584 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang=ALL-UNNAMED
|
||||
10-Feb-2025 15:36:03.584 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.io=ALL-UNNAMED
|
||||
10-Feb-2025 15:36:03.585 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util=ALL-UNNAMED
|
||||
10-Feb-2025 15:36:03.585 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
|
||||
10-Feb-2025 15:36:03.585 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
|
||||
10-Feb-2025 15:36:03.585 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.home=C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
10-Feb-2025 15:36:03.585 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.base=F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
10-Feb-2025 15:36:03.585 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.io.tmpdir=F:\Coding\JetBrains\Idea\KTT\School-ST\temp
|
||||
10-Feb-2025 15:36:03.585 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.config.file=F:\Coding\JetBrains\Idea\KTT\School-ST\conf\logging.properties
|
||||
10-Feb-2025 15:36:03.585 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
|
||||
10-Feb-2025 15:36:03.586 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -javaagent:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\lib\idea_rt.jar=7223:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\bin
|
||||
10-Feb-2025 15:36:03.586 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dfile.encoding=UTF-8
|
||||
10-Feb-2025 15:36:03.588 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.4]加载了基于APR的Apache Tomcat本机库[1.3.1]。
|
||||
10-Feb-2025 15:36:03.588 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [true]。
|
||||
10-Feb-2025 15:36:03.588 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]
|
||||
10-Feb-2025 15:36:03.593 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL成功初始化 [OpenSSL 3.0.14 4 Jun 2024]
|
||||
10-Feb-2025 15:36:03.895 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"]
|
||||
10-Feb-2025 15:36:03.909 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[483]毫秒内初始化
|
||||
10-Feb-2025 15:36:03.989 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina]
|
||||
10-Feb-2025 15:36:03.989 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.98]
|
||||
10-Feb-2025 15:36:03.998 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 正在部署部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]。
|
||||
10-Feb-2025 15:36:04.092 警告 [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [6.1]。将使用默认版本。
|
||||
10-Feb-2025 15:36:04.541 信息 [main] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
|
||||
10-Feb-2025 15:36:04.930 警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[370]毫秒。
|
||||
10-Feb-2025 15:36:04.952 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]的部署已在[954]ms内完成
|
||||
10-Feb-2025 15:36:04.956 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
|
||||
10-Feb-2025 15:36:05.328 信息 [main] org.apache.catalina.startup.Catalina.start [1418]毫秒后服务器启动
|
||||
10-Feb-2025 17:30:27.521 信息 [Thread-1] org.apache.coyote.AbstractProtocol.pause 暂停ProtocolHandler["http-nio-8080"]
|
||||
10-Feb-2025 17:30:28.635 信息 [Thread-1] org.apache.catalina.core.StandardService.stopInternal 正在停止服务[Catalina]
|
||||
10-Feb-2025 17:30:28.656 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc Web应用程序 [School-ST] 注册了JDBC驱动程序 [com.mysql.cj.jdbc.Driver],但在Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册。
|
||||
10-Feb-2025 17:30:28.658 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web应用程序[School-ST]似乎启动了一个名为[mysql-cj-abandoned-connection-cleanup]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[
|
||||
java.base@11.0.25/java.lang.Object.wait(Native Method)
|
||||
java.base@11.0.25/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
|
||||
com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:91)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
java.base@11.0.25/java.lang.Thread.run(Thread.java:829)]
|
||||
10-Feb-2025 17:30:28.681 信息 [Thread-1] org.apache.coyote.AbstractProtocol.stop 正在停止ProtocolHandler ["http-nio-8080"]
|
||||
10-Feb-2025 17:30:28.692 信息 [Thread-1] org.apache.coyote.AbstractProtocol.destroy 正在销毁协议处理器 ["http-nio-8080"]
|
||||
10-Feb-2025 17:30:28.744 信息 [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369)
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:995)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
|
@ -0,0 +1,106 @@
|
|||
11-Feb-2025 14:59:04.365 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.98
|
||||
11-Feb-2025 14:59:04.367 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Dec 5 2024 19:50:29 UTC
|
||||
11-Feb-2025 14:59:04.368 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 9.0.98.0
|
||||
11-Feb-2025 14:59:04.368 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 11
|
||||
11-Feb-2025 14:59:04.368 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0
|
||||
11-Feb-2025 14:59:04.368 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64
|
||||
11-Feb-2025 14:59:04.368 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Users\douyi\.jdks\corretto-11.0.25
|
||||
11-Feb-2025 14:59:04.368 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 11.0.25+9-LTS
|
||||
11-Feb-2025 14:59:04.368 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Amazon.com Inc.
|
||||
11-Feb-2025 14:59:04.368 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
11-Feb-2025 14:59:04.368 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
11-Feb-2025 14:59:04.376 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang=ALL-UNNAMED
|
||||
11-Feb-2025 14:59:04.376 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.io=ALL-UNNAMED
|
||||
11-Feb-2025 14:59:04.376 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util=ALL-UNNAMED
|
||||
11-Feb-2025 14:59:04.376 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
|
||||
11-Feb-2025 14:59:04.376 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
|
||||
11-Feb-2025 14:59:04.376 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.home=C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
11-Feb-2025 14:59:04.377 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.base=F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
11-Feb-2025 14:59:04.377 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.io.tmpdir=F:\Coding\JetBrains\Idea\KTT\School-ST\temp
|
||||
11-Feb-2025 14:59:04.377 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.config.file=F:\Coding\JetBrains\Idea\KTT\School-ST\conf\logging.properties
|
||||
11-Feb-2025 14:59:04.377 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
|
||||
11-Feb-2025 14:59:04.377 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -javaagent:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\lib\idea_rt.jar=3798:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\bin
|
||||
11-Feb-2025 14:59:04.377 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dfile.encoding=UTF-8
|
||||
11-Feb-2025 14:59:04.382 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.4]加载了基于APR的Apache Tomcat本机库[1.3.1]。
|
||||
11-Feb-2025 14:59:04.382 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [true]。
|
||||
11-Feb-2025 14:59:04.382 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]
|
||||
11-Feb-2025 14:59:04.398 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL成功初始化 [OpenSSL 3.0.14 4 Jun 2024]
|
||||
11-Feb-2025 14:59:04.646 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"]
|
||||
11-Feb-2025 14:59:04.671 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[486]毫秒内初始化
|
||||
11-Feb-2025 14:59:04.760 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina]
|
||||
11-Feb-2025 14:59:04.760 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.98]
|
||||
11-Feb-2025 14:59:04.769 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 正在部署部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]。
|
||||
11-Feb-2025 14:59:04.869 警告 [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [6.1]。将使用默认版本。
|
||||
11-Feb-2025 14:59:05.340 信息 [main] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
|
||||
11-Feb-2025 14:59:05.778 警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[420]毫秒。
|
||||
11-Feb-2025 14:59:05.795 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]的部署已在[1,026]ms内完成
|
||||
11-Feb-2025 14:59:05.799 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
|
||||
11-Feb-2025 14:59:06.195 信息 [main] org.apache.catalina.startup.Catalina.start [1524]毫秒后服务器启动
|
||||
11-Feb-2025 16:55:42.428 信息 [Thread-1] org.apache.coyote.AbstractProtocol.pause 暂停ProtocolHandler["http-nio-8080"]
|
||||
11-Feb-2025 16:55:43.213 信息 [Thread-1] org.apache.catalina.core.StandardService.stopInternal 正在停止服务[Catalina]
|
||||
11-Feb-2025 16:55:43.232 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc Web应用程序 [School-ST] 注册了JDBC驱动程序 [com.mysql.cj.jdbc.Driver],但在Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册。
|
||||
11-Feb-2025 16:55:43.233 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web应用程序[School-ST]似乎启动了一个名为[mysql-cj-abandoned-connection-cleanup]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[
|
||||
java.base@11.0.25/java.lang.Object.wait(Native Method)
|
||||
java.base@11.0.25/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
|
||||
com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:91)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
java.base@11.0.25/java.lang.Thread.run(Thread.java:829)]
|
||||
11-Feb-2025 16:55:43.245 信息 [Thread-1] org.apache.coyote.AbstractProtocol.stop 正在停止ProtocolHandler ["http-nio-8080"]
|
||||
11-Feb-2025 16:55:43.249 信息 [Thread-1] org.apache.coyote.AbstractProtocol.destroy 正在销毁协议处理器 ["http-nio-8080"]
|
||||
11-Feb-2025 16:55:43.279 信息 [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369)
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:995)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
||||
11-Feb-2025 16:55:43.280 信息 [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369)
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:995)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
||||
11-Feb-2025 16:55:44.580 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.98
|
||||
11-Feb-2025 16:55:44.583 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Dec 5 2024 19:50:29 UTC
|
||||
11-Feb-2025 16:55:44.583 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 9.0.98.0
|
||||
11-Feb-2025 16:55:44.583 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 11
|
||||
11-Feb-2025 16:55:44.583 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0
|
||||
11-Feb-2025 16:55:44.583 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64
|
||||
11-Feb-2025 16:55:44.583 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Users\douyi\.jdks\corretto-11.0.25
|
||||
11-Feb-2025 16:55:44.583 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 11.0.25+9-LTS
|
||||
11-Feb-2025 16:55:44.583 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Amazon.com Inc.
|
||||
11-Feb-2025 16:55:44.584 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
11-Feb-2025 16:55:44.584 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
11-Feb-2025 16:55:44.590 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang=ALL-UNNAMED
|
||||
11-Feb-2025 16:55:44.590 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.io=ALL-UNNAMED
|
||||
11-Feb-2025 16:55:44.590 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util=ALL-UNNAMED
|
||||
11-Feb-2025 16:55:44.591 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
|
||||
11-Feb-2025 16:55:44.591 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
|
||||
11-Feb-2025 16:55:44.591 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.home=C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
11-Feb-2025 16:55:44.591 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.base=F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
11-Feb-2025 16:55:44.591 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.io.tmpdir=F:\Coding\JetBrains\Idea\KTT\School-ST\temp
|
||||
11-Feb-2025 16:55:44.591 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.config.file=F:\Coding\JetBrains\Idea\KTT\School-ST\conf\logging.properties
|
||||
11-Feb-2025 16:55:44.591 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
|
||||
11-Feb-2025 16:55:44.591 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -javaagent:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\lib\idea_rt.jar=12289:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\bin
|
||||
11-Feb-2025 16:55:44.591 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dfile.encoding=UTF-8
|
||||
11-Feb-2025 16:55:44.593 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.4]加载了基于APR的Apache Tomcat本机库[1.3.1]。
|
||||
11-Feb-2025 16:55:44.593 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [true]。
|
||||
11-Feb-2025 16:55:44.593 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]
|
||||
11-Feb-2025 16:55:44.598 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL成功初始化 [OpenSSL 3.0.14 4 Jun 2024]
|
||||
11-Feb-2025 16:55:44.830 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"]
|
||||
11-Feb-2025 16:55:44.849 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[410]毫秒内初始化
|
||||
11-Feb-2025 16:55:44.962 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina]
|
||||
11-Feb-2025 16:55:44.963 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.98]
|
||||
11-Feb-2025 16:55:44.971 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 正在部署部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]。
|
||||
11-Feb-2025 16:55:45.081 警告 [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [6.1]。将使用默认版本。
|
||||
11-Feb-2025 16:55:45.518 信息 [main] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
|
||||
11-Feb-2025 16:55:45.902 警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[367]毫秒。
|
||||
11-Feb-2025 16:55:45.917 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]的部署已在[946]ms内完成
|
||||
11-Feb-2025 16:55:45.922 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
|
||||
11-Feb-2025 16:55:46.308 信息 [main] org.apache.catalina.startup.Catalina.start [1459]毫秒后服务器启动
|
|
@ -0,0 +1,173 @@
|
|||
12-Feb-2025 13:46:17.947 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.98
|
||||
12-Feb-2025 13:46:17.951 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Dec 5 2024 19:50:29 UTC
|
||||
12-Feb-2025 13:46:17.951 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 9.0.98.0
|
||||
12-Feb-2025 13:46:17.951 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 11
|
||||
12-Feb-2025 13:46:17.951 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0
|
||||
12-Feb-2025 13:46:17.952 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64
|
||||
12-Feb-2025 13:46:17.952 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Users\douyi\.jdks\corretto-11.0.25
|
||||
12-Feb-2025 13:46:17.952 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 11.0.25+9-LTS
|
||||
12-Feb-2025 13:46:17.952 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Amazon.com Inc.
|
||||
12-Feb-2025 13:46:17.952 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
12-Feb-2025 13:46:17.952 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
12-Feb-2025 13:46:17.960 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang=ALL-UNNAMED
|
||||
12-Feb-2025 13:46:17.961 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.io=ALL-UNNAMED
|
||||
12-Feb-2025 13:46:17.961 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util=ALL-UNNAMED
|
||||
12-Feb-2025 13:46:17.961 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
|
||||
12-Feb-2025 13:46:17.961 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
|
||||
12-Feb-2025 13:46:17.961 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.home=C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
12-Feb-2025 13:46:17.961 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.base=F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
12-Feb-2025 13:46:17.962 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.io.tmpdir=F:\Coding\JetBrains\Idea\KTT\School-ST\temp
|
||||
12-Feb-2025 13:46:17.962 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.config.file=F:\Coding\JetBrains\Idea\KTT\School-ST\conf\logging.properties
|
||||
12-Feb-2025 13:46:17.962 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
|
||||
12-Feb-2025 13:46:17.962 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -javaagent:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\lib\idea_rt.jar=11117:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\bin
|
||||
12-Feb-2025 13:46:17.962 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dfile.encoding=UTF-8
|
||||
12-Feb-2025 13:46:17.968 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.4]加载了基于APR的Apache Tomcat本机库[1.3.1]。
|
||||
12-Feb-2025 13:46:17.969 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [true]。
|
||||
12-Feb-2025 13:46:17.969 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]
|
||||
12-Feb-2025 13:46:17.990 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL成功初始化 [OpenSSL 3.0.14 4 Jun 2024]
|
||||
12-Feb-2025 13:46:18.330 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"]
|
||||
12-Feb-2025 13:46:18.358 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[638]毫秒内初始化
|
||||
12-Feb-2025 13:46:18.475 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina]
|
||||
12-Feb-2025 13:46:18.475 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.98]
|
||||
12-Feb-2025 13:46:18.487 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 正在部署部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]。
|
||||
12-Feb-2025 13:46:18.633 警告 [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [6.1]。将使用默认版本。
|
||||
12-Feb-2025 13:46:19.313 信息 [main] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
|
||||
12-Feb-2025 13:46:19.929 警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[593]毫秒。
|
||||
12-Feb-2025 13:46:19.952 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]的部署已在[1,466]ms内完成
|
||||
12-Feb-2025 13:46:19.958 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
|
||||
12-Feb-2025 13:46:20.527 信息 [main] org.apache.catalina.startup.Catalina.start [2168]毫秒后服务器启动
|
||||
12-Feb-2025 13:47:06.248 信息 [Thread-1] org.apache.coyote.AbstractProtocol.pause 暂停ProtocolHandler["http-nio-8080"]
|
||||
12-Feb-2025 13:47:07.045 信息 [Thread-1] org.apache.catalina.core.StandardService.stopInternal 正在停止服务[Catalina]
|
||||
12-Feb-2025 13:47:07.061 信息 [Thread-1] org.apache.coyote.AbstractProtocol.stop 正在停止ProtocolHandler ["http-nio-8080"]
|
||||
12-Feb-2025 13:47:07.070 信息 [Thread-1] org.apache.coyote.AbstractProtocol.destroy 正在销毁协议处理器 ["http-nio-8080"]
|
||||
12-Feb-2025 13:47:49.357 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/9.0.98
|
||||
12-Feb-2025 13:47:49.360 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Dec 5 2024 19:50:29 UTC
|
||||
12-Feb-2025 13:47:49.360 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号: 9.0.98.0
|
||||
12-Feb-2025 13:47:49.360 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称: Windows 11
|
||||
12-Feb-2025 13:47:49.360 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0
|
||||
12-Feb-2025 13:47:49.360 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64
|
||||
12-Feb-2025 13:47:49.360 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Users\douyi\.jdks\corretto-11.0.25
|
||||
12-Feb-2025 13:47:49.360 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本: 11.0.25+9-LTS
|
||||
12-Feb-2025 13:47:49.360 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Amazon.com Inc.
|
||||
12-Feb-2025 13:47:49.360 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
12-Feb-2025 13:47:49.360 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
12-Feb-2025 13:47:49.368 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.lang=ALL-UNNAMED
|
||||
12-Feb-2025 13:47:49.368 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.io=ALL-UNNAMED
|
||||
12-Feb-2025 13:47:49.369 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util=ALL-UNNAMED
|
||||
12-Feb-2025 13:47:49.369 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
|
||||
12-Feb-2025 13:47:49.369 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
|
||||
12-Feb-2025 13:47:49.369 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.home=C:\Program Files\Apache Software Foundation\apache-tomcat-9.0.98
|
||||
12-Feb-2025 13:47:49.370 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dcatalina.base=F:\Coding\JetBrains\Idea\KTT\School-ST
|
||||
12-Feb-2025 13:47:49.370 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.io.tmpdir=F:\Coding\JetBrains\Idea\KTT\School-ST\temp
|
||||
12-Feb-2025 13:47:49.370 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.config.file=F:\Coding\JetBrains\Idea\KTT\School-ST\conf\logging.properties
|
||||
12-Feb-2025 13:47:49.370 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
|
||||
12-Feb-2025 13:47:49.370 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -javaagent:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\lib\idea_rt.jar=11487:C:\Users\douyi\AppData\Local\Programs\IntelliJ IDEA Ultimate 2\bin
|
||||
12-Feb-2025 13:47:49.370 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数: -Dfile.encoding=UTF-8
|
||||
12-Feb-2025 13:47:49.372 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用APR版本[1.7.4]加载了基于APR的Apache Tomcat本机库[1.3.1]。
|
||||
12-Feb-2025 13:47:49.372 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR功能:IPv6[true]、sendfile[true]、accept filters[false]、random[true]、UDS [true]。
|
||||
12-Feb-2025 13:47:49.372 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL配置:useAprConnector[false],useOpenSSL[true]
|
||||
12-Feb-2025 13:47:49.378 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL成功初始化 [OpenSSL 3.0.14 4 Jun 2024]
|
||||
12-Feb-2025 13:47:49.665 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"]
|
||||
12-Feb-2025 13:47:49.691 信息 [main] org.apache.catalina.startup.Catalina.load 服务器在[516]毫秒内初始化
|
||||
12-Feb-2025 13:47:49.796 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina]
|
||||
12-Feb-2025 13:47:49.796 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/9.0.98]
|
||||
12-Feb-2025 13:47:49.808 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 正在部署部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]。
|
||||
12-Feb-2025 13:47:49.946 警告 [main] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [6.1]。将使用默认版本。
|
||||
12-Feb-2025 13:47:50.490 信息 [main] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
|
||||
12-Feb-2025 13:47:50.960 警告 [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 使用[SHA1PRNG]创建会话ID生成的SecureRandom实例花费了[451]毫秒。
|
||||
12-Feb-2025 13:47:50.977 信息 [main] org.apache.catalina.startup.HostConfig.deployDescriptor 部署描述符[F:\Coding\JetBrains\Idea\KTT\School-ST\conf\Catalina\localhost\School-ST.xml]的部署已在[1,170]ms内完成
|
||||
12-Feb-2025 13:47:50.982 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
|
||||
12-Feb-2025 13:47:51.530 信息 [main] org.apache.catalina.startup.Catalina.start [1839]毫秒后服务器启动
|
||||
12-Feb-2025 14:49:59.970 信息 [Thread-1] org.apache.coyote.AbstractProtocol.pause 暂停ProtocolHandler["http-nio-8080"]
|
||||
12-Feb-2025 14:50:01.838 信息 [Thread-1] org.apache.catalina.core.StandardService.stopInternal 正在停止服务[Catalina]
|
||||
12-Feb-2025 14:50:01.866 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc Web应用程序 [School-ST] 注册了JDBC驱动程序 [com.mysql.cj.jdbc.Driver],但在Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册。
|
||||
12-Feb-2025 14:50:01.869 警告 [Thread-1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web应用程序[School-ST]似乎启动了一个名为[mysql-cj-abandoned-connection-cleanup]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[
|
||||
java.base@11.0.25/java.lang.Object.wait(Native Method)
|
||||
java.base@11.0.25/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
|
||||
com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:91)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
java.base@11.0.25/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
java.base@11.0.25/java.lang.Thread.run(Thread.java:829)]
|
||||
12-Feb-2025 14:50:01.883 信息 [Thread-1] org.apache.coyote.AbstractProtocol.stop 正在停止ProtocolHandler ["http-nio-8080"]
|
||||
12-Feb-2025 14:50:01.901 信息 [Thread-1] org.apache.coyote.AbstractProtocol.destroy 正在销毁协议处理器 ["http-nio-8080"]
|
||||
12-Feb-2025 14:50:01.975 信息 [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369)
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:995)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
||||
12-Feb-2025 14:50:01.977 信息 [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369)
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:995)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
||||
12-Feb-2025 14:50:01.977 信息 [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369)
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:995)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
||||
12-Feb-2025 14:50:01.977 信息 [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369)
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:995)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
||||
12-Feb-2025 14:50:01.978 信息 [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369)
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:995)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
||||
12-Feb-2025 14:50:01.978 信息 [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369)
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:995)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
||||
12-Feb-2025 14:50:01.978 信息 [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369)
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:995)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
||||
12-Feb-2025 14:50:01.978 信息 [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369)
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:995)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
||||
12-Feb-2025 14:50:01.978 信息 [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
java.lang.IllegalStateException: 非法访问:此Web应用程序实例已停止。无法加载[]。为了调试以及终止导致非法访问的线程,将抛出以下堆栈跟踪。
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1369)
|
||||
at org.apache.catalina.loader.WebappClassLoaderBase.getResource(WebappClassLoaderBase.java:995)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkThreadContextClassLoader(AbandonedConnectionCleanupThread.java:123)
|
||||
at com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:90)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
|
||||
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
|
@ -0,0 +1,88 @@
|
|||
11-Feb-2025 14:59:31.445 严重 [http-nio-8080-exec-6] org.apache.catalina.core.StandardWrapperValve.invoke 在路径为[/School-ST]的上下文中,Servlet[jsp]的Servlet.service()引发了具有根本原因的异常[无法在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]
|
||||
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:37)
|
||||
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:270)
|
||||
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:77)
|
||||
at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTldResourcePath(TagLibraryInfoImpl.java:253)
|
||||
at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:124)
|
||||
at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:443)
|
||||
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:501)
|
||||
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1458)
|
||||
at org.apache.jasper.compiler.Parser.parse(Parser.java:144)
|
||||
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:264)
|
||||
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:109)
|
||||
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:192)
|
||||
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:365)
|
||||
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:343)
|
||||
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:329)
|
||||
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
|
||||
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:399)
|
||||
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:376)
|
||||
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:324)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
|
||||
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
|
||||
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
|
||||
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
|
||||
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
|
||||
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
|
||||
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
|
||||
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
|
||||
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
|
||||
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
|
||||
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:396)
|
||||
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
|
||||
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:937)
|
||||
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
|
||||
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
||||
11-Feb-2025 15:00:10.843 严重 [http-nio-8080-exec-9] org.apache.catalina.core.StandardWrapperValve.invoke 在路径为[/School-ST]的上下文中,Servlet[jsp]的Servlet.service()引发了具有根本原因的异常[无法在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]
|
||||
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:37)
|
||||
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:270)
|
||||
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:77)
|
||||
at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTldResourcePath(TagLibraryInfoImpl.java:253)
|
||||
at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:124)
|
||||
at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:443)
|
||||
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:501)
|
||||
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1458)
|
||||
at org.apache.jasper.compiler.Parser.parse(Parser.java:144)
|
||||
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:264)
|
||||
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:109)
|
||||
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:192)
|
||||
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:365)
|
||||
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:343)
|
||||
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:329)
|
||||
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
|
||||
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:399)
|
||||
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:376)
|
||||
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:324)
|
||||
at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
|
||||
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
|
||||
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
|
||||
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
|
||||
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
|
||||
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
|
||||
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
|
||||
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
|
||||
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
|
||||
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
|
||||
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:396)
|
||||
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
|
||||
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:937)
|
||||
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
|
||||
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
|
||||
at java.base/java.lang.Thread.run(Thread.java:829)
|
|
@ -0,0 +1,40 @@
|
|||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:13:53:24 +0800] "GET /School-ST HTTP/1.1" 302 -
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:13:53:24 +0800] "GET /School-ST/ HTTP/1.1" 404 714
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:13:53:25 +0800] "GET /favicon.ico HTTP/1.1" 404 648
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:13:53:37 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 3653
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:13:53:40 +0800] "GET /School-ST/evaluationPage.jsp?college=&teacher=&course= HTTP/1.1" 200 1882
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:13:56:52 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 3653
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:13:56:56 +0800] "GET /School-ST/evaluationPage.jsp?college=&teacher=&course= HTTP/1.1" 200 1882
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:13:58:16 +0800] "POST /School-ST/submitEvaluation.jsp HTTP/1.1" 200 79
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:13:58:22 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 3653
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:13:58:24 +0800] "GET /School-ST/evaluationPage.jsp?college=&teacher=&course= HTTP/1.1" 200 1882
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:14:12:26 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 3653
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:14:12:28 +0800] "GET /School-ST/loadTeachers.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2 HTTP/1.1" 200 4
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:14:12:28 +0800] "GET /School-ST/evaluationPage.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2&course= HTTP/1.1" 302 -
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:14:12:28 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 3653
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:14:12:54 +0800] "GET /School-ST/evaluationPage.jsp?college=&teacher=&course= HTTP/1.1" 200 1882
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:14:14:16 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 3653
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:14:14:18 +0800] "GET /School-ST/evaluationPage.jsp?college=&teacher=&course= HTTP/1.1" 200 1882
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:33:56 +0800] "GET /School-ST/evaluationPage.jsp?college=&teacher=&course= HTTP/1.1" 200 6529
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:33:59 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 3653
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:36:11 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 3194
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:36:14 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 3194
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:36:16 +0800] "GET /School-ST/loadTeachers.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2 HTTP/1.1" 200 130
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:36:19 +0800] "GET /School-ST/evaluationPage.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2&teacher=1&course= HTTP/1.1" 200 6301
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:36:32 +0800] "POST /School-ST/submitEvaluation.jsp HTTP/1.1" 200 101
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:37:39 +0800] "GET /School-ST/loadTeachers.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2 HTTP/1.1" 200 130
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:37:42 +0800] "GET /School-ST/loadCourses.jsp?teacher=2 HTTP/1.1" 200 92
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:37:43 +0800] "GET /School-ST/loadCourses.jsp?teacher=3 HTTP/1.1" 200 6
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:37:44 +0800] "GET /School-ST/loadCourses.jsp?teacher=4 HTTP/1.1" 200 6
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:37:46 +0800] "GET /School-ST/loadCourses.jsp?teacher=1 HTTP/1.1" 200 76
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:37:47 +0800] "GET /School-ST/loadTeachers.jsp?college=%E6%99%BA%E8%83%BD%E5%B7%A5%E5%AD%A6%E9%99%A2 HTTP/1.1" 200 34
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:37:50 +0800] "GET /School-ST/loadTeachers.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2 HTTP/1.1" 200 130
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:37:52 +0800] "GET /School-ST/evaluationPage.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2&teacher=1&course=1 HTTP/1.1" 200 6302
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:38:08 +0800] "POST /School-ST/submitEvaluation.jsp HTTP/1.1" 200 21
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:15:52:00 +0800] "GET /School-ST/admin.jsp HTTP/1.1" 200 1332
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:16:01:26 +0800] "GET /School-ST/admin.jsp HTTP/1.1" 200 1316
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:16:45:22 +0800] "GET /School-ST/admin.jsp HTTP/1.1" 200 1401
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:16:45:32 +0800] "GET /School-ST/admin.jsp HTTP/1.1" 200 1401
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:16:45:37 +0800] "GET /School-ST/admin.jsp HTTP/1.1" 200 1401
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:16:45:48 +0800] "GET /School-ST/admin.jsp HTTP/1.1" 200 347
|
||||
0:0:0:0:0:0:0:1 - - [10/Feb/2025:16:45:55 +0800] "GET /School-ST/admin.jsp HTTP/1.1" 200 1332
|
|
@ -0,0 +1,13 @@
|
|||
0:0:0:0:0:0:0:1 - - [11/Feb/2025:14:59:17 +0800] "GET /School-ST HTTP/1.1" 302 -
|
||||
0:0:0:0:0:0:0:1 - - [11/Feb/2025:14:59:17 +0800] "GET /School-ST/ HTTP/1.1" 404 714
|
||||
0:0:0:0:0:0:0:1 - - [11/Feb/2025:14:59:17 +0800] "GET /favicon.ico HTTP/1.1" 404 648
|
||||
0:0:0:0:0:0:0:1 - - [11/Feb/2025:14:59:31 +0800] "GET /School-ST/evaluationPage.jsp HTTP/1.1" 500 2658
|
||||
0:0:0:0:0:0:0:1 - - [11/Feb/2025:14:59:57 +0800] "GET /School-ST/evaluation.jsp HTTP/1.1" 404 707
|
||||
0:0:0:0:0:0:0:1 - - [11/Feb/2025:15:00:05 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 3198
|
||||
0:0:0:0:0:0:0:1 - - [11/Feb/2025:15:00:08 +0800] "GET /School-ST/loadTeachers.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2 HTTP/1.1" 200 130
|
||||
0:0:0:0:0:0:0:1 - - [11/Feb/2025:15:00:09 +0800] "GET /School-ST/loadCourses.jsp?teacher=2 HTTP/1.1" 200 92
|
||||
0:0:0:0:0:0:0:1 - - [11/Feb/2025:15:00:10 +0800] "GET /School-ST/evaluationPage.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2&teacher=2&course=3 HTTP/1.1" 500 2658
|
||||
0:0:0:0:0:0:0:1 - - [11/Feb/2025:17:00:14 +0800] "GET /School-ST/evaluationPage.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2&teacher=2&course=3 HTTP/1.1" 200 6302
|
||||
0:0:0:0:0:0:0:1 - - [11/Feb/2025:17:01:35 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5649
|
||||
0:0:0:0:0:0:0:1 - - [11/Feb/2025:17:09:39 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5788
|
||||
0:0:0:0:0:0:0:1 - - [11/Feb/2025:17:32:17 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5782
|
|
@ -0,0 +1,37 @@
|
|||
127.0.0.1 - - [12/Feb/2025:13:52:19 +0800] "GET / HTTP/1.1" 404 648
|
||||
127.0.0.1 - - [12/Feb/2025:13:52:19 +0800] "GET /favicon.ico HTTP/1.1" 404 648
|
||||
127.0.0.1 - - [12/Feb/2025:13:52:29 +0800] "GET /favicon.ico HTTP/1.1" 404 648
|
||||
127.0.0.1 - - [12/Feb/2025:13:52:42 +0800] "GET /School-ST HTTP/1.1" 302 -
|
||||
127.0.0.1 - - [12/Feb/2025:13:52:42 +0800] "GET /School-ST/ HTTP/1.1" 404 714
|
||||
127.0.0.1 - - [12/Feb/2025:13:52:58 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5782
|
||||
127.0.0.1 - - [12/Feb/2025:13:53:05 +0800] "GET /School-ST/loadTeachers.jsp?college=%E6%99%BA%E8%83%BD%E5%B7%A5%E5%AD%A6%E9%99%A2 HTTP/1.1" 200 34
|
||||
127.0.0.1 - - [12/Feb/2025:13:53:05 +0800] "GET /School-ST/loadTeachers.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2 HTTP/1.1" 200 130
|
||||
127.0.0.1 - - [12/Feb/2025:13:54:50 +0800] "GET /School-ST/loadCourses.jsp?teacher=3 HTTP/1.1" 200 6
|
||||
127.0.0.1 - - [12/Feb/2025:13:54:51 +0800] "GET /School-ST/loadCourses.jsp?teacher=2 HTTP/1.1" 200 92
|
||||
127.0.0.1 - - [12/Feb/2025:13:54:52 +0800] "GET /School-ST/evaluationPage.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2&teacher=2&course=3 HTTP/1.1" 200 6302
|
||||
127.0.0.1 - - [12/Feb/2025:13:55:03 +0800] "GET /School-ST/loadTeachers.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2 HTTP/1.1" 200 130
|
||||
127.0.0.1 - - [12/Feb/2025:13:55:06 +0800] "GET /School-ST/loadTeachers.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2 HTTP/1.1" 200 130
|
||||
127.0.0.1 - - [12/Feb/2025:13:55:08 +0800] "GET /School-ST/loadTeachers.jsp?college=%E6%99%BA%E8%83%BD%E5%B7%A5%E5%AD%A6%E9%99%A2 HTTP/1.1" 200 34
|
||||
127.0.0.1 - - [12/Feb/2025:13:55:09 +0800] "GET /School-ST/loadTeachers.jsp?college=%E7%89%A9%E7%90%86%E5%AD%A6%E9%99%A2 HTTP/1.1" 200 4
|
||||
127.0.0.1 - - [12/Feb/2025:13:55:10 +0800] "GET /School-ST/loadTeachers.jsp?college=%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E5%AD%A6%E9%99%A2 HTTP/1.1" 200 130
|
||||
127.0.0.1 - - [12/Feb/2025:14:03:39 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5782
|
||||
127.0.0.1 - - [12/Feb/2025:14:03:45 +0800] "GET /School-ST/evaluationPage.jsp?college=&teacher=&course= HTTP/1.1" 200 6282
|
||||
127.0.0.1 - - [12/Feb/2025:14:03:58 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5782
|
||||
127.0.0.1 - - [12/Feb/2025:14:04:11 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5782
|
||||
127.0.0.1 - - [12/Feb/2025:14:04:38 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5782
|
||||
127.0.0.1 - - [12/Feb/2025:14:04:38 +0800] "GET /favicon.ico HTTP/1.1" 404 648
|
||||
127.0.0.1 - - [12/Feb/2025:14:04:41 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5782
|
||||
127.0.0.1 - - [12/Feb/2025:14:04:50 +0800] "GET /School-ST/evaluationPage.jsp?college=&teacher=&course= HTTP/1.1" 200 6282
|
||||
127.0.0.1 - - [12/Feb/2025:14:05:36 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5782
|
||||
127.0.0.1 - - [12/Feb/2025:14:05:39 +0800] "GET /School-ST/evaluationPage.jsp?college=&teacher=&course= HTTP/1.1" 200 6282
|
||||
127.0.0.1 - - [12/Feb/2025:14:05:55 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5758
|
||||
127.0.0.1 - - [12/Feb/2025:14:06:11 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5758
|
||||
127.0.0.1 - - [12/Feb/2025:14:06:11 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5758
|
||||
127.0.0.1 - - [12/Feb/2025:14:06:25 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5758
|
||||
127.0.0.1 - - [12/Feb/2025:14:06:34 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5758
|
||||
127.0.0.1 - - [12/Feb/2025:14:06:48 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5809
|
||||
127.0.0.1 - - [12/Feb/2025:14:06:55 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5809
|
||||
127.0.0.1 - - [12/Feb/2025:14:07:11 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5760
|
||||
127.0.0.1 - - [12/Feb/2025:14:08:05 +0800] "GET /School-ST/evaluate.jsp HTTP/1.1" 200 5788
|
||||
127.0.0.1 - - [12/Feb/2025:14:08:37 +0800] "GET /School-ST/admin.jsp HTTP/1.1" 200 1332
|
||||
127.0.0.1 - - [12/Feb/2025:14:08:55 +0800] "GET /School-ST/admin.jsp HTTP/1.1" 200 1332
|
|
@ -4,23 +4,61 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>管理员查看评教统计</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
.container {
|
||||
width: 80%;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
background-color: #fff;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
h1 {
|
||||
text-align: center;
|
||||
color: #333;
|
||||
}
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 20px;
|
||||
}
|
||||
th, td {
|
||||
padding: 12px;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
th {
|
||||
background-color: #4CAF50;
|
||||
color: white;
|
||||
}
|
||||
tr:hover {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1>评教统计</h1>
|
||||
<table border="1">
|
||||
<table>
|
||||
<tr>
|
||||
<th>老师姓名</th>
|
||||
<th>平均得分</th>
|
||||
</tr>
|
||||
<%
|
||||
try {
|
||||
Class.forName("com.mysql.jdbc.Driver");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
|
||||
String sql = "SELECT t.name, AVG(e.total_score) as avg_score FROM teachers t JOIN evaluations e ON t.teacher_id = e.teacher_id GROUP BY t.teacher_id";
|
||||
Statement stmt = conn.createStatement();
|
||||
ResultSet rs = stmt.executeQuery(sql);
|
||||
while (rs.next()) {
|
||||
out.println("<tr><td>" + rs.getString("name") + "</td><td>" + rs.getDouble("avg_score") + "</td></tr>");
|
||||
try {//加载数据库驱动
|
||||
Class.forName("com.mysql.cj.jdbc.Driver");//连接数据库
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "SchoolST", "123456");//查询语句
|
||||
String sql = "SELECT t.name, AVG(e.total_score) as avg_score FROM teachers t JOIN evaluations e ON t.teacher_id = e.teacher_id GROUP BY t.teacher_id";//创建Statement对象
|
||||
Statement stmt = conn.createStatement();//执行查询
|
||||
ResultSet rs = stmt.executeQuery(sql);//遍历结果集
|
||||
while (rs.next()) {//输出结果 //老师姓名 //平均得分
|
||||
out.println("<tr><td>" + rs.getString("name") + "</td><td>" + rs.getDouble("avg_score") + "</td></tr>");//关闭连接
|
||||
}
|
||||
rs.close();
|
||||
stmt.close();
|
||||
|
@ -30,5 +68,6 @@
|
|||
}
|
||||
%>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -3,82 +3,160 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>学生评教系统</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>学生评教系统</h1>
|
||||
<form id="evaluationForm" action="evaluationPage.jsp" method="get">
|
||||
<label for="college">选择学院:</label>
|
||||
<select id="college" name="college" onchange="loadTeachers()">
|
||||
<option value="">--请选择学院--</option>
|
||||
<option value="信息工程学院">信息工程学院</option>
|
||||
<option value="智能工学院">智能工学院</option>
|
||||
<option value="物理学院">物理学院</option>
|
||||
</select>
|
||||
|
||||
<label for="teacher">选择老师:</label>
|
||||
<select id="teacher" name="teacher" onchange="loadCourses()">
|
||||
<option value="">--请选择老师--</option>
|
||||
</select>
|
||||
|
||||
<label for="course">选择课程:</label>
|
||||
<select id="course" name="course">
|
||||
<option value="">--请选择课程--</option>
|
||||
</select>
|
||||
|
||||
<button type="submit">进入评教页面</button>
|
||||
</form>
|
||||
|
||||
<style>
|
||||
/* 全局样式 */
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
background-color: #f0f2f5;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
}
|
||||
h1 {
|
||||
text-align: center;
|
||||
color: #2c3e50;
|
||||
}
|
||||
.container {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
background: white;
|
||||
padding: 20px;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
text-align: center;
|
||||
}
|
||||
/* 表单样式 */
|
||||
.form-group {
|
||||
margin-bottom: 15px;
|
||||
text-align: left;
|
||||
}
|
||||
form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 15px;
|
||||
align-items: center;
|
||||
}
|
||||
label {
|
||||
font-weight: bold;
|
||||
color: #34495e;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
select {
|
||||
padding: 8px;
|
||||
border: 1px solid #bdc3c7;
|
||||
border-radius: 4px;
|
||||
outline: none;
|
||||
appearance: none;
|
||||
background-color: white;
|
||||
background-image: url('https://cdn.jsdelivr.net/gh/a854451261/cdn/icon/select-arrow.svg');
|
||||
background-repeat: no-repeat;
|
||||
background-position: right 8px center;
|
||||
background-size: 12px 8px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
width: calc(100% - 16px);
|
||||
}
|
||||
button {
|
||||
background: linear-gradient(#3498db, #2980b9);
|
||||
color: white;
|
||||
padding: 10px 20px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
transition: background 0.3s;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
button:hover {
|
||||
background: linear-gradient(#2980b9, #3498db);
|
||||
}
|
||||
/* 提示语 */
|
||||
.hint {
|
||||
color: #7f8c8d;
|
||||
font-size: 0.9em;
|
||||
margin-top: 10px;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
function loadTeachers() {
|
||||
var college = document.getElementById("college").value;
|
||||
// 动态加载老师和课程
|
||||
function loadTeachers(college) {
|
||||
const teachersSelect = document.getElementById("teacher");
|
||||
const courseSelect = document.getElementById("course");
|
||||
|
||||
if (college) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", "loadTeachers.jsp?college=" + college, true);
|
||||
xhr.onreadystatechange = function() {
|
||||
if (xhr.readyState == 4 && xhr.status == 200) {
|
||||
document.getElementById("teacher").innerHTML = xhr.responseText;
|
||||
}
|
||||
};
|
||||
xhr.send();
|
||||
fetch(`loadTeachers.jsp?college=${college}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
populateSelect(teachersSelect, data, "--请选择老师--");
|
||||
})
|
||||
.catch(error => {
|
||||
console.error("加载老师失败:", error);
|
||||
});
|
||||
} else {
|
||||
teachersSelect.innerHTML = "<option value=''>--请选择老师--</option>";
|
||||
courseSelect.innerHTML = "<option value=''>--请选择课程--</option>";
|
||||
}
|
||||
}
|
||||
function loadCourses() {
|
||||
var teacher = document.getElementById("teacher").value;
|
||||
|
||||
function loadCourses(teacher) {
|
||||
const courseSelect = document.getElementById("course");
|
||||
|
||||
if (teacher) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", "loadCourses.jsp?teacher=" + teacher, true);
|
||||
xhr.onreadystatechange = function() {
|
||||
if (xhr.readyState == 4 && xhr.status == 200) {
|
||||
console.log("Debug: Response from loadCourses.jsp: " + xhr.responseText); // 调试信息
|
||||
|
||||
try {
|
||||
var courses = JSON.parse(xhr.responseText);
|
||||
var courseSelect = document.getElementById("course");
|
||||
courseSelect.innerHTML = ""; // 清空课程选项
|
||||
|
||||
// 添加默认选项
|
||||
var defaultOption = document.createElement("option");
|
||||
defaultOption.value = "";
|
||||
defaultOption.text = "--请选择课程--";
|
||||
courseSelect.appendChild(defaultOption);
|
||||
|
||||
// 添加课程选项
|
||||
courses.forEach(function(course) {
|
||||
var option = document.createElement("option");
|
||||
option.value = course.course_id;
|
||||
option.text = course.course_name;
|
||||
courseSelect.appendChild(option);
|
||||
});
|
||||
} catch (e) {
|
||||
console.error("Debug: Error parsing JSON data: " + e.message); // 调试信息
|
||||
}
|
||||
} else {
|
||||
console.error("Debug: AJAX request failed with status: " + xhr.status); // 调试信息
|
||||
}
|
||||
};
|
||||
xhr.send();
|
||||
fetch(`loadCourses.jsp?teacher=${teacher}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
populateSelect(courseSelect, data, "--请选择课程--");
|
||||
})
|
||||
.catch(error => {
|
||||
console.error("加载课程失败:", error);
|
||||
});
|
||||
} else {
|
||||
courseSelect.innerHTML = "<option value=''>--请选择课程--</option>";
|
||||
}
|
||||
}
|
||||
|
||||
function populateSelect(selectElement, data, placeholder) {
|
||||
selectElement.innerHTML = "";
|
||||
const defaultOption = document.createElement("option");
|
||||
defaultOption.value = "";
|
||||
defaultOption.text = placeholder;
|
||||
selectElement.appendChild(defaultOption);
|
||||
|
||||
data.forEach(item => {
|
||||
const option = document.createElement("option");
|
||||
option.value = item.value || item.course_id;
|
||||
option.text = item.text || item.course_name;
|
||||
selectElement.appendChild(option);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1>学生评教系统</h1>
|
||||
<form id="evaluationForm" action="evaluationPage.jsp" method="get">
|
||||
<div class="form-group">
|
||||
<label for="college">选择学院:</label>
|
||||
<select id="college" name="college" onchange="loadTeachers(this.value)">
|
||||
<option value="">--请选择学院--</option>
|
||||
<option value="信息工程学院">信息工程学院</option>
|
||||
<option value="智能工学院">智能工学院</option>
|
||||
<option value="物理学院">物理学院</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="teacher">选择老师:</label>
|
||||
<select id="teacher" name="teacher" onchange="loadCourses(this.value)">
|
||||
<option value="">--请选择老师--</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="course">选择课程:</label>
|
||||
<select id="course" name="course">
|
||||
<option value="">--请选择课程--</option>
|
||||
</select>
|
||||
</div>
|
||||
<button type="submit">进入评教页面</button>
|
||||
</form>
|
||||
<div class="hint">请选择学院、老师以及课程,然后进入评教页面。</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,27 +1,25 @@
|
|||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||
<%@ page import="java.sql.*, org.json.JSONArray, org.json.JSONObject" %>
|
||||
<%
|
||||
// 获取选择的学院、老师和课程
|
||||
String college = request.getParameter("college");
|
||||
String teacher = request.getParameter("teacher");
|
||||
String course = request.getParameter("course");
|
||||
|
||||
if (college == null || teacher == null || course == null) {
|
||||
response.sendRedirect("evaluate.jsp"); // 如果参数缺失,跳回选择页面
|
||||
response.sendRedirect("evaluation.jsp");
|
||||
return;
|
||||
}
|
||||
|
||||
// 查询所有维度和题目
|
||||
JSONArray dimensions = new JSONArray();
|
||||
int totalQuestionCount = 0; // 总题目数量
|
||||
int totalQuestionCount = 0;
|
||||
try {
|
||||
Class.forName("com.mysql.cj.jdbc.Driver");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "SchoolST", "123456");
|
||||
|
||||
String sql = "SELECT d.dimension_id, d.name AS dimension_name, d.weight, q.question_id, q.question_text " +
|
||||
"FROM dimensions d " +
|
||||
"JOIN questions q ON d.dimension_id = q.dimension_id " +
|
||||
"ORDER BY d.dimension_id, q.question_id";
|
||||
"FROM dimensions d " +
|
||||
"JOIN questions q ON d.dimension_id = q.dimension_id " +
|
||||
"ORDER BY d.dimension_id, q.question_id";
|
||||
Statement stmt = conn.createStatement();
|
||||
ResultSet rs = stmt.executeQuery(sql);
|
||||
|
||||
|
@ -31,7 +29,6 @@
|
|||
while (rs.next()) {
|
||||
int dimensionId = rs.getInt("dimension_id");
|
||||
if (dimensionId != lastDimensionId) {
|
||||
// 新维度
|
||||
if (currentDimension != null) {
|
||||
dimensions.put(currentDimension);
|
||||
}
|
||||
|
@ -43,17 +40,14 @@
|
|||
lastDimensionId = dimensionId;
|
||||
}
|
||||
|
||||
// 添加题目
|
||||
JSONObject question = new JSONObject();
|
||||
question.put("question_id", rs.getInt("question_id"));
|
||||
question.put("question_text", rs.getString("question_text"));
|
||||
currentDimension.getJSONArray("questions").put(question);
|
||||
|
||||
// 统计总题目数量
|
||||
totalQuestionCount++;
|
||||
}
|
||||
|
||||
// 添加最后一个维度
|
||||
if (currentDimension != null) {
|
||||
dimensions.put(currentDimension);
|
||||
}
|
||||
|
@ -70,7 +64,6 @@
|
|||
<head>
|
||||
<title>评教页面</title>
|
||||
<style>
|
||||
/* 表格样式 */
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
|
@ -96,60 +89,57 @@
|
|||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>评教页面</h1>
|
||||
<form action="submitEvaluation.jsp" method="post" onsubmit="return validateForm()" >
|
||||
<input type="hidden" name="college" value="<%= college %>">
|
||||
<input type="hidden" name="teacher" value="<%= teacher %>">
|
||||
<input type="hidden" name="course" value="<%= course %>">
|
||||
<h1>评教页面</h1>
|
||||
<form action="submitEvaluation.jsp" method="post" onsubmit="return validateForm()">
|
||||
<input type="hidden" name="college" value="<%= college %>">
|
||||
<input type="hidden" name="teacher" value="<%= teacher %>">
|
||||
<input type="hidden" name="course" value="<%= course %>">
|
||||
|
||||
<%
|
||||
// 渲染每个维度的题目表格
|
||||
for (int i = 0; i < dimensions.length(); i++) {
|
||||
JSONObject dimension = dimensions.getJSONObject(i);
|
||||
out.println("<div class='dimension-title'>" + dimension.getString("dimension_name") + "(权重:" + dimension.getFloat("weight") + "%)</div>");
|
||||
out.println("<table>");
|
||||
out.println("<thead><tr><th>题目</th><th>符合</th><th>不符合</th></tr></thead>");
|
||||
out.println("<tbody>");
|
||||
<%
|
||||
for (int i = 0; i < dimensions.length(); i++) {
|
||||
JSONObject dimension = dimensions.getJSONObject(i);
|
||||
out.println("<div class='dimension-title'>" + dimension.getString("dimension_name") + "(权重:" + dimension.getFloat("weight") + "%)</div>");
|
||||
out.println("<table>");
|
||||
out.println("<thead><tr><th>题目</th><th>符合</th><th>不符合</th></tr></thead>");
|
||||
out.println("<tbody>");
|
||||
|
||||
JSONArray questions = dimension.getJSONArray("questions");
|
||||
for (int j = 0; j < questions.length(); j++) {
|
||||
JSONObject question = questions.getJSONObject(j);
|
||||
out.println("<tr>");
|
||||
out.println("<td class='question-text'>" + question.getString("question_text") + "</td>");
|
||||
out.println("<td><input type='radio' name='question_" + question.getInt("question_id") + "' value='1' required></td>");
|
||||
out.println("<td><input type='radio' name='question_" + question.getInt("question_id") + "' value='0' required></td>");
|
||||
out.println("</tr>");
|
||||
}
|
||||
|
||||
out.println("</tbody></table>");
|
||||
JSONArray questions = dimension.getJSONArray("questions");
|
||||
for (int j = 0; j < questions.length(); j++) {
|
||||
JSONObject question = questions.getJSONObject(j);
|
||||
out.println("<tr>");
|
||||
out.println("<td class='question-text'>" + question.getString("question_text") + "</td>");
|
||||
out.println("<td><input type='radio' name='question_" + question.getInt("question_id") + "' value='1' required></td>");
|
||||
out.println("<td><input type='radio' name='question_" + question.getInt("question_id") + "' value='0' required></td>");
|
||||
out.println("</tr>");
|
||||
}
|
||||
%>
|
||||
|
||||
<button type="submit">提交评价</button>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
// 总题目数量(从后端传递)
|
||||
const totalQuestionCount = <%= totalQuestionCount %>;
|
||||
|
||||
function validateForm() {
|
||||
const allQuestions = document.querySelectorAll("input[type='radio']");
|
||||
const answered = new Set();
|
||||
|
||||
// 检查每个题目的单选按钮是否被选中
|
||||
allQuestions.forEach(input => {
|
||||
if (input.checked) {
|
||||
const questionId = input.name.replace("question_", "");
|
||||
answered.add(questionId);
|
||||
}
|
||||
});
|
||||
|
||||
if (answered.size !== totalQuestionCount) {
|
||||
alert("请完成所有题目的评价后再提交!");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
out.println("</tbody></table>");
|
||||
}
|
||||
</script>
|
||||
%>
|
||||
|
||||
<button type="submit">提交评价</button>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
const totalQuestionCount = <%= totalQuestionCount %>;
|
||||
|
||||
function validateForm() {
|
||||
const allQuestions = document.querySelectorAll("input[type='radio']");
|
||||
const answered = new Set();
|
||||
|
||||
allQuestions.forEach(input => {
|
||||
if (input.checked) {
|
||||
const questionId = input.name.replace("question_", "");
|
||||
answered.add(questionId);
|
||||
}
|
||||
});
|
||||
|
||||
if (answered.size !== totalQuestionCount) {
|
||||
alert("请完成所有题目的评价后再提交!");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,72 @@
|
|||
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||
<%@ page import="java.sql.*" %>
|
||||
<%
|
||||
// 数据库连接信息
|
||||
String url = "jdbc:mysql://localhost:3306/test";
|
||||
String user = "SchoolST";
|
||||
String password = "123456";
|
||||
|
||||
// 创建表的 SQL 语句
|
||||
String createTablesSQL = ""
|
||||
+ "CREATE TABLE IF NOT EXISTS teachers ("
|
||||
+ " teacher_id INT AUTO_INCREMENT PRIMARY KEY, "
|
||||
+ " name VARCHAR(255) NOT NULL, "
|
||||
+ " college VARCHAR(255) NOT NULL"
|
||||
+ ");"
|
||||
|
||||
+ "CREATE TABLE IF NOT EXISTS courses ("
|
||||
+ " course_id INT AUTO_INCREMENT PRIMARY KEY, "
|
||||
+ " course_name VARCHAR(255) NOT NULL, "
|
||||
+ " teacher_id INT, "
|
||||
+ " FOREIGN KEY (teacher_id) REFERENCES teachers(teacher_id)"
|
||||
+ ");"
|
||||
|
||||
+ "CREATE TABLE IF NOT EXISTS dimensions ("
|
||||
+ " dimension_id INT AUTO_INCREMENT PRIMARY KEY, "
|
||||
+ " name VARCHAR(255) NOT NULL, "
|
||||
+ " weight FLOAT NOT NULL"
|
||||
+ ");"
|
||||
|
||||
+ "CREATE TABLE IF NOT EXISTS questions ("
|
||||
+ " question_id INT AUTO_INCREMENT PRIMARY KEY, "
|
||||
+ " question_text VARCHAR(255) NOT NULL, "
|
||||
+ " dimension_id INT, "
|
||||
+ " FOREIGN KEY (dimension_id) REFERENCES dimensions(dimension_id)"
|
||||
+ ");"
|
||||
|
||||
+ "CREATE TABLE IF NOT EXISTS evaluations ("
|
||||
+ " evaluation_id INT AUTO_INCREMENT PRIMARY KEY, "
|
||||
+ " student_id VARCHAR(255) NOT NULL, "
|
||||
+ " teacher_id INT, "
|
||||
+ " course_id INT, "
|
||||
+ " total_score FLOAT, "
|
||||
+ " FOREIGN KEY (teacher_id) REFERENCES teachers(teacher_id), "
|
||||
+ " FOREIGN KEY (course_id) REFERENCES courses(course_id)"
|
||||
+ ");"
|
||||
|
||||
+ "CREATE TABLE IF NOT EXISTS evaluation_answers ("
|
||||
+ " answer_id INT AUTO_INCREMENT PRIMARY KEY, "
|
||||
+ " evaluation_id INT, "
|
||||
+ " question_id INT, "
|
||||
+ " answer VARCHAR(255), "
|
||||
+ " FOREIGN KEY (evaluation_id) REFERENCES evaluations(evaluation_id), "
|
||||
+ " FOREIGN KEY (question_id) REFERENCES questions(question_id)"
|
||||
+ ");";
|
||||
|
||||
try {
|
||||
// 加载数据库驱动
|
||||
Class.forName("com.mysql.cj.jdbc.Driver");
|
||||
// 建立连接
|
||||
Connection conn = DriverManager.getConnection(url, user, password);
|
||||
|
||||
// 执行创建表的 SQL 语句
|
||||
Statement stmt = conn.createStatement();
|
||||
stmt.execute(createTablesSQL);
|
||||
|
||||
// 输出调试信息
|
||||
out.println("数据库表初始化成功!");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
out.println("数据库表初始化失败:" + e.getMessage());
|
||||
}
|
||||
%>
|
|
@ -7,7 +7,7 @@
|
|||
if (teacherId != null && !teacherId.isEmpty()) {
|
||||
try {
|
||||
Class.forName("com.mysql.cj.jdbc.Driver");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "SchoolST", "123456");
|
||||
String sql = "SELECT * FROM courses WHERE teacher_id = ?";
|
||||
PreparedStatement pstmt = conn.prepareStatement(sql);
|
||||
pstmt.setString(1, teacherId);
|
||||
|
@ -28,5 +28,5 @@
|
|||
}
|
||||
}
|
||||
|
||||
out.print(courses.toString()); // 输出 JSON 数据
|
||||
out.print(courses.toString());
|
||||
%>
|
|
@ -3,7 +3,7 @@
|
|||
<%
|
||||
try {
|
||||
Class.forName("com.mysql.cj.jdbc.Driver");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "SchoolST", "123456");
|
||||
|
||||
// 查询所有维度和题目
|
||||
String sql = "SELECT d.dimension_id, d.name AS dimension_name, d.weight, q.question_id, q.question_text " +
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
if (college != null && !college.isEmpty()) {
|
||||
try {
|
||||
Class.forName("com.mysql.cj.jdbc.Driver");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "SchoolST", "123456");
|
||||
String sql = "SELECT * FROM teachers WHERE college = ?";
|
||||
PreparedStatement pstmt = conn.prepareStatement(sql);
|
||||
pstmt.setString(1, college);
|
||||
|
|
|
@ -8,13 +8,12 @@
|
|||
if (teacherId != null && courseId != null) {
|
||||
try {
|
||||
Class.forName("com.mysql.cj.jdbc.Driver");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "SchoolST", "123456");
|
||||
|
||||
// 1. 查询每个维度的权重和题目数量
|
||||
String sql = "SELECT d.dimension_id, d.weight, COUNT(q.question_id) AS question_count " +
|
||||
"FROM dimensions d " +
|
||||
"LEFT JOIN questions q ON d.dimension_id = q.dimension_id " +
|
||||
"GROUP BY d.dimension_id";
|
||||
"FROM dimensions d " +
|
||||
"LEFT JOIN questions q ON d.dimension_id = q.dimension_id " +
|
||||
"GROUP BY d.dimension_id";
|
||||
Statement stmt = conn.createStatement();
|
||||
ResultSet rs = stmt.executeQuery(sql);
|
||||
|
||||
|
@ -28,7 +27,6 @@
|
|||
rs.close();
|
||||
stmt.close();
|
||||
|
||||
// 2. 查询每个题目所属的维度
|
||||
Map<Integer, Integer> questionToDimension = new HashMap<>();
|
||||
sql = "SELECT question_id, dimension_id FROM questions";
|
||||
stmt = conn.createStatement();
|
||||
|
@ -39,7 +37,6 @@
|
|||
rs.close();
|
||||
stmt.close();
|
||||
|
||||
// 3. 计算每个维度的得分总和
|
||||
Map<Integer, Float> dimensionScores = new HashMap<>();
|
||||
for (String paramName : request.getParameterMap().keySet()) {
|
||||
if (paramName.startsWith("question_")) {
|
||||
|
@ -52,7 +49,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
// 4. 按权重和题目数量计算总分
|
||||
float totalScore = 0;
|
||||
for (Map.Entry<Integer, Float> entry : dimensionScores.entrySet()) {
|
||||
int dimensionId = entry.getKey();
|
||||
|
@ -60,12 +56,10 @@
|
|||
float weight = dimensionWeights.get(dimensionId);
|
||||
int questionCount = dimensionQuestionCounts.get(dimensionId);
|
||||
|
||||
// 关键修正:按实际题目数量计算得分
|
||||
float dimensionScore = (scoreSum / questionCount) * (weight / 100) * 100;
|
||||
totalScore += dimensionScore;
|
||||
}
|
||||
|
||||
// 5. 插入评价记录
|
||||
sql = "INSERT INTO evaluations (student_id, teacher_id, course_id, total_score) VALUES (?, ?, ?, ?)";
|
||||
PreparedStatement pstmt = conn.prepareStatement(sql);
|
||||
pstmt.setString(1, studentId);
|
||||
|
@ -75,10 +69,7 @@
|
|||
pstmt.executeUpdate();
|
||||
pstmt.close();
|
||||
|
||||
// 6. 插入每个题目的选择(略,同之前代码)
|
||||
|
||||
conn.close();
|
||||
//out.println("提交成功!总得分:" + totalScore);
|
||||
out.println("提交成功!");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,211 @@
|
|||
/*
|
||||
* Generated by the Jasper component of Apache Tomcat
|
||||
* Version: Apache Tomcat/9.0.98
|
||||
* Generated at: 2025-02-12 06:08:37 UTC
|
||||
* Note: The last modified time of this file was set to
|
||||
* the last modified time of the source file after
|
||||
* generation to assist with modification tracking.
|
||||
*/
|
||||
package org.apache.jsp;
|
||||
|
||||
import javax.servlet.*;
|
||||
import javax.servlet.http.*;
|
||||
import javax.servlet.jsp.*;
|
||||
import java.sql.*;
|
||||
|
||||
public final class admin_jsp extends org.apache.jasper.runtime.HttpJspBase
|
||||
implements org.apache.jasper.runtime.JspSourceDependent,
|
||||
org.apache.jasper.runtime.JspSourceImports {
|
||||
|
||||
private static final javax.servlet.jsp.JspFactory _jspxFactory =
|
||||
javax.servlet.jsp.JspFactory.getDefaultFactory();
|
||||
|
||||
private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;
|
||||
|
||||
private static final java.util.Set<java.lang.String> _jspx_imports_packages;
|
||||
|
||||
private static final java.util.Set<java.lang.String> _jspx_imports_classes;
|
||||
|
||||
static {
|
||||
_jspx_imports_packages = new java.util.LinkedHashSet<>(6);
|
||||
_jspx_imports_packages.add("java.sql");
|
||||
_jspx_imports_packages.add("javax.servlet");
|
||||
_jspx_imports_packages.add("javax.servlet.http");
|
||||
_jspx_imports_packages.add("javax.servlet.jsp");
|
||||
_jspx_imports_classes = null;
|
||||
}
|
||||
|
||||
private volatile javax.el.ExpressionFactory _el_expressionfactory;
|
||||
private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;
|
||||
|
||||
public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
|
||||
return _jspx_dependants;
|
||||
}
|
||||
|
||||
public java.util.Set<java.lang.String> getPackageImports() {
|
||||
return _jspx_imports_packages;
|
||||
}
|
||||
|
||||
public java.util.Set<java.lang.String> getClassImports() {
|
||||
return _jspx_imports_classes;
|
||||
}
|
||||
|
||||
public javax.el.ExpressionFactory _jsp_getExpressionFactory() {
|
||||
if (_el_expressionfactory == null) {
|
||||
synchronized (this) {
|
||||
if (_el_expressionfactory == null) {
|
||||
_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
|
||||
}
|
||||
}
|
||||
}
|
||||
return _el_expressionfactory;
|
||||
}
|
||||
|
||||
public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {
|
||||
if (_jsp_instancemanager == null) {
|
||||
synchronized (this) {
|
||||
if (_jsp_instancemanager == null) {
|
||||
_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
|
||||
}
|
||||
}
|
||||
}
|
||||
return _jsp_instancemanager;
|
||||
}
|
||||
|
||||
public void _jspInit() {
|
||||
}
|
||||
|
||||
public void _jspDestroy() {
|
||||
}
|
||||
|
||||
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
|
||||
throws java.io.IOException, javax.servlet.ServletException {
|
||||
|
||||
if (!javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {
|
||||
final java.lang.String _jspx_method = request.getMethod();
|
||||
if ("OPTIONS".equals(_jspx_method)) {
|
||||
response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
|
||||
return;
|
||||
}
|
||||
if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method)) {
|
||||
response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
|
||||
response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final javax.servlet.jsp.PageContext pageContext;
|
||||
javax.servlet.http.HttpSession session = null;
|
||||
final javax.servlet.ServletContext application;
|
||||
final javax.servlet.ServletConfig config;
|
||||
javax.servlet.jsp.JspWriter out = null;
|
||||
final java.lang.Object page = this;
|
||||
javax.servlet.jsp.JspWriter _jspx_out = null;
|
||||
javax.servlet.jsp.PageContext _jspx_page_context = null;
|
||||
|
||||
|
||||
try {
|
||||
response.setContentType("text/html; charset=UTF-8");
|
||||
pageContext = _jspxFactory.getPageContext(this, request, response,
|
||||
null, true, 8192, true);
|
||||
_jspx_page_context = pageContext;
|
||||
application = pageContext.getServletContext();
|
||||
config = pageContext.getServletConfig();
|
||||
session = pageContext.getSession();
|
||||
out = pageContext.getOut();
|
||||
_jspx_out = out;
|
||||
|
||||
out.write("\r\n");
|
||||
out.write("\r\n");
|
||||
out.write("<!DOCTYPE html>\r\n");
|
||||
out.write("<html>\r\n");
|
||||
out.write("<head>\r\n");
|
||||
out.write(" <title>管理员查看评教统计</title>\r\n");
|
||||
out.write(" <style>\r\n");
|
||||
out.write(" body {\r\n");
|
||||
out.write(" font-family: Arial, sans-serif;\r\n");
|
||||
out.write(" margin: 0;\r\n");
|
||||
out.write(" padding: 0;\r\n");
|
||||
out.write(" background-color: #f4f4f4;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" .container {\r\n");
|
||||
out.write(" width: 80%;\r\n");
|
||||
out.write(" margin: 0 auto;\r\n");
|
||||
out.write(" padding: 20px;\r\n");
|
||||
out.write(" background-color: #fff;\r\n");
|
||||
out.write(" border-radius: 8px;\r\n");
|
||||
out.write(" box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" h1 {\r\n");
|
||||
out.write(" text-align: center;\r\n");
|
||||
out.write(" color: #333;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" table {\r\n");
|
||||
out.write(" width: 100%;\r\n");
|
||||
out.write(" border-collapse: collapse;\r\n");
|
||||
out.write(" margin-top: 20px;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" th, td {\r\n");
|
||||
out.write(" padding: 12px;\r\n");
|
||||
out.write(" text-align: left;\r\n");
|
||||
out.write(" border-bottom: 1px solid #ddd;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" th {\r\n");
|
||||
out.write(" background-color: #4CAF50;\r\n");
|
||||
out.write(" color: white;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" tr:hover {\r\n");
|
||||
out.write(" background-color: #f5f5f5;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" </style>\r\n");
|
||||
out.write("</head>\r\n");
|
||||
out.write("<body>\r\n");
|
||||
out.write("<div class=\"container\">\r\n");
|
||||
out.write(" <h1>评教统计</h1>\r\n");
|
||||
out.write(" <table>\r\n");
|
||||
out.write(" <tr>\r\n");
|
||||
out.write(" <th>老师姓名</th>\r\n");
|
||||
out.write(" <th>平均得分</th>\r\n");
|
||||
out.write(" </tr>\r\n");
|
||||
out.write(" ");
|
||||
|
||||
try {
|
||||
Class.forName("com.mysql.cj.jdbc.Driver");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "SchoolST", "123456");
|
||||
String sql = "SELECT t.name, AVG(e.total_score) as avg_score FROM teachers t JOIN evaluations e ON t.teacher_id = e.teacher_id GROUP BY t.teacher_id";
|
||||
Statement stmt = conn.createStatement();
|
||||
ResultSet rs = stmt.executeQuery(sql);
|
||||
while (rs.next()) {
|
||||
out.println("<tr><td>" + rs.getString("name") + "</td><td>" + rs.getDouble("avg_score") + "</td></tr>");
|
||||
}
|
||||
rs.close();
|
||||
stmt.close();
|
||||
conn.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
out.write("\r\n");
|
||||
out.write(" </table>\r\n");
|
||||
out.write("</div>\r\n");
|
||||
out.write("</body>\r\n");
|
||||
out.write("</html>");
|
||||
} catch (java.lang.Throwable t) {
|
||||
if (!(t instanceof javax.servlet.jsp.SkipPageException)){
|
||||
out = _jspx_out;
|
||||
if (out != null && out.getBufferSize() != 0)
|
||||
try {
|
||||
if (response.isCommitted()) {
|
||||
out.flush();
|
||||
} else {
|
||||
out.clearBuffer();
|
||||
}
|
||||
} catch (java.io.IOException e) {}
|
||||
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
|
||||
else throw new ServletException(t);
|
||||
}
|
||||
} finally {
|
||||
_jspxFactory.releasePageContext(_jspx_page_context);
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,302 @@
|
|||
/*
|
||||
* Generated by the Jasper component of Apache Tomcat
|
||||
* Version: Apache Tomcat/9.0.98
|
||||
* Generated at: 2025-02-12 06:08:05 UTC
|
||||
* Note: The last modified time of this file was set to
|
||||
* the last modified time of the source file after
|
||||
* generation to assist with modification tracking.
|
||||
*/
|
||||
package org.apache.jsp;
|
||||
|
||||
import javax.servlet.*;
|
||||
import javax.servlet.http.*;
|
||||
import javax.servlet.jsp.*;
|
||||
|
||||
public final class evaluate_jsp extends org.apache.jasper.runtime.HttpJspBase
|
||||
implements org.apache.jasper.runtime.JspSourceDependent,
|
||||
org.apache.jasper.runtime.JspSourceImports {
|
||||
|
||||
private static final javax.servlet.jsp.JspFactory _jspxFactory =
|
||||
javax.servlet.jsp.JspFactory.getDefaultFactory();
|
||||
|
||||
private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;
|
||||
|
||||
private static final java.util.Set<java.lang.String> _jspx_imports_packages;
|
||||
|
||||
private static final java.util.Set<java.lang.String> _jspx_imports_classes;
|
||||
|
||||
static {
|
||||
_jspx_imports_packages = new java.util.LinkedHashSet<>(4);
|
||||
_jspx_imports_packages.add("javax.servlet");
|
||||
_jspx_imports_packages.add("javax.servlet.http");
|
||||
_jspx_imports_packages.add("javax.servlet.jsp");
|
||||
_jspx_imports_classes = null;
|
||||
}
|
||||
|
||||
private volatile javax.el.ExpressionFactory _el_expressionfactory;
|
||||
private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;
|
||||
|
||||
public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
|
||||
return _jspx_dependants;
|
||||
}
|
||||
|
||||
public java.util.Set<java.lang.String> getPackageImports() {
|
||||
return _jspx_imports_packages;
|
||||
}
|
||||
|
||||
public java.util.Set<java.lang.String> getClassImports() {
|
||||
return _jspx_imports_classes;
|
||||
}
|
||||
|
||||
public javax.el.ExpressionFactory _jsp_getExpressionFactory() {
|
||||
if (_el_expressionfactory == null) {
|
||||
synchronized (this) {
|
||||
if (_el_expressionfactory == null) {
|
||||
_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
|
||||
}
|
||||
}
|
||||
}
|
||||
return _el_expressionfactory;
|
||||
}
|
||||
|
||||
public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {
|
||||
if (_jsp_instancemanager == null) {
|
||||
synchronized (this) {
|
||||
if (_jsp_instancemanager == null) {
|
||||
_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
|
||||
}
|
||||
}
|
||||
}
|
||||
return _jsp_instancemanager;
|
||||
}
|
||||
|
||||
public void _jspInit() {
|
||||
}
|
||||
|
||||
public void _jspDestroy() {
|
||||
}
|
||||
|
||||
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
|
||||
throws java.io.IOException, javax.servlet.ServletException {
|
||||
|
||||
if (!javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {
|
||||
final java.lang.String _jspx_method = request.getMethod();
|
||||
if ("OPTIONS".equals(_jspx_method)) {
|
||||
response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
|
||||
return;
|
||||
}
|
||||
if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method)) {
|
||||
response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
|
||||
response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final javax.servlet.jsp.PageContext pageContext;
|
||||
javax.servlet.http.HttpSession session = null;
|
||||
final javax.servlet.ServletContext application;
|
||||
final javax.servlet.ServletConfig config;
|
||||
javax.servlet.jsp.JspWriter out = null;
|
||||
final java.lang.Object page = this;
|
||||
javax.servlet.jsp.JspWriter _jspx_out = null;
|
||||
javax.servlet.jsp.PageContext _jspx_page_context = null;
|
||||
|
||||
|
||||
try {
|
||||
response.setContentType("text/html; charset=UTF-8");
|
||||
pageContext = _jspxFactory.getPageContext(this, request, response,
|
||||
null, true, 8192, true);
|
||||
_jspx_page_context = pageContext;
|
||||
application = pageContext.getServletContext();
|
||||
config = pageContext.getServletConfig();
|
||||
session = pageContext.getSession();
|
||||
out = pageContext.getOut();
|
||||
_jspx_out = out;
|
||||
|
||||
out.write("\r\n");
|
||||
out.write("<!DOCTYPE html>\r\n");
|
||||
out.write("<html>\r\n");
|
||||
out.write("<head>\r\n");
|
||||
out.write(" <title>学生评教系统</title>\r\n");
|
||||
out.write(" <style>\r\n");
|
||||
out.write(" /* 全局样式 */\r\n");
|
||||
out.write(" body {\r\n");
|
||||
out.write(" font-family: Arial, sans-serif;\r\n");
|
||||
out.write(" background-color: #f0f2f5;\r\n");
|
||||
out.write(" margin: 0;\r\n");
|
||||
out.write(" padding: 20px;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" h1 {\r\n");
|
||||
out.write(" text-align: center;\r\n");
|
||||
out.write(" color: #2c3e50;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" .container {\r\n");
|
||||
out.write(" max-width: 800px;\r\n");
|
||||
out.write(" margin: 0 auto;\r\n");
|
||||
out.write(" background: white;\r\n");
|
||||
out.write(" padding: 20px;\r\n");
|
||||
out.write(" border-radius: 10px;\r\n");
|
||||
out.write(" box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\r\n");
|
||||
out.write(" text-align: center;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" /* 表单样式 */\r\n");
|
||||
out.write(" .form-group {\r\n");
|
||||
out.write(" margin-bottom: 15px;\r\n");
|
||||
out.write(" text-align: left;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" form {\r\n");
|
||||
out.write(" display: flex;\r\n");
|
||||
out.write(" flex-direction: column;\r\n");
|
||||
out.write(" gap: 15px;\r\n");
|
||||
out.write(" align-items: center;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" label {\r\n");
|
||||
out.write(" font-weight: bold;\r\n");
|
||||
out.write(" color: #34495e;\r\n");
|
||||
out.write(" margin-bottom: 5px;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" select {\r\n");
|
||||
out.write(" padding: 8px;\r\n");
|
||||
out.write(" border: 1px solid #bdc3c7;\r\n");
|
||||
out.write(" border-radius: 4px;\r\n");
|
||||
out.write(" outline: none;\r\n");
|
||||
out.write(" appearance: none;\r\n");
|
||||
out.write(" background-color: white;\r\n");
|
||||
out.write(" background-image: url('https://cdn.jsdelivr.net/gh/a854451261/cdn/icon/select-arrow.svg');\r\n");
|
||||
out.write(" background-repeat: no-repeat;\r\n");
|
||||
out.write(" background-position: right 8px center;\r\n");
|
||||
out.write(" background-size: 12px 8px;\r\n");
|
||||
out.write(" text-align: center;\r\n");
|
||||
out.write(" cursor: pointer;\r\n");
|
||||
out.write(" width: calc(100% - 16px);\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" button {\r\n");
|
||||
out.write(" background: linear-gradient(#3498db, #2980b9);\r\n");
|
||||
out.write(" color: white;\r\n");
|
||||
out.write(" padding: 10px 20px;\r\n");
|
||||
out.write(" border: none;\r\n");
|
||||
out.write(" border-radius: 5px;\r\n");
|
||||
out.write(" cursor: pointer;\r\n");
|
||||
out.write(" transition: background 0.3s;\r\n");
|
||||
out.write(" box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" button:hover {\r\n");
|
||||
out.write(" background: linear-gradient(#2980b9, #3498db);\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" /* 提示语 */\r\n");
|
||||
out.write(" .hint {\r\n");
|
||||
out.write(" color: #7f8c8d;\r\n");
|
||||
out.write(" font-size: 0.9em;\r\n");
|
||||
out.write(" margin-top: 10px;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" </style>\r\n");
|
||||
out.write(" <script>\r\n");
|
||||
out.write(" // 动态加载老师和课程\r\n");
|
||||
out.write(" function loadTeachers(college) {\r\n");
|
||||
out.write(" const teachersSelect = document.getElementById(\"teacher\");\r\n");
|
||||
out.write(" const courseSelect = document.getElementById(\"course\");\r\n");
|
||||
out.write("\r\n");
|
||||
out.write(" if (college) {\r\n");
|
||||
out.write(" fetch(`loadTeachers.jsp?college=");
|
||||
out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${college}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));
|
||||
out.write("`)\r\n");
|
||||
out.write(" .then(response => response.json())\r\n");
|
||||
out.write(" .then(data => {\r\n");
|
||||
out.write(" populateSelect(teachersSelect, data, \"--请选择老师--\");\r\n");
|
||||
out.write(" })\r\n");
|
||||
out.write(" .catch(error => {\r\n");
|
||||
out.write(" console.error(\"加载老师失败:\", error);\r\n");
|
||||
out.write(" });\r\n");
|
||||
out.write(" } else {\r\n");
|
||||
out.write(" teachersSelect.innerHTML = \"<option value=''>--请选择老师--</option>\";\r\n");
|
||||
out.write(" courseSelect.innerHTML = \"<option value=''>--请选择课程--</option>\";\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write("\r\n");
|
||||
out.write(" function loadCourses(teacher) {\r\n");
|
||||
out.write(" const courseSelect = document.getElementById(\"course\");\r\n");
|
||||
out.write("\r\n");
|
||||
out.write(" if (teacher) {\r\n");
|
||||
out.write(" fetch(`loadCourses.jsp?teacher=");
|
||||
out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${teacher}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));
|
||||
out.write("`)\r\n");
|
||||
out.write(" .then(response => response.json())\r\n");
|
||||
out.write(" .then(data => {\r\n");
|
||||
out.write(" populateSelect(courseSelect, data, \"--请选择课程--\");\r\n");
|
||||
out.write(" })\r\n");
|
||||
out.write(" .catch(error => {\r\n");
|
||||
out.write(" console.error(\"加载课程失败:\", error);\r\n");
|
||||
out.write(" });\r\n");
|
||||
out.write(" } else {\r\n");
|
||||
out.write(" courseSelect.innerHTML = \"<option value=''>--请选择课程--</option>\";\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write("\r\n");
|
||||
out.write(" function populateSelect(selectElement, data, placeholder) {\r\n");
|
||||
out.write(" selectElement.innerHTML = \"\";\r\n");
|
||||
out.write(" const defaultOption = document.createElement(\"option\");\r\n");
|
||||
out.write(" defaultOption.value = \"\";\r\n");
|
||||
out.write(" defaultOption.text = placeholder;\r\n");
|
||||
out.write(" selectElement.appendChild(defaultOption);\r\n");
|
||||
out.write("\r\n");
|
||||
out.write(" data.forEach(item => {\r\n");
|
||||
out.write(" const option = document.createElement(\"option\");\r\n");
|
||||
out.write(" option.value = item.value || item.course_id;\r\n");
|
||||
out.write(" option.text = item.text || item.course_name;\r\n");
|
||||
out.write(" selectElement.appendChild(option);\r\n");
|
||||
out.write(" });\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" </script>\r\n");
|
||||
out.write("</head>\r\n");
|
||||
out.write("<body>\r\n");
|
||||
out.write("<div class=\"container\">\r\n");
|
||||
out.write(" <h1>学生评教系统</h1>\r\n");
|
||||
out.write(" <form id=\"evaluationForm\" action=\"evaluationPage.jsp\" method=\"get\">\r\n");
|
||||
out.write(" <div class=\"form-group\">\r\n");
|
||||
out.write(" <label for=\"college\">选择学院:</label>\r\n");
|
||||
out.write(" <select id=\"college\" name=\"college\" onchange=\"loadTeachers(this.value)\">\r\n");
|
||||
out.write(" <option value=\"\">--请选择学院--</option>\r\n");
|
||||
out.write(" <option value=\"信息工程学院\">信息工程学院</option>\r\n");
|
||||
out.write(" <option value=\"智能工学院\">智能工学院</option>\r\n");
|
||||
out.write(" <option value=\"物理学院\">物理学院</option>\r\n");
|
||||
out.write(" </select>\r\n");
|
||||
out.write(" </div>\r\n");
|
||||
out.write(" <div class=\"form-group\">\r\n");
|
||||
out.write(" <label for=\"teacher\">选择老师:</label>\r\n");
|
||||
out.write(" <select id=\"teacher\" name=\"teacher\" onchange=\"loadCourses(this.value)\">\r\n");
|
||||
out.write(" <option value=\"\">--请选择老师--</option>\r\n");
|
||||
out.write(" </select>\r\n");
|
||||
out.write(" </div>\r\n");
|
||||
out.write(" <div class=\"form-group\">\r\n");
|
||||
out.write(" <label for=\"course\">选择课程:</label>\r\n");
|
||||
out.write(" <select id=\"course\" name=\"course\">\r\n");
|
||||
out.write(" <option value=\"\">--请选择课程--</option>\r\n");
|
||||
out.write(" </select>\r\n");
|
||||
out.write(" </div>\r\n");
|
||||
out.write(" <button type=\"submit\">进入评教页面</button>\r\n");
|
||||
out.write(" </form>\r\n");
|
||||
out.write(" <div class=\"hint\">请选择学院、老师以及课程,然后进入评教页面。</div>\r\n");
|
||||
out.write(" <div class=\"hint\">");
|
||||
out.write("</div>\r\n");
|
||||
out.write("</div>\r\n");
|
||||
out.write("</body>\r\n");
|
||||
out.write("</html>");
|
||||
} catch (java.lang.Throwable t) {
|
||||
if (!(t instanceof javax.servlet.jsp.SkipPageException)){
|
||||
out = _jspx_out;
|
||||
if (out != null && out.getBufferSize() != 0)
|
||||
try {
|
||||
if (response.isCommitted()) {
|
||||
out.flush();
|
||||
} else {
|
||||
out.clearBuffer();
|
||||
}
|
||||
} catch (java.io.IOException e) {}
|
||||
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
|
||||
else throw new ServletException(t);
|
||||
}
|
||||
} finally {
|
||||
_jspxFactory.releasePageContext(_jspx_page_context);
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,296 @@
|
|||
/*
|
||||
* Generated by the Jasper component of Apache Tomcat
|
||||
* Version: Apache Tomcat/9.0.98
|
||||
* Generated at: 2025-02-12 05:54:52 UTC
|
||||
* Note: The last modified time of this file was set to
|
||||
* the last modified time of the source file after
|
||||
* generation to assist with modification tracking.
|
||||
*/
|
||||
package org.apache.jsp;
|
||||
|
||||
import javax.servlet.*;
|
||||
import javax.servlet.http.*;
|
||||
import javax.servlet.jsp.*;
|
||||
import java.sql.*;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public final class evaluationPage_jsp extends org.apache.jasper.runtime.HttpJspBase
|
||||
implements org.apache.jasper.runtime.JspSourceDependent,
|
||||
org.apache.jasper.runtime.JspSourceImports {
|
||||
|
||||
private static final javax.servlet.jsp.JspFactory _jspxFactory =
|
||||
javax.servlet.jsp.JspFactory.getDefaultFactory();
|
||||
|
||||
private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;
|
||||
|
||||
private static final java.util.Set<java.lang.String> _jspx_imports_packages;
|
||||
|
||||
private static final java.util.Set<java.lang.String> _jspx_imports_classes;
|
||||
|
||||
static {
|
||||
_jspx_imports_packages = new java.util.LinkedHashSet<>(6);
|
||||
_jspx_imports_packages.add("java.sql");
|
||||
_jspx_imports_packages.add("javax.servlet");
|
||||
_jspx_imports_packages.add("javax.servlet.http");
|
||||
_jspx_imports_packages.add("javax.servlet.jsp");
|
||||
_jspx_imports_classes = new java.util.LinkedHashSet<>(3);
|
||||
_jspx_imports_classes.add("org.json.JSONObject");
|
||||
_jspx_imports_classes.add("org.json.JSONArray");
|
||||
}
|
||||
|
||||
private volatile javax.el.ExpressionFactory _el_expressionfactory;
|
||||
private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;
|
||||
|
||||
public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
|
||||
return _jspx_dependants;
|
||||
}
|
||||
|
||||
public java.util.Set<java.lang.String> getPackageImports() {
|
||||
return _jspx_imports_packages;
|
||||
}
|
||||
|
||||
public java.util.Set<java.lang.String> getClassImports() {
|
||||
return _jspx_imports_classes;
|
||||
}
|
||||
|
||||
public javax.el.ExpressionFactory _jsp_getExpressionFactory() {
|
||||
if (_el_expressionfactory == null) {
|
||||
synchronized (this) {
|
||||
if (_el_expressionfactory == null) {
|
||||
_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
|
||||
}
|
||||
}
|
||||
}
|
||||
return _el_expressionfactory;
|
||||
}
|
||||
|
||||
public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {
|
||||
if (_jsp_instancemanager == null) {
|
||||
synchronized (this) {
|
||||
if (_jsp_instancemanager == null) {
|
||||
_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
|
||||
}
|
||||
}
|
||||
}
|
||||
return _jsp_instancemanager;
|
||||
}
|
||||
|
||||
public void _jspInit() {
|
||||
}
|
||||
|
||||
public void _jspDestroy() {
|
||||
}
|
||||
|
||||
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
|
||||
throws java.io.IOException, javax.servlet.ServletException {
|
||||
|
||||
if (!javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {
|
||||
final java.lang.String _jspx_method = request.getMethod();
|
||||
if ("OPTIONS".equals(_jspx_method)) {
|
||||
response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
|
||||
return;
|
||||
}
|
||||
if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method)) {
|
||||
response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
|
||||
response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final javax.servlet.jsp.PageContext pageContext;
|
||||
javax.servlet.http.HttpSession session = null;
|
||||
final javax.servlet.ServletContext application;
|
||||
final javax.servlet.ServletConfig config;
|
||||
javax.servlet.jsp.JspWriter out = null;
|
||||
final java.lang.Object page = this;
|
||||
javax.servlet.jsp.JspWriter _jspx_out = null;
|
||||
javax.servlet.jsp.PageContext _jspx_page_context = null;
|
||||
|
||||
|
||||
try {
|
||||
response.setContentType("text/html; charset=UTF-8");
|
||||
pageContext = _jspxFactory.getPageContext(this, request, response,
|
||||
null, true, 8192, true);
|
||||
_jspx_page_context = pageContext;
|
||||
application = pageContext.getServletContext();
|
||||
config = pageContext.getServletConfig();
|
||||
session = pageContext.getSession();
|
||||
out = pageContext.getOut();
|
||||
_jspx_out = out;
|
||||
|
||||
out.write("\r\n");
|
||||
out.write("\r\n");
|
||||
|
||||
String college = request.getParameter("college");
|
||||
String teacher = request.getParameter("teacher");
|
||||
String course = request.getParameter("course");
|
||||
|
||||
if (college == null || teacher == null || course == null) {
|
||||
response.sendRedirect("evaluation.jsp");
|
||||
return;
|
||||
}
|
||||
|
||||
JSONArray dimensions = new JSONArray();
|
||||
int totalQuestionCount = 0;
|
||||
try {
|
||||
Class.forName("com.mysql.cj.jdbc.Driver");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "SchoolST", "123456");
|
||||
|
||||
String sql = "SELECT d.dimension_id, d.name AS dimension_name, d.weight, q.question_id, q.question_text " +
|
||||
"FROM dimensions d " +
|
||||
"JOIN questions q ON d.dimension_id = q.dimension_id " +
|
||||
"ORDER BY d.dimension_id, q.question_id";
|
||||
Statement stmt = conn.createStatement();
|
||||
ResultSet rs = stmt.executeQuery(sql);
|
||||
|
||||
JSONObject currentDimension = null;
|
||||
int lastDimensionId = -1;
|
||||
|
||||
while (rs.next()) {
|
||||
int dimensionId = rs.getInt("dimension_id");
|
||||
if (dimensionId != lastDimensionId) {
|
||||
if (currentDimension != null) {
|
||||
dimensions.put(currentDimension);
|
||||
}
|
||||
currentDimension = new JSONObject();
|
||||
currentDimension.put("dimension_id", dimensionId);
|
||||
currentDimension.put("dimension_name", rs.getString("dimension_name"));
|
||||
currentDimension.put("weight", rs.getFloat("weight"));
|
||||
currentDimension.put("questions", new JSONArray());
|
||||
lastDimensionId = dimensionId;
|
||||
}
|
||||
|
||||
JSONObject question = new JSONObject();
|
||||
question.put("question_id", rs.getInt("question_id"));
|
||||
question.put("question_text", rs.getString("question_text"));
|
||||
currentDimension.getJSONArray("questions").put(question);
|
||||
|
||||
totalQuestionCount++;
|
||||
}
|
||||
|
||||
if (currentDimension != null) {
|
||||
dimensions.put(currentDimension);
|
||||
}
|
||||
|
||||
rs.close();
|
||||
stmt.close();
|
||||
conn.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
out.write("\r\n");
|
||||
out.write("<!DOCTYPE html>\r\n");
|
||||
out.write("<html>\r\n");
|
||||
out.write("<head>\r\n");
|
||||
out.write(" <title>评教页面</title>\r\n");
|
||||
out.write(" <style>\r\n");
|
||||
out.write(" table {\r\n");
|
||||
out.write(" width: 100%;\r\n");
|
||||
out.write(" border-collapse: collapse;\r\n");
|
||||
out.write(" margin-bottom: 20px;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" th, td {\r\n");
|
||||
out.write(" padding: 10px;\r\n");
|
||||
out.write(" border: 1px solid #ddd;\r\n");
|
||||
out.write(" text-align: left;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" th {\r\n");
|
||||
out.write(" background-color: #f2f2f2;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" .dimension-title {\r\n");
|
||||
out.write(" font-size: 18px;\r\n");
|
||||
out.write(" font-weight: bold;\r\n");
|
||||
out.write(" margin-top: 20px;\r\n");
|
||||
out.write(" margin-bottom: 10px;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" .question-text {\r\n");
|
||||
out.write(" font-weight: normal;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" </style>\r\n");
|
||||
out.write("</head>\r\n");
|
||||
out.write("<body>\r\n");
|
||||
out.write("<h1>评教页面</h1>\r\n");
|
||||
out.write("<form action=\"submitEvaluation.jsp\" method=\"post\" onsubmit=\"return validateForm()\">\r\n");
|
||||
out.write(" <input type=\"hidden\" name=\"college\" value=\"");
|
||||
out.print( college );
|
||||
out.write("\">\r\n");
|
||||
out.write(" <input type=\"hidden\" name=\"teacher\" value=\"");
|
||||
out.print( teacher );
|
||||
out.write("\">\r\n");
|
||||
out.write(" <input type=\"hidden\" name=\"course\" value=\"");
|
||||
out.print( course );
|
||||
out.write("\">\r\n");
|
||||
out.write("\r\n");
|
||||
out.write(" ");
|
||||
|
||||
for (int i = 0; i < dimensions.length(); i++) {
|
||||
JSONObject dimension = dimensions.getJSONObject(i);
|
||||
out.println("<div class='dimension-title'>" + dimension.getString("dimension_name") + "(权重:" + dimension.getFloat("weight") + "%)</div>");
|
||||
out.println("<table>");
|
||||
out.println("<thead><tr><th>题目</th><th>符合</th><th>不符合</th></tr></thead>");
|
||||
out.println("<tbody>");
|
||||
|
||||
JSONArray questions = dimension.getJSONArray("questions");
|
||||
for (int j = 0; j < questions.length(); j++) {
|
||||
JSONObject question = questions.getJSONObject(j);
|
||||
out.println("<tr>");
|
||||
out.println("<td class='question-text'>" + question.getString("question_text") + "</td>");
|
||||
out.println("<td><input type='radio' name='question_" + question.getInt("question_id") + "' value='1' required></td>");
|
||||
out.println("<td><input type='radio' name='question_" + question.getInt("question_id") + "' value='0' required></td>");
|
||||
out.println("</tr>");
|
||||
}
|
||||
|
||||
out.println("</tbody></table>");
|
||||
}
|
||||
|
||||
out.write("\r\n");
|
||||
out.write("\r\n");
|
||||
out.write(" <button type=\"submit\">提交评价</button>\r\n");
|
||||
out.write("</form>\r\n");
|
||||
out.write("\r\n");
|
||||
out.write("<script>\r\n");
|
||||
out.write(" const totalQuestionCount = ");
|
||||
out.print( totalQuestionCount );
|
||||
out.write(";\r\n");
|
||||
out.write("\r\n");
|
||||
out.write(" function validateForm() {\r\n");
|
||||
out.write(" const allQuestions = document.querySelectorAll(\"input[type='radio']\");\r\n");
|
||||
out.write(" const answered = new Set();\r\n");
|
||||
out.write("\r\n");
|
||||
out.write(" allQuestions.forEach(input => {\r\n");
|
||||
out.write(" if (input.checked) {\r\n");
|
||||
out.write(" const questionId = input.name.replace(\"question_\", \"\");\r\n");
|
||||
out.write(" answered.add(questionId);\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" });\r\n");
|
||||
out.write("\r\n");
|
||||
out.write(" if (answered.size !== totalQuestionCount) {\r\n");
|
||||
out.write(" alert(\"请完成所有题目的评价后再提交!\");\r\n");
|
||||
out.write(" return false;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write(" return true;\r\n");
|
||||
out.write(" }\r\n");
|
||||
out.write("</script>\r\n");
|
||||
out.write("</body>\r\n");
|
||||
out.write("</html>");
|
||||
} catch (java.lang.Throwable t) {
|
||||
if (!(t instanceof javax.servlet.jsp.SkipPageException)){
|
||||
out = _jspx_out;
|
||||
if (out != null && out.getBufferSize() != 0)
|
||||
try {
|
||||
if (response.isCommitted()) {
|
||||
out.flush();
|
||||
} else {
|
||||
out.clearBuffer();
|
||||
}
|
||||
} catch (java.io.IOException e) {}
|
||||
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
|
||||
else throw new ServletException(t);
|
||||
}
|
||||
} finally {
|
||||
_jspxFactory.releasePageContext(_jspx_page_context);
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,172 @@
|
|||
/*
|
||||
* Generated by the Jasper component of Apache Tomcat
|
||||
* Version: Apache Tomcat/9.0.98
|
||||
* Generated at: 2025-02-12 05:54:50 UTC
|
||||
* Note: The last modified time of this file was set to
|
||||
* the last modified time of the source file after
|
||||
* generation to assist with modification tracking.
|
||||
*/
|
||||
package org.apache.jsp;
|
||||
|
||||
import javax.servlet.*;
|
||||
import javax.servlet.http.*;
|
||||
import javax.servlet.jsp.*;
|
||||
import java.sql.*;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public final class loadCourses_jsp extends org.apache.jasper.runtime.HttpJspBase
|
||||
implements org.apache.jasper.runtime.JspSourceDependent,
|
||||
org.apache.jasper.runtime.JspSourceImports {
|
||||
|
||||
private static final javax.servlet.jsp.JspFactory _jspxFactory =
|
||||
javax.servlet.jsp.JspFactory.getDefaultFactory();
|
||||
|
||||
private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;
|
||||
|
||||
private static final java.util.Set<java.lang.String> _jspx_imports_packages;
|
||||
|
||||
private static final java.util.Set<java.lang.String> _jspx_imports_classes;
|
||||
|
||||
static {
|
||||
_jspx_imports_packages = new java.util.LinkedHashSet<>(6);
|
||||
_jspx_imports_packages.add("java.sql");
|
||||
_jspx_imports_packages.add("javax.servlet");
|
||||
_jspx_imports_packages.add("javax.servlet.http");
|
||||
_jspx_imports_packages.add("javax.servlet.jsp");
|
||||
_jspx_imports_classes = new java.util.LinkedHashSet<>(3);
|
||||
_jspx_imports_classes.add("org.json.JSONObject");
|
||||
_jspx_imports_classes.add("org.json.JSONArray");
|
||||
}
|
||||
|
||||
private volatile javax.el.ExpressionFactory _el_expressionfactory;
|
||||
private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;
|
||||
|
||||
public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
|
||||
return _jspx_dependants;
|
||||
}
|
||||
|
||||
public java.util.Set<java.lang.String> getPackageImports() {
|
||||
return _jspx_imports_packages;
|
||||
}
|
||||
|
||||
public java.util.Set<java.lang.String> getClassImports() {
|
||||
return _jspx_imports_classes;
|
||||
}
|
||||
|
||||
public javax.el.ExpressionFactory _jsp_getExpressionFactory() {
|
||||
if (_el_expressionfactory == null) {
|
||||
synchronized (this) {
|
||||
if (_el_expressionfactory == null) {
|
||||
_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
|
||||
}
|
||||
}
|
||||
}
|
||||
return _el_expressionfactory;
|
||||
}
|
||||
|
||||
public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {
|
||||
if (_jsp_instancemanager == null) {
|
||||
synchronized (this) {
|
||||
if (_jsp_instancemanager == null) {
|
||||
_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
|
||||
}
|
||||
}
|
||||
}
|
||||
return _jsp_instancemanager;
|
||||
}
|
||||
|
||||
public void _jspInit() {
|
||||
}
|
||||
|
||||
public void _jspDestroy() {
|
||||
}
|
||||
|
||||
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
|
||||
throws java.io.IOException, javax.servlet.ServletException {
|
||||
|
||||
if (!javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {
|
||||
final java.lang.String _jspx_method = request.getMethod();
|
||||
if ("OPTIONS".equals(_jspx_method)) {
|
||||
response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
|
||||
return;
|
||||
}
|
||||
if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method)) {
|
||||
response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
|
||||
response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final javax.servlet.jsp.PageContext pageContext;
|
||||
javax.servlet.http.HttpSession session = null;
|
||||
final javax.servlet.ServletContext application;
|
||||
final javax.servlet.ServletConfig config;
|
||||
javax.servlet.jsp.JspWriter out = null;
|
||||
final java.lang.Object page = this;
|
||||
javax.servlet.jsp.JspWriter _jspx_out = null;
|
||||
javax.servlet.jsp.PageContext _jspx_page_context = null;
|
||||
|
||||
|
||||
try {
|
||||
response.setContentType("application/json; charset=UTF-8");
|
||||
pageContext = _jspxFactory.getPageContext(this, request, response,
|
||||
null, true, 8192, true);
|
||||
_jspx_page_context = pageContext;
|
||||
application = pageContext.getServletContext();
|
||||
config = pageContext.getServletConfig();
|
||||
session = pageContext.getSession();
|
||||
out = pageContext.getOut();
|
||||
_jspx_out = out;
|
||||
|
||||
out.write("\r\n");
|
||||
out.write("\r\n");
|
||||
|
||||
String teacherId = request.getParameter("teacher");
|
||||
JSONArray courses = new JSONArray();
|
||||
|
||||
if (teacherId != null && !teacherId.isEmpty()) {
|
||||
try {
|
||||
Class.forName("com.mysql.cj.jdbc.Driver");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "SchoolST", "123456");
|
||||
String sql = "SELECT * FROM courses WHERE teacher_id = ?";
|
||||
PreparedStatement pstmt = conn.prepareStatement(sql);
|
||||
pstmt.setString(1, teacherId);
|
||||
ResultSet rs = pstmt.executeQuery();
|
||||
|
||||
while (rs.next()) {
|
||||
JSONObject course = new JSONObject();
|
||||
course.put("course_id", rs.getInt("course_id"));
|
||||
course.put("course_name", rs.getString("course_name"));
|
||||
courses.put(course);
|
||||
}
|
||||
|
||||
rs.close();
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
out.print(courses.toString());
|
||||
|
||||
} catch (java.lang.Throwable t) {
|
||||
if (!(t instanceof javax.servlet.jsp.SkipPageException)){
|
||||
out = _jspx_out;
|
||||
if (out != null && out.getBufferSize() != 0)
|
||||
try {
|
||||
if (response.isCommitted()) {
|
||||
out.flush();
|
||||
} else {
|
||||
out.clearBuffer();
|
||||
}
|
||||
} catch (java.io.IOException e) {}
|
||||
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
|
||||
else throw new ServletException(t);
|
||||
}
|
||||
} finally {
|
||||
_jspxFactory.releasePageContext(_jspx_page_context);
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,159 @@
|
|||
/*
|
||||
* Generated by the Jasper component of Apache Tomcat
|
||||
* Version: Apache Tomcat/9.0.98
|
||||
* Generated at: 2025-02-12 05:53:04 UTC
|
||||
* Note: The last modified time of this file was set to
|
||||
* the last modified time of the source file after
|
||||
* generation to assist with modification tracking.
|
||||
*/
|
||||
package org.apache.jsp;
|
||||
|
||||
import javax.servlet.*;
|
||||
import javax.servlet.http.*;
|
||||
import javax.servlet.jsp.*;
|
||||
import java.sql.*;
|
||||
|
||||
public final class loadTeachers_jsp extends org.apache.jasper.runtime.HttpJspBase
|
||||
implements org.apache.jasper.runtime.JspSourceDependent,
|
||||
org.apache.jasper.runtime.JspSourceImports {
|
||||
|
||||
private static final javax.servlet.jsp.JspFactory _jspxFactory =
|
||||
javax.servlet.jsp.JspFactory.getDefaultFactory();
|
||||
|
||||
private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;
|
||||
|
||||
private static final java.util.Set<java.lang.String> _jspx_imports_packages;
|
||||
|
||||
private static final java.util.Set<java.lang.String> _jspx_imports_classes;
|
||||
|
||||
static {
|
||||
_jspx_imports_packages = new java.util.LinkedHashSet<>(6);
|
||||
_jspx_imports_packages.add("java.sql");
|
||||
_jspx_imports_packages.add("javax.servlet");
|
||||
_jspx_imports_packages.add("javax.servlet.http");
|
||||
_jspx_imports_packages.add("javax.servlet.jsp");
|
||||
_jspx_imports_classes = null;
|
||||
}
|
||||
|
||||
private volatile javax.el.ExpressionFactory _el_expressionfactory;
|
||||
private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;
|
||||
|
||||
public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
|
||||
return _jspx_dependants;
|
||||
}
|
||||
|
||||
public java.util.Set<java.lang.String> getPackageImports() {
|
||||
return _jspx_imports_packages;
|
||||
}
|
||||
|
||||
public java.util.Set<java.lang.String> getClassImports() {
|
||||
return _jspx_imports_classes;
|
||||
}
|
||||
|
||||
public javax.el.ExpressionFactory _jsp_getExpressionFactory() {
|
||||
if (_el_expressionfactory == null) {
|
||||
synchronized (this) {
|
||||
if (_el_expressionfactory == null) {
|
||||
_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
|
||||
}
|
||||
}
|
||||
}
|
||||
return _el_expressionfactory;
|
||||
}
|
||||
|
||||
public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {
|
||||
if (_jsp_instancemanager == null) {
|
||||
synchronized (this) {
|
||||
if (_jsp_instancemanager == null) {
|
||||
_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
|
||||
}
|
||||
}
|
||||
}
|
||||
return _jsp_instancemanager;
|
||||
}
|
||||
|
||||
public void _jspInit() {
|
||||
}
|
||||
|
||||
public void _jspDestroy() {
|
||||
}
|
||||
|
||||
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
|
||||
throws java.io.IOException, javax.servlet.ServletException {
|
||||
|
||||
if (!javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {
|
||||
final java.lang.String _jspx_method = request.getMethod();
|
||||
if ("OPTIONS".equals(_jspx_method)) {
|
||||
response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
|
||||
return;
|
||||
}
|
||||
if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method)) {
|
||||
response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
|
||||
response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
final javax.servlet.jsp.PageContext pageContext;
|
||||
javax.servlet.http.HttpSession session = null;
|
||||
final javax.servlet.ServletContext application;
|
||||
final javax.servlet.ServletConfig config;
|
||||
javax.servlet.jsp.JspWriter out = null;
|
||||
final java.lang.Object page = this;
|
||||
javax.servlet.jsp.JspWriter _jspx_out = null;
|
||||
javax.servlet.jsp.PageContext _jspx_page_context = null;
|
||||
|
||||
|
||||
try {
|
||||
response.setContentType("text/html; charset=UTF-8");
|
||||
pageContext = _jspxFactory.getPageContext(this, request, response,
|
||||
null, true, 8192, true);
|
||||
_jspx_page_context = pageContext;
|
||||
application = pageContext.getServletContext();
|
||||
config = pageContext.getServletConfig();
|
||||
session = pageContext.getSession();
|
||||
out = pageContext.getOut();
|
||||
_jspx_out = out;
|
||||
|
||||
out.write("\r\n");
|
||||
out.write("\r\n");
|
||||
|
||||
String college = request.getParameter("college");
|
||||
if (college != null && !college.isEmpty()) {
|
||||
try {
|
||||
Class.forName("com.mysql.cj.jdbc.Driver");
|
||||
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "SchoolST", "123456");
|
||||
String sql = "SELECT * FROM teachers WHERE college = ?";
|
||||
PreparedStatement pstmt = conn.prepareStatement(sql);
|
||||
pstmt.setString(1, college);
|
||||
ResultSet rs = pstmt.executeQuery();
|
||||
while (rs.next()) {
|
||||
out.println("<option value='" + rs.getInt("teacher_id") + "'>" + rs.getString("name") + "</option>");
|
||||
}
|
||||
rs.close();
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
} catch (java.lang.Throwable t) {
|
||||
if (!(t instanceof javax.servlet.jsp.SkipPageException)){
|
||||
out = _jspx_out;
|
||||
if (out != null && out.getBufferSize() != 0)
|
||||
try {
|
||||
if (response.isCommitted()) {
|
||||
out.flush();
|
||||
} else {
|
||||
out.clearBuffer();
|
||||
}
|
||||
} catch (java.io.IOException e) {}
|
||||
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
|
||||
else throw new ServletException(t);
|
||||
}
|
||||
} finally {
|
||||
_jspxFactory.releasePageContext(_jspx_page_context);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue