### 附1:关于GET与POST请求方式的区别
使用GET方式提交请求时,请求参数会体现在URL中,所以,不适合用于提交敏感信息(涉及安全、隐私等),同时,请求参数的长度还会受到限制,通常,限制值是由浏览器和服务器端的限制值共同决定的!
使用POST方式提交请求时,请求参数会被封装在请求体中,不会体现在URL中,由于不能被直接看到,所以,相对安全性较高,并且提交的请求参数的长度没有限制!
尽管POST方式优点较多,但是,GET方式也具有易于收藏、分享的优点是不可取代的!另外,GET请求的处理速度比POST请求更快!
### 附2:关于转发与重定向
无论是转发,还是重定向,都可以使得浏览器显示某个指定的页面。
转发时,客户端只发出过1次请求;重定向时,客户端会发出2次请求!
由于在转发时,服务器端的处理过程中可能涉及控制器和页面等多个组件,是在处理同一次请求时执行的,所以,这些组件之间可以传递、共享数据,具体表现为“控制器中的数据可以转发到页面中,由页面完成显示”;由于在重定向时,客户端发出了2次请求,在服务器端,处理第1次请求时产生的数据,无法直接在处理第2次请求时使用!
由于在转发时,客户端只发出了1次请求,所以,在客户端的浏览器的地址栏中,只会显示第1次请求的路径;由于在重定向时,客户端发出了2次请求,所以,在客户端的浏览器的地址栏中,显示的是最后一次请求的路径。
### 附3:关于拦截器(Interceptor)与过滤器(Filter)的区别
拦截器和过滤器都可以对若干种请求进行“拦截”或“过滤”,使得处理这些请求时都会执行相同的一段代码,并且,最终都可以选择“阻止”或“放行”,这类组件都可以形成“链”。
过滤器是Java EE中的组件,而拦截器是SpringMVC中的组件,所以,只要使用Java EE技术开发服务器端应用程序,无论是否使用框架技术,都可以使用过滤器,而只有使用了SpringMVC框架,才可以使用拦截器,并且,只要被SpringMVC框架处理的请求,才可能被拦截器处理。
过滤器的配置相对比较繁琐,拦截器的配置既有黑名单,又有白名单,也支持使用通配符,所以,配置非常灵活!
过滤器是执行在所有的`Servlet`组件之前的!而拦截器在处理1个请求时最多可能执行3次,其中,第1次是在`DispatcherServlet`之前、在`Controller`之前执行的!
### 附4:关于字符编码
计算机能够直接识别并处理的只有二进制,每一个二进制中的`0`或`1`占1个二进制位(bit),每1个字节(byte)占8个二进制位。
由于1个字节只占8位,除去最高位作为符号位,实际可用位数只有7位,只能表示128种不同的组合!
在ASCII码中约定了1个字节能表示的二进制的序列与常用字符的对应关系,例如使用`110 0001`(97)对应`a`……
由于汉字的种类较多,使用1个字节只能表示128种,则需要更多的字节数才能表示汉字!在Java语言中,每个字符都是占2字节的,使用的是Unicode编码。
Unicode编码只能在内存中使用,如果数据需要传输,例如`1111 1010 1111 0101 1010 1110 1011 1100`在网络中传输,接收方就无法明确这到底4个英文,还是2个汉字,或是1个字母+1汉字+1字母,或2字母+1汉字,或1汉字+2字母。所以,为了解决传输过程中无法识别(正确的断开)的问题,就产生了UTF-8编码。
UTF-8其实是Unicode的传输编码。它使用了特定的二进制位表示特定的意义,如果某个字符是由2个字节所组成的,它的编码一定是:
110 xxxxx 10 xxxxxx
如果某个字符是由3个字节组成的,它的编码一定是:
1110 xxxx 10 xxxxxx 10 xxxxxx
如果某个字符是由4个字节组成的,它的编码一定是:
11110 xxx 10 xxxxxx 10 xxxxxx 10 xxxxxx
spring mvc的相关知识点
最新推荐文章于 2024-07-18 09:38:37 发布