1.jsp内置对象?作用?
request :客户端请求,包含来自 GET/POST,提供了几个用于获取 cookie, 和 session 的方法
response :网页传回用户端的回应
pageContext :网页的属性是在这里管理,获取上下文对象
session :与请求有关的会话期,表示一个请求的HttpSession 对象。Session 可以存贮用户的信息
application :servlet 正在执行的内容
out :用来传送回应的输出
config: servlet 的构架部件
page: JSP 网页本身
exception: 针对错误网页,未捕捉的例外
2.描述servlet的生命周期和基本框架
Servlet是Java编写的程序,此程序是在服务器端运行的,处理客户端的请求,并将处理结果以响应的方式返回给客户端。
生命周期:加载和实例化、初始化、处理请求和服务结束。
Servlet被实例化后à容器运行init方法初始化à请求到达时,运行service方法à自动派遣与请求对应的doxxx方法à服务器调用destroy方法销毁实例。
基本框架:
//继承HttpServlet,重写doGet和doPost方法 public class ServletTest extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } |
3.使用过哪些javascript库和前端框架?
库:
Jquery:它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。
Lodash:提供了数百个功能性的JavaScript实用程序来补充原生字符串、数字、数组和其它原始对象方法。
React:用于构建用户界面的JavaScript类库,也是去年最受关注的类库。它专注于Model-View-Controller(MVC)开发的“View”部分,使用它可以轻松创建保留状态的UI组件。它是实现虚拟DOM的首选类库之一, 它的内存结构能够有效地计算差异,页面更新也更加有效。小巧,高效,快捷灵活 简单的组件模型
框架:
AngularJS :它使用双向数据绑定扩展HTML,同时解耦了DOM操作和应用程序逻辑。
Vue.js:用于构建用户界面的轻量级渐进框架。它提供了一个类似React的虚拟DOM驱动视图层,可以与其它类库集成,用于构建强大的单页面应用。该框架是由之前在AngularJS工作过的Evan You创建的,他提取了AngularJS中自己喜欢的部分。Vue.js使用HTML模板语法将DOM绑定到实例数据。Model是在数据改变时更新view的纯JavaScript对象。
Knockout.js:是最早的MVVM框架之一,它确保了UI与底层数据保持同步,具有模板和依赖关系跟踪。
4.Label标签的作用是什么?如何使用?
Label标签来定义表单控制间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上。
FOR属性功能:表示Label标签要绑定的HTML元素,你点击这个标签的时候,所绑定的元素将获取焦点。
ACCESSKEY属性功能:表示访问Label标签所绑定的元素的热键,当您按下热键,所绑定的元素将获取焦点。
5.如何规避javascript多人开发函数重命名的问题,列出所有的解决办法,举例说明?
命名空间、封闭空间、js模块化mvc(数据层、表现层、控制层)、变量转换成对象的属性、对象化。
6.编写一个方法,实现对象的深度克隆?
function deepClone(obj) { var o = obj instanceof Array ? [] : {}; for(var k in obj) o[k] = typeof obj[k] === Object ? deepClone(obj[k]) : obj[k]; return o; } var a = [[1, 2, 3], [4, 5, 6, 7]]; var b = deepClone(a); alert(b);//输出1、2、3、4、5、6、7 |
7.Http中get和post方式的区别?
get方法:
GET请求能够被缓存
GET请求会保存在浏览器的浏览记录中
GET请求的URL能够保存为浏览器书签
GET请求有长度限制
GET请求主要用以获取数据
post方法:
POST请求不能被缓存下来
POST请求不会保存在浏览器浏览记录中
POST请求的URL无法保存为浏览器书签
POST请求没有长度限制
8.XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式及区别?
本题三个答题点:
a: 两种形式 dtd,schema
b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的)
c: 两种主要方式:dom,sax
区别:DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问
SAX:不同于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问
9.简述 Java Server Page(JSP)和 Servlet 的联系和区别?
Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。
10.jquery的选择器有哪些?
11.javascript有哪些数据类型?
基本类型:Undefined、Null、Boolean、Number
引用类型:Object、Array和Function
12.在Jsp中使用JavaBean?
JSP技术提供了三个关于JavaBean组件的动作元素,即JSP标签,它们分别为:
<jsp:useBean>标签:用于在JSP页面中查找或实例化一个JavaBean组件。
<jsp:setProperty>标签:用于在JSP页面中设置一个JavaBean组件的属性。
<jsp:getProperty>标签:用于在JSP页面中获取一个JavaBean组件的属性。
13.谈谈我对Ajax的原理的理解
(同步,是发送方发送数据之后,必须等接收方接收数据必须做出回应之后,才可以进行下一步。
异步的话则是发送方发送数据之后不需等接收方做出回应,可以进行下一步操作。)
Ajax的原理简单来说,实际上就是用javascript的方式,通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。
Ajax原理过程 :
利用XMLHttpRequest对象发送简单请求的基本步骤:
1)创建XMLHttpRequest对象实例
2)设定XMLHttpRequest对象的回调函数,利用onreadystatechange属性
3)设定请求属性:设定HTTP方法(GET或POST);设定目标URL,利用open()方法
4)将请求发送给服务器。利用send()方法
利用DOM对服务器响应进行处理
Ajax优点:
1.无刷新更新数据,减少用户等到时间,更好的用户体验
2.异步与服务器通信,无需打断用户,响应更加迅速
3.可以把服务器的一些负担转到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,AJAX的原则是“按需取数据”,可以最大程度的减少冗余请求和响应对服务器造成的负担,提升站点性能。
5.基于标准化,广泛被支持
Ajax缺点:
1.破坏了前进后退功能,用户往往通过后退按钮来取消上一步操作,但是使用ajax无法实现。可以使用Gmail来解决这个问题,它只是采用的一个比较笨但是有效的办法,即用户单击后退按钮访问历史记录时,通过创建或使用一个隐藏的IFRAME来重现页面上的变更。
2.安全问题。ajax技术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。ajax的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击。还有自身受到如跨站脚本攻击,SQL注入等攻击。
3.对搜索引擎支持较弱
4.一些手持设备不能很好的支持等
14.对easyUi的理解?
基于jquery框架,主要前端视图。
easyui在封装组件的时候,是以对象的思想封装,以函数调用的方式实现。
easyui的组件大量使用了继承 。