SpringMVC项目出现404

news2024/12/23 23:11:40

目录

问题讲解:

解决方案:

1、处理器映射器和处理器适配器以及视图解析器没有配置好

2、Controller的包扫描没有加或者包扫描的配置是错误的

3、当然也有说jar包没有

4、请求地址是错误的

5、还有一种解决办法说web.xml配置DispatcherServlet的时候servlet的映射关系配置不正确,

解决方案思路:

 1、分析问题原因

           1.1、前台访问路径:

           1.2、后台映射路径:

 2、解决问题步骤

  2.1、前台访问路径:

 2.2、从哪里映射,映射到哪里去:

 2.3、这里是重点,看他是怎么映射的。

映射器、适配器和视图解析器:

    2.4、如果说前面这些都配置好了,问题还是存在,我们去检查这些配置文件有没有一步步的都加载到spring容器中。

 2.5、如果以上都配置好了,还是不成功,那么就得在看看这些自动化的东西到底有没有自动化成功,

 2.6、如果说controller配置没有错误,那就看看是不是jar包的问题,记得在工程发布的路径下查看。

 2.7、如果说还不成功,那就只能继续深入看源码了。还有一个方法就是启动的时候使用DEBUG模式,且在发布时去掉autoloading enabled,这样如果是源码问题就会卡出来,可以看到提示。不过相信走到这一步基本也就把错误排查出来了,一般不会去看源码提示,因为除非导包的问题,源码不会有错。


问题讲解:

        从标题不难看出,框架搭建好后,编译部署并启动项目一切正常,并没有报任何的错误,但是从页面访问controller时缺报404[Not Found]的错误。

解决方案:

   这里我总结一下网上各种帖子的解决方案:

1、处理器映射器和处理器适配器以及视图解析器没有配置好

         1.1、非注解的处理器映射器和适配器配置,注意:在这里处理器映射器的配置必须和处理器适配器的配置是成对的,还有必须在配置文件里声明注入你的controller,并且这个controller必须实现Controller接口。非注解的配置访问是根据声明注入的bean name来进行映射处理的,必须有name,而且name的值必须有根符号(“/”)。

<bean name="/userController" class="com.aqiuo.controller.UserController"></bean>

        1.2、注解的处理器映射器和适配器配置。注解的controller类必须使用@Controller进行注解,类中的方法使用@RequestMapping("")进行注解。注解的配置方式还有一种,即<mvc:annotation-driven/>注解驱动配置,这样更方便,实际项目也是这样使用的。 

@Controller
public class ClassController {

    @Autowired
    IClassService classService;

    /**
     * 增加班级
     */
    @RequestMapping("/addClass")
    @ResponseBody
    public Result addClass(@RequestBody ClassVo classVo){

        return classService.addClass(classVo);

    }

        1.3、视图解析器的配置。

    <!--视图解析器:DispatcherServlet给他的Model And ivew-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceView">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!--前缀-->
        <property name="suffix" value=".jsp"/>
    </bean>

        至此,springmvc的controller需要的处理器映射器和处理器适配器以及视图解析器的配置已经完成,当然实际要运行的时候还必须要有Controller包扫描,不然你的程序在实例化完sqlSessionFactory后会一直卡在那里,不做任何操作,页面也不会有任何的反映。

2、Controller的包扫描没有加或者包扫描的配置是错误的

这如果说其他配置都OK的话,如果没有加包扫描,那么他不回报任何的错误,但是会输出日志,创建SqlSessionFactory的日志是有的,不会什么信息都没有。有的人将Controller的包扫描加成这样

<context:component-scan base-package="com.springmvc.ssm.controller.*"/>

也是什么都没有的。正确的包扫描是这样的:

  <context:component-scan base-package="com.aqiuo.controller"/>

3、当然也有说jar包没有

这也有可能是有的,没有jar包报404很正常的。这里要说的是如果出现404,你的判断是jar包没有,那你就得去你的项目发布路径下的WEB-INF下的lib文件夹去找jar包,而不是你的idea里看有没有。

        maven可能会出现jar包导不进去的问题,自己去projectstruction内看一看

4、请求地址是错误的

