会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132441个问题
Python 全系列/第一阶段:Python入门/序列 19231楼
Python 全系列/第一阶段:Python入门/编程基本概念 19232楼
JAVA 全系列/第九阶段:权限控制与安全认证/Shiro(旧) 19233楼

"C:\Program Files\Java\jdk-13.0.2\bin\java.exe" -Dmaven.multiModuleProjectDirectory=C:\Users\yc\IdeaProjects\case\parent\controller "-Dmaven.home=D:\IntelliJ IDEA 2019.3.2\plugins\maven\lib\maven3" "-Dclassworlds.conf=D:\IntelliJ IDEA 2019.3.2\plugins\maven\lib\maven3\bin\m2.conf" "-Dmaven.ext.class.path=D:\IntelliJ IDEA 2019.3.2\plugins\maven\lib\maven-event-listener.jar" "-javaagent:D:\IntelliJ IDEA 2019.3.2\lib\idea_rt.jar=59100:D:\IntelliJ IDEA 2019.3.2\bin" -Dfile.encoding=UTF-8 -classpath "D:\IntelliJ IDEA 2019.3.2\plugins\maven\lib\maven3\boot\plexus-classworlds-2.6.0.jar" org.codehaus.classworlds.Launcher -Didea.version2019.3.2 org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:run

[INFO] Scanning for projects...

[INFO] 

[INFO] ------------------------< com.bjsxt:controller >------------------------

[INFO] Building controller 1.0-SNAPSHOT

[INFO] --------------------------------[ war ]---------------------------------

[INFO] 

[INFO] >>> tomcat7-maven-plugin:2.2:run (default-cli) > process-classes @ controller >>>

[INFO] 

[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ controller ---

[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!

[INFO] Copying 5 resources

[INFO] 阿里云Maven中央仓库为阿里云云效提供的公共代理仓库,云效也提供了免费、可靠的Maven私有仓库Packages,欢迎您体验使用。https://www.aliyun.com/product/yunxiao/packages?channel=pd_maven_download

[INFO] 

[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ controller ---

[INFO] Nothing to compile - all classes are up to date

[INFO] 

[INFO] <<< tomcat7-maven-plugin:2.2:run (default-cli) < process-classes @ controller <<<

[INFO] 

[INFO] 

[INFO] --- tomcat7-maven-plugin:2.2:run (default-cli) @ controller ---

[INFO] Running war on http://localhost:8080/

[INFO] Creating Tomcat server configuration at C:\Users\yc\IdeaProjects\case\parent\controller\target\tomcat

[INFO] create webapp with contextPath: 

7月 05, 2021 9:34:11 下午 org.apache.coyote.AbstractProtocol init

信息: Initializing ProtocolHandler ["http-bio-8080"]

7月 05, 2021 9:34:11 下午 org.apache.catalina.core.StandardService startInternal

信息: Starting service Tomcat

7月 05, 2021 9:34:11 下午 org.apache.catalina.core.StandardEngine startInternal

信息: Starting Servlet Engine: Apache Tomcat/7.0.47

7月 05, 2021 9:34:14 下午 org.apache.catalina.core.ApplicationContext log

信息: No Spring WebApplicationInitializer types detected on classpath

7月 05, 2021 9:34:14 下午 org.apache.catalina.core.ApplicationContext log

信息: Initializing Spring root WebApplicationContext

[INFO] Root WebApplicationContext: initialization started

[INFO] Root WebApplicationContext initialized in 1404 ms

7月 05, 2021 9:34:16 下午 org.apache.catalina.util.SessionIdGenerator createSecureRandom

信息: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [359] milliseconds.

7月 05, 2021 9:34:16 下午 org.apache.catalina.core.ApplicationContext log

信息: Initializing Spring DispatcherServlet 'springmvc'

[INFO] Initializing Servlet 'springmvc'

[INFO] Completed initialization in 573 ms

7月 05, 2021 9:34:16 下午 org.apache.coyote.AbstractProtocol start

信息: Starting ProtocolHandler ["http-bio-8080"]

[WARNING] No mapping for GET /

7月 05, 2021 9:35:06 下午 org.apache.catalina.core.StandardWrapperValve invoke

严重: Servlet.service() for servlet [springmvc] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure


The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.] with root cause

java.net.ConnectException: Connection timed out: connect

at java.base/sun.nio.ch.Net.connect0(Native Method)

at java.base/sun.nio.ch.Net.connect(Net.java:493)

at java.base/sun.nio.ch.Net.connect(Net.java:482)

at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)

at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:339)

