javaweb面试题
一:什么是B/S和C/S?
B/S是Brower/Server(浏览器/服务器模式)的缩写,客户机上只要安装一个浏览器,实现与服务器交互;
C/S是Client/Server(客户端/服务器模式)的缩写,客户机需安装专用客户端,实现与服务器交互,如数据库产品;
B/S代表,淘宝网、京东网站。
C/S代表,腾讯QQ
主要区别如下:
1、 B/S使用浏览器访问,安装维护的成本代价很小。
2、 C/S需要安装客户端软件,安装维护成本较大。
二:如何设置servlet初始化参数?如何获取servlet初始化的参数?
1、在web.xml里为每一个Servlet配置初始化参数;
2、通过ServletConfig对象实现对Servlet初始化对象的获取;
三:Ajax是什么?
1、Ajax是采用了异步请求的方式,解决了页面无刷新式提交的问题,改善了页面的用户体验效果;常用自动完成提示,注册时用户名重复性校验。
2、常用的Ajax框架: Jquery中的ajax
答题技巧:解释概念,说明用途,举例
四:HTTP请求的GET与POST方式的区别?
Get和Post都是提交表单的方式之一;
1、[安全性]get方式提交后,数据会在地址栏中显示出来,而post方式不会,所以post更安全;
2、[数据长度]get方式在提交数据的时候,数据长度是有限制的;而post方式在理论上对提交数据的大小是无限制的;
3、[效率]get方式效率更高
五:说一说Servlet的生命周期? Servlet里常用的方法有哪些?
1、Servlet生命周期包括加载和实例化、初始化、处理请求以及销毁。
2、Servlet被服务器调用构造方法实例化,第一次访问Servlet时,容器运行其init方法进行初始化,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
六:Servlet API中forward() 与redirect()的区别?
1、forward是请求转发,而redirect是重定向;
2、请求转发是服务器将客户端的请求转发到另一个地址去处理,然后将响应返回给客户端;实际上是1次请求,1次响应,对客户端而言是透明的;而重定向是服务器根据客户端发来的请求,返回给客户端一个新的地址,客户端根据这个返回的地址再发送请求,得到响应;实际上是2次请求,2次响应,而且客户端的地址是第二次访问的地址;
3、转发只能转发到服务器自己的资源,重定向无限制。
4、转发的效率高于重定向
5、转发地址栏不会改变,重定向地址栏会变成第二次访问的地址。
转发核心代码:request.getRequestDispatcher(“资源地址”).forward(request,response);
重定向核心代码:response.sendRedirect(“资源地址”);
七:什么是JSP
JSP是Java Server Page的简称,是由Sun公司倡导简历的一种动态网页技术标准,用于开发动态网页。JSP页面由HTML代码和嵌入其中的Java代码组成,服务器在页面被客户端请求后执行Java代码,将生成的HTML页面返回给客户端。
八:Jsp优缺点。
1、JSP技术的优点
(1)一次编写,到处运行。
(2)跨平台。
(3)强大的可伸缩性。
2、JSP技术的弱势
(1)正是由于为了跨平台的功能,所以极大的增加了产品的复杂性。
(2)占用内存较大。
(3)代码调试不便。
九:jsp有哪些内置对象?
JSP共有以下9个内置的对象:
page、config、application、request、response、session、out、exception、pageContext
request:封装客户端的请求,其中包含来自GET或POST请求的参数;
response:封装服务器对客户端的响应;
session:封装用户会话的对象;
application:封装服务器运行环境的对象;
page:JSP页面本身(相当于Java程序中的this);
pageContext:通过该对象可以获取其他对象;
out:输出服务器响应的输出流对象;
config:Web应用的配置对象;
exception:封装页面抛出异常的对象。
十:讲解JSP中的四种作用域。
JSP的四大作用域:page、request、session、application
page:变量只能在当前页面上生效
request:变量能在一次请求中生效,一次请求可能包含一个页面,也可能包含多个页面,比如页面A请求转发到页面B
session:代表变量能在一次会话中生效,基本上就是能在web项目下都有效。一般来说,只要浏览器不关闭,session的使用就不会受到影响。
application:代表整个应用程序范围。
存入数据:作用域对象.setAttribute(“名字”,数据);
取出数据:作用域对象.getAttribute(“名字”);