金三银四面试题之JavaWeb基础篇
1. 什么是B/S和C/S?
B/S是Brower/Server(浏览器/服务器模式)的缩写,客户机上只要安装一个浏览器,实现与服务器交互,安装维护的成本很小;
C/S是Client/Server(客户端/服务器模式)的缩写,客户机上需要安装专用客户端,实现与服务器交互,安装维护的成本较大。
2. 如何设置Servlet初始化的参数?如何获取Servlet初始化的参数?
在web.xml里为每一个Servlet配置初始化参数;
通过ServletConfig对象获取Servlet初始化参数。
3. 什么是Ajax?
Ajax(Asynchronous Javascript And XML)是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax采用了异步请求的方式,解决了页面无刷新式提交的问题,改善了页面的用户体验效果。
4. HTTP请求的GET与POST方式的区别?
- GET方式表单中的数据放到HTTP数据包的头部,POST方式放到body中;
- GET方式提交后,数据会在地址栏中显示出来,而POST方式不会,所以POST更安全;
- GET方式在提交数据的时候,数据长度是有限制的,而POST方式在理论上对提交数据的大小是无限制的;
- GET方式提交表单永远使用字符方式提交,而POST方式提交表单可以是字节方式也可以是字符方式;
- GET方式比POST方式效率更高;
5. 说一说Servlet的生命周期?
Servlet的生命周期包括加载和实例化、初始化、处理请求以及服务结束。
Servlet被服务器实例化后(用户第一次访问该Servlet时),容器运行其init()方法,请求到达时运行其service()方法,service()方法自动派遣运行与请求对应的doGet()或doPost()方法,当服务器决定将实例销毁时调用其destroy()方法。
6. Servlet API中forward()与redirect()的区别?
- forward()是请求转发,而redirect()是重定向;
- 请求转发是服务器将客户端的请求转发到另一个地址去处理,然后将响应返回给客户端,实际上是1次请求,1次响应;而重定向是服务器根据客户端发来的请求,返回给客户端一个新的地址,客户端根据这个返回的地址再发送请求,得到响应,实际上是2次请求,2次响应;
- 转发只能转发到自己的资源,重定向无限制;
- 转发的效率高于重定向。
转发核心代码:request.getRequestDispatcher(“资源地址”).forward(request,response)
重定向核心代码:response.sendRedirect(“资源地址”)
7. 什么是JSP?
JSP 是一种简化的 Servlet 设计,可以调用强大的 Java 类库,并可以与其他相关的一些技术(Servlet、JavaBean、EJB)联合工作。
8. JSP的优缺点?
优点:一次编写,到处运行;系统的多平台支持;强大的可伸缩性;多样化和功能强大的开发工具支持;
缺点:产品复杂性大;需要占用大量的内存和硬盘空间;JSP程序调试困难。
9. JSP的九大内置对象分别是什么?
request 请求对象
response 响应对象
pageContext 表示JSP页面上下文
session 表示一次会话
application 表示web应用上下文
out 输出响应体
config 表示Servlet配置
page 表示当前JSP页面
exception 表示发生异常对象
10. JSP中的四种作用域是什么?
page:表示变量只能在当前页面生效;
request:表示变量能在一次请求中生效,一次请求可能包括一个或多个页面;
session:表示变量能在一次会话中生效,基本上就是在web项目下都有效;
application:表示在整个应用程序中生效;
11. Session和Cookie的区别?
Session和Cookie都是会话跟踪技术;
Session是保存在服务器端的技术,而Cookie是保存在客户端的技术;
Cookie只能存字符串,而Session可以存对象。