at java.base/java.net.Socket.connect(Socket.java:603)

at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:211)

at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:298)

at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2253)

at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2286)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2085)

at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:795)

at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)

at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)

at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)

at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:400)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:327)

at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)

at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:189)

at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:155)

at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:146)

at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:205)

at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:169)

at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:263)

at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:400)

at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)

at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:572)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:360)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:99)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)

at com.sun.proxy.$Proxy39.addUsers(Unknown Source)

at com.bjsxt.web.controller.UsersController.addUsers(UsersController.java:26)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:567)

at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)

at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)

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

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)

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

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

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

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

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

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

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

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

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

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

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

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

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

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

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)

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

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

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)

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:830)

    

显示我无法链接数据库。但是我任务管理器里面显示我的mySQL服务是正在运行状态。

image.png

而且我Navicat也可以正常连接数据库。这里我用的是users3表

image.png


JAVA 全系列/第八阶段:Linux入门到实战/Maven 19234楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 19235楼
JAVA 全系列/第十一阶段:智能家居项目(旧)/至尊智能家居第一天 19236楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 19238楼

老师,在没有添加过滤器的时候,项目默认会执行index.jsp,但是当我添加了过滤器后就会默认执行登录页面,即使我再代码中对获得的URL中的index.jsp放行了,也还是不行,最后我发现在URL中根本就没有index.jsp,所以才会去执行请求转发。这是为什么?

package com.example.filter;

import com.example.pojo.Users;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebFilter(urlPatterns = {"*.jsp","*.do"})
public class UserLoginFilter implements Filter {
    /**
     *
     * @param filterConfig
     * @throws ServletException
     *
     * 用于实现用户登录的过滤器
     * 可以对所有得动态资源进行过滤,对静态资源进行放行,同时对用户的登录的.jsp或者.do资源进行放行
     *
     */
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

        /**
         * 对象的转换
         */
        HttpServletRequest request = (HttpServletRequest) servletRequest;

        StringBuffer requestURL = request.getRequestURL();

        /**
         * 对路径进行判断,如果是登录的请求,就去放行,否则,就是过滤
         */
        if (requestURL.indexOf("index.jsp") != -1 || requestURL.indexOf("UserLogin.jsp") != -1 || requestURL.indexOf("UserLogin.do") != -1) {

            filterChain.doFilter(servletRequest, servletResponse);

        } else {

            /**
             * 当走到else时,就表示,当前访问的不是这个登录的动态资源,那就要对你当前这个用户状态进行选择判断,
             * 如果,有sessionID就是登陆过的,否则,就是没有登陆过的。
             */
            HttpSession session = request.getSession();

            Users users = (Users) session.getAttribute("users");

            if (users != null) {
                /**
                 * 登录了,就进行放行
                 */
                filterChain.doFilter(servletRequest, servletResponse);
            } else {
                /**
                 * 没有登录就提示
                 */
                session.setAttribute("NotLoginMsg","您还没有登录请先进行登录...");
                request.getRequestDispatcher("UserLogin.jsp").forward(servletRequest, servletResponse);
            }

        }


    }

    @Override
    public void destroy() {

    }
}

image.png



我若是将Content-path写成:

/ProjectDemo_two/index.jsp

也不合适,




JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 19240楼
Python 全系列/第二阶段:Python 深入与提高/文件处理 19241楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/反射技术(旧) 19242楼
JAVA 全系列/第六阶段:项目管理与SSM框架/SpringMVC 19243楼
JAVA 全系列/第九阶段:权限控制与安全认证/Spring Security(旧) 19244楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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