IDEA开发工具、Servlet工具API自学文档

72 阅读5分钟

知识点总结:

Alibaba  Java Coding Guidelines

阿里巴巴编码规范扫描插件,可以让代码符合阿里的规范

GenerateAllSetter

自动生成实体类的get,set方法;以及在创建实例时,快速生成设置属性代码

GenerateSerialVersionUID

是一种用于在序列化和反序列化过程中进行核验的版本号。序列化时,会将一个版本号(serialVersionUID)与每个可序列化类相关联。

RestfulTool

是一套Restful服务开发辅助工具集,具体功能包括:

servlet项目目录结构

image.png

问题总结

1.为什么要有get,set方法?

①数据封装:通过把类的属性设置为私有的,可以防止外部代码直接访问或修改这些属性。而通过提供公共的get和set方法,我们可以控制对这些属性的访问和修改。

②控制访问权限:get和set方法允许控制外部代码对类属性的访问。可以根据需要设置对属性的读和写权限,从而确保数据的一致性和安全性。

③易于扩展:如果需要在获取或设置属性值时执行一些额外的操作,例如在获取属性值时进行计算或者在设置属性值时触发某些事件,可以在get和set方法中添加这些操作,而无需修改使用这些属性的代码。

2.serialVersionUID有什么用?

JAVA序列化的机制是通过判断实体类的 serialVersionUID 来验证版本一致性的 。 在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。

3.UTF-8 编码与GBK编码区别

GBK 包含全部中文字符。 GBK编码专门用来解决中文编码的,是双字节的。 不论中英文都是双字节的。 UTF-8(UnicodeTransformationFormat-8bit)则包含全世界所有国家需要用到的字符。 它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。

4.tomcat  context path 的作用?

Tomcat的Context Path,也叫Context Root,是用来定义Web应用程序的根路径的。 它定义了Web应用程序在Tomcat服务器上的访问路径。

5.如果不修改idea的application  context为"/",有什么区别?

①访问路径的变化:默认情况下,IDEA会将项目的上下文路径设置为项目的名称。这意味着在访问项目中的页面或资源时,需要在URL中包含项目的名称。如果将application context修改为"/",则将直接使用根路径作为上下文路径,无需在URL中包含项目名称。

②URL的简洁性:将application context设置为"/"可以使URL更加简洁和易于记忆。这对于开发人员和用户来说都是更方便的,因为不需要在URL中包含额外的项目名称。

6.SpringBootDevTools包有什么用?(热部署)

SpringBootDevTools包是SpringBoot提供的一个开发工具包,主要用于提高开发效率。以下是它的几个主要用途:

自动重启:当项目中的文件发生更改时,使用DevTools的应用程序会自动重新启动,而无需手动重新启动应用程序。

禁用模板缓存:在开发环境中,DevTools默认禁用模板引擎的缓存功能。这可以确保当页面内容发生更改时,模板引擎会重新解析模板,从而可以立即看到修改过的内容。

启用调试日志记录:DevTools可以启用web组的调试日志记录,这有助于开发人员查找和解决问题。

支持 LiveReload:如果浏览器中安装了LiveReload扩展,并与DevTools包含的嵌入式LiveReload服务器交互,那么静态资源的更改会触发浏览器刷新。

7.SpringBoot为什么没有webapp目录?

因为它采用了不同于传统Web应用的打包和部署方式。

在传统的Web应用中,例如使用SSH或SSM框架开发的应用,无论是使用Maven还是Gradle作为构建工具,都需要有webapp目录。这个目录下存放着WEB-INF目录和静态资源,WEB-INF目录下存放着web.xml和需要安全处理的jsp页面等。其中,web.xml用于配置SpringMVC的前端控制器,或者初始化Spring,或者配置全局字符集等配置,是一个必须存在的文件。

然而,在SpringBoot中取而代之的是resource目录下的static目录和template目录。SpringBoot是以jar包的方式打包程序的,因此没有webapp目录。

SpringBoot没有webapp目录是因为它采用了不同于传统Web应用的打包和部署方式。

SpringBoot以jar包的方式打包程序,这与传统的Web应用有所不同。在传统的Web应用中,通常会使用war包进行打包,并且需要包含webapp目录来存放相关的Web资源。然而,SpringBoot的打包方式使得它不再需要webapp目录。

因此,由于SpringBoot的打包方式和嵌入式Web服务器的使用,使得它不再需要webapp目录来存放Web资源。