        这个只能说自己认真排查,一般人在出现404的时候第一反应就是请求地址的核对,所以这个我也不说了。

        但是在这里我强调一个现象,就是你的请求地址是正确的,但是你的目录里没有Controller里的方法返回的页面,这样也会出现404,但是这个404和之前的404是不一样的。比如我在我的Controller的aa/hello映射的方法里返回的,实际我的jsp下的JSP文件没有一个牛.jsp,那么页面的错误就会是这样的:(你想返回数据,但是你没有加@ResponseBody,导致实际按返回视图,但视图又没有所以404)

@Controller
@RequestMapping("/aa")
public class StudentController {
    @RequestMapping("/hello")

    public String ressda(){
        System.out.println(666);
        return "牛";
    }

}

5、还有一种解决办法说web.xml配置DispatcherServlet的时候servlet的映射关系<url-pattern>配置不正确,

        应该将<url-pattern>/*</url-pattern>改为<url-pattern>/</url-pattern>,去掉根号后面的星号,当然如果确实这样写了,那这也是一种解决办法。

      以上就是网上所说的解决这一问题的办法,其实也是我遇到这样的问题,在网上一通乱搜,挨个试了个遍。

        那么网上这么多的解决方法,我们到底应该去按哪个方法执行,像我一样挨个试一遍?就跟我一样,全部试完也不见得能解决你的问题,因为每个人的问题发生的原因都不一样,但是结果都一样,访问Controller失败,返回404。这也就是我写这篇文章的真正原因,我在这里不会贴出我解决该问题的代码,没有用对你,也许你的问题按照我的方法解决不了。那么我在这里将这个问题的解决思路抽取出来,这样大家就不用在网上搜各种解决方案还不一定适合你,只要按着这个思路找问题的根源,就不会有多大的问题。

解决方案思路:

 1、分析问题原因

            我们既然知道是404,那就肯定是路径的问题,至少在现有的开发环境中大多数404都是各种路径的问题,不管是没有对应的文件还是路径写错了。既然404是路径问题,那么我们再细化这个路径问题,把这个路径可以分为前台访问路径和后台映射路径。

           1.1、前台访问路径:

        前台访问路径不用说就是我们在地址栏输入的路径,即http请求路径。

           1.2、后台映射路径:

        那么后台映射路径就多了,分析这个问题其实也很简单,既然是映射路径,那么他是怎么映射的,从哪里映射的,映射到哪里去,完成这三个问题也就解决了这个问题了。

                    1.2.1、在哪里映射、映射到哪里去:其中从哪里映射和映射到那里去,这个问题很好回答,既然是springmvc,那么这个问题肯定在Controller里了,当然这里的映射到那里去也要根据你自己配置视图解析器的规则去写。

                    1.2.2、怎么映射:然后我们分析这个路径是怎么映射的,这里就有人说了,一个刚学的就去研究spring源码吗?其实我们一般情况下没必要去翻源码查看他的实现原理,但是你如果有能力看他的源码,会加深你对springmvc的理解,对你也是有益无害的。虽然说我们没有必要翻源码但是必须知道他的映射关系是怎么配置的,弄清楚这些,我相信你的问题也就解决了。

 2、解决问题步骤

             我们已经把这个问题细化了,那么就一步步来解决就行了,在这里我会穿插的将我的完整代码贴出来,大家可以参考,初学者直接拿去也是可以运行的。在这里我先把我的工程目录给大家放在这里。

  2.1、前台访问路径:

        这个没有什么,只能是仔细的比对的你的请求路径是否正确,从项目工程名到到映射的方法名,再到返回的jsp名称。

             

 2.2、从哪里映射,映射到哪里去:

        这个问题我们就考虑Controller类中映射是不是不正确,查看@RequestMapping("/映射地址")中的映射地址是否与访问地址对应。返回路径是否正确,例如返回consigner,在视图解析器配置的路径规则下能不能找到consigner.jsp文件。

      

 2.3、这里是重点,看他是怎么映射的。

        我们知道springmvc是有前端控制器来调配映射器和适配器去工作的,那么我们首先要确保前端控制器配置正确。前端控制器配置好了,还需要处理器映射器和适配器以及视图解析器都配置好才可以。

各种处理器,映射器,解析器配置配置下面可以参考!!

映射器、适配器和视图解析器:

spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-4.3.xsd
             http://www.springframework.org/schema/mvc
              https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--   扫描注解 -->
    <context:component-scan base-package="com.aqiuo.controller"/>
<!--静态资源交给servlet处理,不是静态资源才交给DispatcherServlet-->
    <mvc:default-servlet-handler />

<!--加载处理器映射器,处理器适配器等bean-->
    <mvc:annotation-driven></mvc:annotation-driven>


    <!--视图解析器:DispatcherServlet给他的Model And ivew-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceView">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!--前缀-->
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>


前端控制器配置:web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc-config.xml</param-value>
    </init-param>

  </servlet>

  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <!--访问:DispatcherServlet这是入口,格外注意-->
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <!--编码过滤器-->
  <filter>
    <filter-name>encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>


  <!-- 配置加载spring文件的监听器 -->
  <listener>
    <listener-class>
      org.springframework.web.context.ContextLoaderListener
    </listener-class>
  </listener>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>



</web-app>

   
 2.4、如果说前面这些都配置好了,问题还是存在,我们去检查这些配置文件有没有一步步的都加载到spring容器中。

        那么我们要在web.xml里面加载那些东西呢?因为我是SSM框架,所以spring的配置文件,springmvc的配置文件,mybatis的配置文件,mysql数据库的配置文件,spring和mybatis整合的配置文件等都要加载到spring容器中。当然每个人写配置文件的方式不一样,加载的方式也不一样,但是都有一定的约定必须遵循。(我的配置习惯是学习的狂神)

        我是这样加载的:大家可以看的web.xml配置文件,我在这里面加载了spring配置文件和springmvc的配置文件以及spring和mybatis整合的配置文件。现在将另外几个配置文件贴出来:
           spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-4.3.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">

    <import resource="spring-mapper.xml"></import>
    <import resource="spring-service.xml"></import>



</beans>

 spring-mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-4.3.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">

    <context:property-placeholder location="classpath:db.properties"></context:property-placeholder>

    <context:component-scan base-package="com.aqiuo.mapper"></context:component-scan>
    <!--
     dbcp:手动配置
      c3p0自动化操作
     druid
     -->

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"></property>
        <property name="url" value="${jdbc.url}"></property>
        <property name="username" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <!--绑定mybatis的配置文件-->
        <property name="configLocation" value="classpath:mybatis-config.xml"></property>
    </bean>

    <!--配置DAO接口扫描包,动态的实现Dao接口可以注入Spring容器中-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.aqiuo.mapper"></property>

    </bean>

</beans>

 spring-service.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-4.3.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">

    <!--扫描service包下注解-->
    <context:component-scan base-package="com.aqiuo.service"></context:component-scan>


    <!--声明式事务配置-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>


</beans>

mybatis-config,xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

    <typeAliases>
        <package name="com.aqiuo.pojo"/>
        <package name="com.aqiuo.vo"/>
        <package name="com.aqiuo.dto"/>
    </typeAliases>

    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
    </plugins>

</configuration>

springmvc-config.xml 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-4.3.xsd
             http://www.springframework.org/schema/mvc
              https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--   扫描注解 -->
    <context:component-scan base-package="com.aqiuo.controller"/>
<!--静态资源交给servlet处理,不是静态资源才交给DispatcherServlet-->
    <mvc:default-servlet-handler />


<!--加载处理器映射器,处理器适配器等bean-->
    <mvc:annotation-driven></mvc:annotation-driven>


    <!--视图解析器:DispatcherServlet给他的Model And ivew-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceView">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!--前缀-->
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>


   

 2.5、如果以上都配置好了,还是不成功,那么就得在看看这些自动化的东西到底有没有自动化成功,

        例如service的自动扫描有没有起作用,Controller的自动扫描有没有起作用或者说是配置正确不正确。我的Controller的自动扫描是在spring.xml文件完成的。


 2.6、如果说controller配置没有错误,那就看看是不是jar包的问题,记得在工程发布的路径下查看。
 2.7、如果说还不成功,那就只能继续深入看源码了。还有一个方法就是启动的时候使用DEBUG模式,且在发布时去掉autoloading enabled,这样如果是源码问题就会卡出来,可以看到提示。不过相信走到这一步基本也就把错误排查出来了,一般不会去看源码提示,因为除非导包的问题,源码不会有错。

        最后说一下我的错误吧,困了我一周的事件。

        看我原来url-pattern的值写的是*.action,导致不匹配的模式串匹配不上找不到。所以大多数的错误都是人为的,而且是不起眼的小问题,可就是这些不起眼的小问题,总是折腾人。        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1302304.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有病但合理的 ChatGPT 提示语

ChatGPT 面世一年多了&#xff0c;如何让大模型输出高质量内容&#xff0c;让提示词工程成了一门重要的学科。以下是一些有病但合理的提示词技巧&#xff0c;大部分经过论文证明&#xff0c;有效提高 ChatGPT 输出质量&#xff1a; ​1️⃣ Take a deep breath. 深呼吸 ✨ 作用…

直流电和交流电

直流电&#xff08;Direct Current&#xff0c;简称DC&#xff09;和交流电&#xff08;Alternating Current&#xff0c;简称AC&#xff09;是电流的两种基本形式。 1. 直流电 直流电是指电流方向始终保持不变的电流。在直流电中&#xff0c;电子只能沿着一个方向移动。直流电…

力扣17. 电话号码的字母组合(java 回溯法)

Problem: 17. 电话号码的字母组合 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 题目给定一串数字&#xff0c;要求我们找出所有可能的字母组合&#xff0c;即我们可以穷举出所有可能的结果&#xff0c;而涉及到穷举我们自然可以想到利用回溯来解决问题&#xff0c…

Win10操作系统安装Python

1 Python解释器下载 1.1 安装环境 Windows 10 专业工作站版22H2 python-3.9.6-amd64.exe 1.2 下载地址 Python官网&#xff1a;Welcome to Python.org Python镜像&#xff1a;CNPM Binaries Mirror 2 Python解释器安装 2.1 Install Python 3.9.6 (64-bit)界面 双击运行下…

1个电子书模板网站!分分钟制作出精美电子书

随着互联网的发展&#xff0c;电子书已经成为了越来越多人的选择。想要制作一本精美的电子书&#xff0c;却苦于没有专业的技能和工具&#xff1f;别担心&#xff0c;小编向大家推荐一个电子书模板网站&#xff0c;让你分分钟制作出精美电子书&#xff01; 这个网站叫做[FLBOOK…

.net 安装Postgresql驱动程序ngpsql

.net 安装Postgresql驱动程序ngpsql 最近搞一个物联网项目&#xff0c;需要采集fanuc数控机床的数据&#xff0c;厂家提供的API只支持windows&#xff0c;所以就决定C#开发&#xff0c;数据库用postgresql&#xff0c; 安装数据库驱动一波三折。 作为一个讨厌微软的老程序猿&…

宝塔面板部署Apache服务器搭建本地站点发布到公网可访问【内网穿透】

文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家…

CTF比赛中web安全题型讲解

在CTF&#xff08;Capture The Flag&#xff09;竞赛中&#xff0c;Web安全题目是测试参赛者对Web应用漏洞利用和防御能力的重要环节。以下是30道Web类题型及其标准答案&#xff0c;对初次打比赛的网安人员来说&#xff0c;还是有一些帮助的&#xff0c;喜欢可以收藏。 题目及…

六级高频词组1

目录 词组 参考链接 词组 1. abide by&#xff08;be faithful to &#xff1b;obey&#xff09;忠于&#xff1b;遵守。 2. be absent from… 缺席&#xff0c;不在 3. absence or mind&#xff08;being absent-minded&#xff09; 心不在焉 4. absorb&#xff08;take …

POJ - 2528 Mayor‘s posters

本题注意离散化的时候可能会出现区间串联情况&#xff0c;比如 [1,10] [5,10] [1,4] 和 [1,10] [6,10] [1,4] 直接离散化的话两者一样&#xff0c;但是实际上是不一样的 解决办法是你在相邻的差不是1的数对中再插一个数就好了 离线区间染色 查询根节点 #include<iostrea…

LeetCode力扣每日一题(Java):21、合并两个有序链表

一、题目 二、解题思路 1、我的思路 两个有序链表的合并已经是老生常谈的话题了&#xff0c;大家肯定并不陌生 依次比较两链表结点的值&#xff0c;将值小的添加到新链表的末尾&#xff0c;并将指针后移&#xff08;因为之前学C语言说说惯了指针&#xff0c;不知道在java中…

【Android开发-25】Android中多线程编程用法介绍

1&#xff0c;线程基本用法 在Android中&#xff0c;线程的使用主要有两种方法&#xff1a;一种是扩展java.lang.Thread类&#xff0c;另一种是实现Runnable接口。 1.1以下是一个简单的Android线程继承Thread的用法示例&#xff1a; public class MyThread extends Thread {…

ffmpeg过滤器filter理论与实战

文章目录 前言一、DirectShow1、简介2、程序基本结构3、架构 二、过滤器1、视频过滤器 -vf2、音频过滤器 -af3、过滤器链&#xff08;Filterchain&#xff09;4、过滤器图&#xff08;Filtergraph&#xff09;①、基本语法②、Filtergraph 的分类 5、结构体间的关系图 三、过滤…

手动搭建Magento电商网站

Magento是一个用PHP编写的开源电子商务平台。它的架构是可扩展和模块化的&#xff0c;使其成为构建大中型网站的绝佳选择。Magento支持从5.6到7.1的PHP版本&#xff0c;并利用MySQL数据库进行数据存储。本文将为您介绍如何在CentOS 7操作系统的ECS实例上搭建Magento电商网站。 …

如何优雅使用 vue-html2pdf 插件生成pdf报表

使用 vue-html2pdf 插件 业务背景&#xff0c;老板想要一份能征服客户的pdf报表&#xff0c;传统的pdf要手撕&#xff0c;企业中确实有点耗费时间&#xff0c;于是github上面看到开源的这个插件就…废话不多说&#xff0c;直接上教程 1.使用下面命令安装 vue-html2pdf npm i…

牛客算法心得——买卖股票的最好时机三(dp)

大家好&#xff0c;我是晴天学长&#xff0c; 一个找状态的经典题&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1) .买卖股票的最好时机&#xff08;三&#xff09; 假设你有一个数组prices&#xff0c;…

【深度学习】AlexNet网络实现猫狗分类

【深度学习】AlexNet网络实现猫狗分类 AlexNet简介 AlexNet是一种卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;模型&#xff0c;它在2012年的ImageNet图像分类挑战赛中取得了重大突破&#xff0c;引发了深度学习在计算机视觉领域的热潮…

【C知道】帮我答疑解惑:java的entity字段是map,如何映射到数据库

目录 一、问题场景描述 二、跟【C知道】第一次沟通 &#xff08;1&#xff09;我问 &#xff08;2&#xff09;他答 &#xff08;3&#xff09;我说 三、跟【C知道】第二次沟通 &#xff08;1&#xff09;我问 &#xff08;2&#xff09;他答 &#xff08;3&#xff0…

iptables 命令说明

摘要 iptables是一个用于Linux系统的网络包过滤工具。它是一个基于内核的防火墙系统&#xff0c;用于配置和管理网络规则以控制网络流量。iptables可以对数据包进行过滤、转发、修改目的地、屏蔽IP等操作&#xff0c;可通过定义不同的规则和策略来确保网络的安全性和可靠性。 …

猫咪口味大考验:最受欢迎的猫罐头品牌揭晓!

养猫的这几年德罐也买了不少了&#xff0c;很早以前德罐给我的感觉就是&#xff0c;物美价廉&#xff0c;而且质量保障也不错&#xff0c;很美丽。但最近的德罐恕在下高攀不起了。 作为一个已经离职的宠物医生&#xff0c;我也发现不少人有这样的困扰吧&#xff01;其实&#x…