Servlet/JSP
Servlet/JSP为Java EE中接收、转发、响应客户端请求的的技术,是基于Web容器所提供的服务。
Servlet与JSP关系
Servlet是使用Java程序语言所编写的一个Java类,通过Web容器的加载、初始化,受到容器的管理才得以成为一个Servlet。JSP会被Web容器转译为Servlet的".java"源,编译为".class"文件,然后加载到容器中,最后是由Servlet实例(Instance)提供服务的。
注意:容器是Java所编写的一个应用程序,负责与服务器沟通,管理Servlet所需的各种对象和数据、Servlet生命周期。
Get和Post的区别
- Get请求和Post请求是学习Servlet/JSP时最常接触的两个请求方式。除了长度过长的请求数据之外,许多请求可以使用GET,也可以使用Post。其区别如下:
- Get跟随在URL之后的请求参数长度是有限的,过长的请求参数,或像文件上传这类的大量数据,就不适合用Get请求,而用Post。
- Get的请求参数会出现在地址栏上,敏感性或保密性的请求参数,就不应该使用Get请求来发送。
- Post请求的请求参数不会出现在地址栏上,无法添加到浏览器的书签中,如果有些页面是根据请求参数进行不同的页面显示,而又希望可以让用户设置书签,以便日后可以直接点击书签进行浏览,则此时应使用Get。
- 有些浏览器会根据地址栏来缓存数据,如果地址栏是相同的URL,则会直接从浏览器缓存中取出数据,而不会真正发送请求至服务器上查询最新的数据。通过Get请求中附加时间戳记,让每次的Get请求地址栏都不相同。
- Get请求应该用于幂等操作,即Get请求纯粹是取得数据,而不改变服务器上的数据或状态。
- Post请求应该用于非幂等操作,请求所发送的数据,可能会影响服务器上的数据或状态。