精华内容
下载资源
问答
  • 根据自己的业务情况总结了一下以下几种情况: 一、spring boot的启动类不能直接放在main(src.java.main)这个包下面,把它放在包的里面就可以了。(springboot的启动的Application必须放在controller类的外面,要...

    欢迎大家关注我的公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。

    根据自己的业务情况总结了一下有以下几种情况:

    一、spring boot的启动类不能直接放在main(src.java.main)这个包下面,把它放在有包的里面就可以了。(springboot的启动的Application必须放在controller类的外面,要不然扫描不到) 如果你的启动类Application位置没错的话直接进入第二步。

    二、检查Controller类里面的注解

    package com.riemann.springbootdemo.controller;
    
    import com.riemann.springbootdemo.model.ApiResponse;
    import com.riemann.springbootdemo.model.ExportExcelData;
    import com.riemann.springbootdemo.service.ExportExcelService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;
    
    /**
     * Excel导出 Controller
     *
     * @author riemann
     * @date 2019/04/28 21:37
     */
    @RestController
    @RequestMapping(value = "/export")
    public class ExportExcelController {
    
        @Autowired
        private ExportExcelService exportExcelService;
    
       //@ResponseBody
        @RequestMapping(value = "/exportExcel", method= RequestMethod.POST)
        public ApiResponse exportExcel(@RequestBody ExportExcelData eeData) {
            ApiResponse apiResponse = new ApiResponse();
            if (eeData == null) {
                return null;
            } else {
                apiResponse = exportExcelService.exportExcel(eeData);
            }
            return apiResponse;
        }
    
    }
    

    该类注解注意点:

    1、@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面。若返回json等内容到页面,则需要加@ResponseBody注解。我这边直接使用了@RestController注解。所以@ResponseBody注解可以直接不写。

    2、@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面。

    3、@Autowired注解,注入Service服务对象,不写该注解的话会报异常

    Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
    

    4、@RequestMapping(value = "/exportExcel", method= RequestMethod.POST),我这个是Post请求,所以后面加上method为post请求;还有一种方式,直接写成 PostMapping(value = "/exportExcel")

    5、@RequestBody注解,我的是post请求,这是利用一个对象去获取前端传过来的数据;如果你是get请求,可以用 @PathVaribale 获取url中的数据 和 @RequestParam 获取请求参数的值

    get请求示例:

    (1)、PathVaribale 获取url路径的数据

    请求URL:
    localhost:8080/hello/id 获取id值

    @RestController
    public class HelloController {
        @RequestMapping(value="/hello/{id}/{name}",method= RequestMethod.GET)
        public String sayHello(@PathVariable("id") Integer id,@PathVariable("name") String name){
            return "id:" + id + " name:" + name;
        }
    }
    

    在浏览器中 输入地址:
    localhost:8080/hello/27/riemann

    输出:
    id:27 name:riemann

    (2)、RequestParam 获取请求参数的值

    获取url参数值,默认方式,需要方法参数名称和url参数保持一致
    localhost:8080/riemann?id=27

    @RestController
    public class HelloController {
        @RequestMapping(value="/hello",method= RequestMethod.GET)
        public String sayHello(@RequestParam Integer id){
            return "id:" + id;
        }
    }
    

    输出:
    id:27

    同理,有多个参数的话加后面加就行了。
    (@RequestParam Integer id, @RequestParam String name)

    三、检查Application类的注解

    package com.riemann.springbootdemo;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.ComponentScan;
    
    @SpringBootApplication
    @MapperScan("com.riemann.springbootdemo.dao")
    @ComponentScan(value = "com.riemann")
    public class SpringBootDemoApplication {
        public static void main(String[] args) {
            SpringApplication.run(SpringBootDemoApplication.class, args);
        }
    
    }
    

    1、@SpringBootApplication是一个复合注解,包括@ComponentScan,和@SpringBootConfiguration@EnableAutoConfiguration

    • @SpringBootConfiguration继承自@Configuration,二者功能也一致,标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到srping容器中,并且实例名就是方法名。
    • @EnableAutoConfiguration的作用启动自动的配置,@EnableAutoConfiguration注解的意思就是Springboot根据你添加的jar包来配置你项目的默认配置,比如根据spring-boot-starter-web ,来判断你的项目是否需要添加了webmvctomcat,就会自动的帮你配置web项目中所需要的默认配置。在下面博客会具体分析这个注解,快速入门的demo实际没有用到该注解。
    • @ComponentScan,扫描当前包及其子包下被@Component@Controller@Service@Repository注解标记的类并纳入到spring容器中进行管理。是以前的<context:component-scan>(以前使用在xml中使用的标签,用来扫描包配置的平行支持)。所以本demo中的User为何会被spring容器管理。

    2、@MapperScan("com.riemann.springbootdemo.dao")注解,扫描dao层的接口的,没有这个注解的话,不能和数据库交互。

    3、@ComponentScan(value = "com.riemann"),这个注解坑了我一下当时,这个注解主要就是定义扫描的路径,从中找出标识了需要装配的类自动装配到springbean容器中。这个只需要写com.riemann层,不需要写com.riemann.springbootdemo


    以上就是我对springboot项目能正常访问,但接口调用的时候404错误的一些理解,如果有什么理解不到位的地方,欢迎指出。

    展开全文
  • 有时候正常的文章链接... 概率是:正常1次,乱码2次,如此循环。 但是带乱码的文章 url 有时候能打开链接过去,这时候就形成了一个新的链接地址,如果使用 gitalk 的话,就回...
  • 控制台没有更多的错误提示,访问时候提示404 ![图片说明](https://img-ask.csdn.net/upload/201708/27/1503825779_382463.png) 各位大佬,我百度了许久也没找到合适的解决办法, 解决思路一开始是想是不是controller...
  • Tomcat正常访问localhost报404问题

    万次阅读 多人点赞 2018-05-09 17:00:45
    今天在配置Tomcat访问项目主页的时候发现报404错误,开始以为是我的项目xml配置问题,结果调了半天也不对,后来发现居然访问localhost:8080也报404,这个问题就严重了,于是开始了漫长的调试,终于成功!...

           今天在配置Tomcat访问项目主页的时候发现报404错误,开始以为是我的项目xml配置有问题,结果调了半天也不对,后来发现居然访问localhost:8080也报404,这个问题就严重了,于是开始了漫长的调试,终于成功!记录下最终解决方案,以供未来再遇到相似问题,有迹可查。

            通过咨询JAVA群中的大神,我查看了一下Tomcat文件夹中的webapps文件夹,发现里面并没有我的项目,但是我确实是把项目部署进去了,于是我查看了一下我的Tomcat的server页 发现里面的Tomcat路径不对,是默认的eclipse里面的路径,所以导致了Tomcat的部署失败:

    错误的路径配置如下:


    正确的配置应该是:


    但是当我这样操作之后,再次运行发现Tomcat直接起不来了,并且报无法找到文件路径的错误!

    然后我决定换个思路,先是不用eclipse启动Tomcat服务,使用Tomcat8.0的startup.bat启动,发现启动过程中报了拒绝访问的错误,感觉是访问权限有问题,于是通过百度查资料发现果然是这样,于是把Tomcat安装文件夹->属性->安全中给Users赋予了完全控制的权限,确定保存后再次运行startup.bat,果然顺利启动。

    然后我再返回去重新运行Tomcat,这次不再报错,Tomcat启动成功!再次访问localhost:8080,页面成功显示!


    然后访问我的项目页面,同样成功访问!至此问题成功解决

    总结:

    通过这次问题,知道了问题可能出在多方面,应该发散思维去解决问题,这次光在查访问地址上就查了半天,然后又各种找Tomcat的配置文件错误,就没想到是Tomcat的路径和权限会出现问题,以后要多多注意!



    展开全文
  • 我们在浏览网页的时候,经常会在打开网页的时候发现上面大大的写着一个 “404”字样的页面,而且显示“你所浏览的页面已经不在了”这样的页面到底什么样的含义呢?又对网站什么样的影响? 404页面是客户端在...

    404页面到底有什么样的含义呢?又对网站有什么样的影响?

    404页面是客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应,且不知道原因所返回的页面。

    据说在第三次科技革命之前,互联网的形态就是一个大型的中央数据库,这个数据库就设置在404房间里面。那时候所有的请求都是由人工手动完成的,如果在数据库中没有找到请求者所需要的文件,或者由于请求者写错了文件编号,用户就会得到一个返回信息:room 404 : file not found。

    404错误信息通常是在目标页面被更改或移除,或客户端输入页面地址错误后显示的页面,人们也就习惯了用它作为服务器未找到文件的错误代码了。

    造成404页面的原因:

     

    1、程序数据

    库出错:当误删了某个数据,或修改了程序的一些路径,也会导致产生大量的404错误页面,如果需要修改数据或者一些类似的操作,建议先备份一下文件。

    2、文件移动或者删除:有些网站的文件,最初的时候是存在某个路径的,但后来移走了,那访问之前的链接肯定就会无法打开,从而产生错误代码,还有就是当你在你的网站发表了某篇文章时,后来又将文章给删除了,当你再去访问这些文章链接时,就无法打开了。

    3、网站改版:站长们在发现网站有很多不足的地方时,一般都会去改版,但改版后,有很多以前的路径都换了,造成了以前的路径访问不了,变成了404页面。

    404页面对网站的影响

    1、降低搜索引擎对网站的评价。

    2、不利于用户体验 当你的网站存在大量的 404 的话搜索引擎就会对你的网站会进行一定的扣分从而被搜索引擎认为是个不好的网站。同样当用户访问你的网站,打开的都是 404 页面,也是很不利于用户体验的。因为大部分的用户,在发现这个自己所需要的页面不存在的时候,就会关闭这个网页,从而离开网页。所以从优化的角度来说,过多的 404 页面是不利于网站优化的。

    404页面的作用:

    1、避免被惩罚

    有些网站由于应用了一些错误的服务器配置,导致返回的是200状态码或是302状态码,虽然这些状态码对访问网站的用户没有影响,但却会误导搜索引擎,使搜索引擎认为该页面是有效页面,从而抓取下来,如果404页面过多,就造成了大量的重复页面,很有可能被搜索引擎认为是作弊而遭到惩罚。

    2、避免出现死链

    网站设置404页面后,当网站出现死链接,搜索引擎蜘蛛爬行这类网址时,就会得到404状态回应,也就知道该URL已经失效,便不再索引该网页,并享受护具中心反馈该URL表示的网页从索引数据库中删除,以此来避免因为死链接影响网站收录。

    3、避免信任度下降

    搜索引擎通过HTTP状态码来识别该网页的状态,当搜索引擎获得了一个错误链接时,网站应该返回404状态码,告诉搜索引擎放弃对该链接的索引。而如果返回200或302状态码,那搜索引擎就会为该链接建立索引,这导致大量不同的链接指向了相同的网页内容,那搜索引擎对该网站的信任度就会大幅降低。很多网站存在这个问题,那就是404页面返回的是200或302状态码而不是404状态码。

    展开全文
  • <div><p>在启动think-swoole服务的时候访问接口,...在我们启动服务的时候相当一部分的客户端响应的是404. 应该怎么解决这个问题。</p><p>该提问来源于开源项目:top-think/think-swoole</p></div>
  • 在运营网站的时候,SEO人员会经常遇到404错误页面,当网站出现404错误页面的时候,不仅会影响搜索引擎的友好性,同时也会影响用户体验,导致网站流量损失,网站跳出率也会增加。 那么,导致网站出现404页面的原因...

    在运营网站的时候,SEO人员会经常遇到404错误页面,当网站出现404错误页面的时候,不仅会影响搜索引擎的友好性,同时也会影响用户体验,导致网站流量损失,网站跳出率也会增加。

    ff82bcfe26080eeec7159e78d810ac1f.png

    那么,导致网站出现404页面的原因有哪些?应该如何解决呢?接下来就一起了解一下吧!

    1、网站服务器出现问题

    当网站服务器自身出现问题、或者服务器被竞争对手攻击,网站就会产生404错误页面,网站也就无法正常打开了。当网站服务器出现问题的时候,不仅会严重的影响用户体验,同时也会影响搜索引擎的友好性,以及搜索引擎对网站的评估。所以,一定要选择一个安全性、稳定性高的服务器,这样可以避免网站受到攻击。

    2、网站配置问题

    在建设网站的时候,优先考虑的就是用户体验了,其次就是有利于优化的原则。SEO人员都知道静态页面有利于优化,但随着搜索引擎的不断发展,现在也出现了伪静态页面以及动态页面了。正常情况下,SEO人员会优先选择静态页面和伪静态页面来配置网站,但有些人依然会选择动态页面来配置网站,使用静态页面配置网站的时候经常会出现问题,从而导致网站出现404页面。

    3、死链接以及垃圾链接

    随着网站的不断发展,在网站运营的过程中,肯定会出现一些死链接以及垃圾链接,这些链接用户就无法正常访问,从而就会出现404错误页面。所以,SEO人员应该及时的处理这些死链接以及垃圾链接,这样才会避免对网站的影响,还有利于搜索引擎对网站的抓取。

    4、页面监控

    对网站页面监控可以有效的预防网站出现404情况的发生,同时,就算出现了404页面,只要有效的监控,就可以避免404页面对网站造成的损失。所以,SEO人员一定要好好利用网站优化的各种辅助工具,要时刻的对网站进行检测,当网站出现问题的时候,一定要及时解决,这样才有利于网站的长期发展。

    总之,网站最好要避免404页面的出现,如果404页面出现,一定要快速的查找原因并解决问题,这样才有利于用户体验,避免流量损失,从而降低网站的跳出率。

    展开全文
  • 出现了无论怎么都是404的错误 ,是因为 这个是用maven建立的项目,每次执行之前 请务必用package打包!...如下信息 在tomcat log里面 如果正常启动,会三条初始化信息 tomcat出现了 No Spring WebAp...
  • 项目正常启动,代码也也没有错,但是却出现了404? 用过springboot项目的同学都知道,springboot项目启动时,默认是扫描与该启动类同包以及其子包下的类,但时候我们在做代码分层的时候,springboot在启动时是...
  • 发现某个yum源是能访问的,但是具体目录页下没有该文件 报404,然后不会再找别的yum源,这个时候就应当考虑将其后缀名改了,如果后续有用,再修改回来即可 换yum源中的问题,可以参考下面链接: ...
  • 今天我们要谈的是404页,404页在访问客户端的页面时,服务器出现无法正常显示的信息,或者服务器无法应对,客户输入错误的链接也出现404页但是,朋友们发现很多网站都制作了404页。那个作用是什么1.搜索引擎的友好度...
  • 原来是部署时,出了问题,因为使用IDE开发,Eclipse帮我们自动部署了,可有时候会出现问题。解决方案如下: 选中项目,右键:Properties -> Deployment Assembly 转载于:...
  • 这个问题还有一个现象就是你在web根目录右键new的时候,没有jsp file子项 这个问题的根本原因是web根目录配置错误 解决办法 选中web项目,按F12,在图示位置修改你的正确的根目录 在idea中,web根目录图标上会个...
  • 平时我们在工作在把网站做好后,往往喜欢把404页面忘记在服务器里面进行设置,导致我们在有时候页面进行超链接的时候把链接写错了,有时候无意的时候去点击的时候,就出现404错误这样一个页面,搞的我们很无语,一头...
  • ,tomcat启动看起来也是正常,但是在浏览器中访问的时候就出现了404的错误提示,我一开始还以为是项目的问题,但后来想了一下,觉得应该看看tomcat的日志文件,果真一看问题就出来了,还好自己这个意识,出错了的...
  • 搭建服务器的时候,用Windows的系统安装jdk和Tomcat,真的是崩溃N次,查找很多网页都没找到问题,现在真的是不会辜负努力的小白。下面记下遇到的问题及解决办法: 1、检查端口是否冲突 2、是否其他设置导致你的...
  • 最近接了一个需要传小视频的项目,本地开发一切顺利就在部署到服务器的时候出坑了。一部分文件无法上传,查了好多资料都没有找到比较好的解决方案。无赖之下又搜了一些nginx配置相关,后来看到一篇关于client_max_...
  • 莫名其妙的404

    2021-03-23 17:05:39
    今天使用springboot碰到一个静态文件404的问题,同路径下其它文件正常访问只有路径包含了/g的路径出了问题,我首先想到的就是字符编码问题,事实上也是这个样子。 gɡ你觉得这两个字母区别吗?表面看一模一样,...
  • 出现网页404页面的原因很多,所以问题反馈时会显示很多不同的问题编码,大家知道网站404页面吗?404页面是客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应,且不知道原因所返回的页面。这里新网小...
  • tp5项目在本地测试通过,但是上传到linux服务器上面的时候出现各种问题,折腾了两天终于解决,做个记录。 环境:乌班图 / nginx / php7.0 / thinkphp5.1 nginx安装方式未知(别人的服务器),安装后配置信息在/etc...
  • 404页面是用户浏览网站页面的时候,服务器无法正常提供信息,所返回的页面。主要原因可能由于服务器内部错误、服务器无法回应、URL错误、目标页面被删除或者更改等导致的,那么我们发现很多大型网站都存在404页面,...
  • 关于404错误

    2018-05-08 17:47:17
    404错误出现之后,一般正常套路都是访问路径的错误,出问题都是去前端找错误跳转,其实还有一个很大的可能是后端进行了跳转设置,且设置路径不合理,这种问题很容易理解,但是有时候就容易犯只去前端找错误的误区!...
  • 看日志的时候,我发现大量请求到了站点其实并不存在的地址,但是返回码居然是 200??这就不正常了,于是手工访问了一下一个不存在的页面,虽然 站点 在前台给我展示了一个 404 页面,但是浏览器显示返回码确实是 ...
  • 404 是说你找不到该页面,一般都是在加载配置文件的时候出错了,当你把配置文件删掉后,就没有再运行配置文件,再点击跳转肯定就不会有404了。 是不是你放了两个web.xml 在上面呀。你是先安装struts2就会一个...
  • 404表示的是路径未找到错误,解决办法...JSP页面运行时报的404错处理方法如下:保证在你的Console窗口中看不到任何起到影响的Exception(jsp在编译的时候会先检查web.xml文件,如果全部正常,没有任何Exception的话,...
  • 搜索引擎抓取到错误页面的时候,发现返回的是200,他就认为这是一个正常请求并正常响应 的一个网页,会进行收录。那么这样就造成了大量的重复页面,实际上对搜索引擎优化是很不利的。因此我们今天的目的是不...
  • 自定义网站404页面

    2018-11-21 20:25:00
    404页面是客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应,且不知道原因所返回的页面,简单的说就是当别人访问你网站的某一个已经删除或不存在的网页的时候,服务器自动显示的页面。404页面对seo...
  • post请求返回404

    万次阅读 2018-08-30 11:28:10
    最近提交表单的时候,,后台的代码也正常执行了,但返回的错误代码时404.显然是找不到请求的url。 可是后台的代码都执行了,怎么可能找不到url呢,上网搜查加提问,网上的大神说是可能因为后台的处理函数中页面...
  • 排查的时候发现 Nginx 下大量的 404 错误记录,而 Tomcat 两个,一个有正常的访问记录,而另一个虽然启动正常,但无任何记录。 这时候访问 Tomcat 下的静态页面也此问题,因此断定 Java 程序无误。 排查了...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 274
精华内容 109
关键字:

有时候正常有时候404