Java开发工程师最新面试题库系列——Web部分(附答案)
2021-03-02 16:30
-
http和https有什么区别?
答:http是超文本传输协议,默认端口是80。https是安全的默认端口是443;http是明文传输,存在安全隐患,Https在Http的基础上增加了SSL/TLS协议,需要依靠整数来验证服务器身份,并且对服务器与客户端之间的传输进行通信加密。https协议需要到ca申请证书,一般免费证书很少,需要交费。Http不需要
-
get和post有什么区别?
答:
一、功能不同
1、get是从服务器上获取数据。
2、post是向服务器传送数据。二、安全性不同
1、get安全性非常低。
2、post安全性较高。
三、参数传递方式不同
1、get传递的参数在请求链接中
2、post可以将参数添加到请求正文中
四、传递信息大小不同
1、get传输信息不大于2k
2、post传输的信息一般不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
-
foward和redirect有什么区别?
答:
- forward请求转发是服务端跳转,redirect重定向是客户端跳转
- forward跳转可以携带参数,redirect不可以携带参数
-
什么是Servlet?
答:Servlet是用Java编写的服务器端程序, 其主要功能在于交互式地浏览和修改数据,生成动态Web内容.
-
描述一下Servlet的生命周期
答:
init() 初始化.
service() 处理客户端的请求, 具体业务逻辑. ServletRequest 对象用于获得客户端信息,ServletResponse 对象用于向客户端返回信息(客户端可以理解为浏览器)
destroy() 结束时调用. 这个方法只有在servlet的service方法内的所有线程都退出的时候,或在超时的时候才会被调用。init() 和 destroy() 都只会在Servlet创建和销毁时调用一次, 而service() 则会在响应不同请求时多次调用.
-
Servlet是单例还是多例?支持异步处理吗?
答:servlet是单例的,严格地说在web.xml中配置的一个ServletMapping对应一个单例实例(如果一个Servlet被映射了两个URL地址,会生成两个实例)。例如同时并发2000次请求一个Servlet,如果不是单例的,内存瞬间要创建2000个对象,同时为了线程安全还得阻塞对方线程,其性能非常之差。为了保护Servlet的线程安全通常是使用同步块(或方法)来保护共享数据,其次可以volatile、Lock一些锁机制,还可以使用ThreadLocal来打通安全通道,另外还有原子操作也是用来保护数据安全,有非常多的选择。
下一篇:python加强
文章标题:Java开发工程师最新面试题库系列——Web部分(附答案)
文章链接:http://soscw.com/index.php/essay/59118.html