【无标题】

如何处理SpringMVC中的异常?

  • ControllerAdvice注解将该类声明为一个全局异常处理器,并指定需要处理的控制器类型。

  • ExceptionHandler注解定义异常处理方法,指定需要处理的异常类型。

  • log.error使用日志记录工具记录异常信息。

  • if(ex.getMessage().contains("   ")):根据异常信息中的内容判断特定的错误情况,如果是,构建一个表示错误的 R 对象,并将错误消息返回。

  • return R.error("未知错误"):如果不是特定的错误情况,返回一个通用的错误结果。

用户请求到出现页面流程?

1、DNS根据域名查询IP地址,流程为浏览器缓存 --> 操作系统缓存 --> 路由器缓存-->本地(ISP)域名服务器缓存 --> 根域名服务器。

2、浏览器缓存浏览器终于得到了IP以后,向服务器发送TCP连接,TCP连接经过三次握手。

3、浏览器和服务器建立连接以后,浏览器接着给这个IP地址给服务器发送一个http请求,方式为get,例如访问www.baidu.com。其本质是在建立起的TCP连接中,按照HTTP协议标准发送一个索要网页的请求。

4、服务器收到浏览器的请求以后,会解析这个请求(读请求头),然后生成一个响应头和具体响应内容。接着服务器会传回来一个响应头和一个响应体,响应头告诉了浏览器一些必要的信息,响应体就是具体的要请求的页面内容。

5、浏览器显示HTML,浏览器向服务器发送请求获取嵌入在HTML中的对象,对于那些动态的请求,动态网页等就必须要从服务器获取了,浏览器发送异步(AJAX)请求。

6、关闭TCP连接。

JVM运行时数据区是怎样的?

以JDK8为例:

  • 堆:对象实例、String常量池、基本类型常量池
  • 方法区:类信息、静态变量
  • 虚拟机栈:临时变量(方法内的变量)
  • 元空间:类常量池、运行时常量池

 

 

你可能感兴趣的:(Java面经,spring,java,后端)