面试也是一场考试,是考试就有简单的基础题和复杂的难题,对于java面试也是如此,有java的基础面试题,有java的高级面试题。前面已经总结整理了不少各类的java基础面试题,今天来汇总一些javaweb高级面试题,帮助那些不是java零基础的程序员学习回顾javaweb的知识。
1、谈谈你对ajax的认识?
答:Ajax 是一种创建交互式网页应用的的网页开发技术;“JavaScript and XML”的缩写。
Ajax 的优势: 通过异步模式,提升了用户体验;优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用;Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。
Ajax的最大特点:可以实现局部刷新,在不更新整个页面的前提下维护数据,提升用户体验度。
2、jsonp的原理是什么?
答:JavaScript 是一种在 Web 开发中经常使用的前端动态脚本技术。在 JavaScript 中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。这一策略对于 JavaScript 代码能够访问的页面内容做了很重要的限制,即 JavaScript 只能访问与包含它的文档在同一域下的内容。
jsonp的最基本的原理是:动态添加一个
3、说一下常用的Linux命令都有哪些?
答:列出文件列表:ls【参数 -a -l】
创建目录和移除目录:mkdir rmdir
用于显示文件后几行内容:tail
打包:tar -xvf
打包并压缩:tar -zcvf
查找字符串:grep
显示当前所在目录:pwd
创建空文件:touch
编辑器:vim vi
列出文件列表:ls 【参数 -a -l】
创建目录和移除目录:mkdir rmdir
用于显示文件后几行内容:tail
打包:tar -xvf
打包并压缩:tar -zcvf
查找字符串:grep
显示当前所在目录:pwd
创建空文件:touch
4、Linux怎么关闭进程?
答:通常用ps查看进程PID,用kill命令终止进程。ps命令用于查看当前正在运行的进程。grep 是搜索,例如:ps -ef | grep java表示查看所有进程里 CMD 是 java 的进程信息。
5、JSP中动态的include与静态include的区别?
答:动态include用于jsp:include动作实现它总是会检查所含文件的变化,适用于包含动态页面,并且可以带参数。
静态include用include伪码实现,不会检查所含文件的变化,适用于包含静态页面<%@include file=“include.html”%>。
6、请求转发和重定向的区别?
答:(1)请求转发是一个请求一次响应,而重定向会是两次请求两次响应。(2)请求转发地址栏不变化,而重定向会显示后一个请求的地址。(3)请求转发只能转发到本地项目其他servlet,而重定向不只能重定向到本项目其他servlet,还能定向到其他项目。(4)请求转发是服务器端行为,只需要给出转发的servlet路径,而重定向需要给出request URI,即包含项目名。(5)请求转发带值,重定向不带值。
7、JSP和Servlet有哪些相同点和不同点,联系是什么?
答:JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类Servlet",Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在java文件中,并且完全从表现HTML中分离出来,而JSP的情况是java和HTML可以组合成一个扩展名为.jsp的文件,JSP偏重于视图,Servlet偏重于业务逻辑。
8、jsp有哪些内置对象?作用分别是什么?
答:JSP共有以下9种基本内置组件。
(1)request对象 对应客户端请求,此请求会包含来自GET/POST请求的参数,通过它了解客户的需求,然后做出响应。
(2)response对象 响应客户请求的有关信息,包括返回给客户端的信息。
(3)session对象 它指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。
(4)out对象 它是JspWriter类的实例,是向客户端输出内容常用的对象。
(5)page对象 它是指向当前JSP页面本身,有点象类中的this指针,它是 java.lang.Object类的实例。
(6)application对象 它实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭。
(7)exception对象 它是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。
(8)pageContext对象 它提供了对JSP页面内所有的对象及名字空间的访问。
(9)config对象 它是在一个Servlet初始化时,JSP引擎向它传递信息用的。
9、tomcat容器是如何创建servlet类实例?用到了什么原理?
答:当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对xml文件进行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化。
10、Servlet API中forward()与redirect()的区别?
答:forward是服务器端的转向也就是请求转发而redirect是客户端的跳转也就是重定向。使用forward浏览器的地址不会发生改变。而redirect会发生改变。
forward是一次请求中完成。而redirect是重新发起请求,意味着上一次请求中传递过来的参数在重新发起请求时将不再存在。
forward是在服务器端完成,而不用客户端重新发起请求,效率较高。
forward请求转发不允许访问外部资源,redirect重定向则可以访问外部资源。因为相当于两次请求,第二次请求与第一次请求无关,所以第二次请求可以去访问任何网页。
以上就是今天整理的javaweb高级面试题,希望大家可以好好学习这10道题,将这些题目里涉及到的知识点都复习回顾一下,遇到哪里不会的要及时查阅资料弄懂,以后顺利通过面试。