《java面试宝典》HTML/CSS/JavaScript 部分
HTML/CSS/JavaScript 部分:
一个完整的网页由结构、表现、行为组成。
结构指 HTML、XHTML、XML 等
表现指 CSS 样式 行为指脚本(JS) JavaScript 是 Netscape(网景)推出客户端运行的解释性脚本语言。
注:Javascript 是弱类型语言,变量的声明只能用 var
Html 基本结构:<html> <head><title></title></head><body></body></html>
设置隐藏文本框:
设置只读文本框:
== 等于 比较的是值 === 绝对等于 不仅比较值 还要比较类型
Undefined:未定义
1.声明但没有赋值
2.没有声明的变量
获得对象:document.getElementById(“id”);
获得对象的值:document.getElementById(“id”).value
创建数组:
1)var 变量名称 = new Array()
2)var 变量名称 = new Array(长度)
3)var 变量名称 = new Array(值,....)
4)var 变量名称 = [值,...]
属性
length --> 返回数组成员的数目
方法
push() --> 向数组的未尾添加一个或多个成员,返回为新数组的长度
unshift() --> 向数组的开头添加一个或多个成员,返回为新数组的长度
shift() -> 删除数组的第一个成员,并且返回该成员。
pop() --> 删除数组的最后一个成员,并且返回该成员。
splice() --> 插入/删除数组成员,并且用新成员取代原有成员。
slice(start[,end]) --> 返回数组的一部分
join() --> 使用分隔符将数据成员连接在一起
Ajax&JQuery 部分:
1、什么是 ajax?asynchronous javascript and xml:
异步的 javascript 和 xml。
为了解决传统的 web 应用当中“请求-处理-等待-响应”的弊端而创建的技术,其实质
是:使用 javascript 调用浏览器内置的一个对象(XmlHttpRequest)异步向服务器发送请
求,服务器返回 xml 或者 text 给 XmlHttpRequest,然后,javascript 使用服务器返回的数
据更新页面。在整个过程当中,页面没有任何的刷新。
2.使用 ajax 发送异步请求:
首先获得浏览器内置对象
function getXhr(){
var xhr=null;
/* (typeof XMLHttpRequest) !='undefined' */
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}else{
xhr=new ActiveXObject('Microsoft.XMLHttp');
}
return xhr;}
/* Ajax 发送 get 请求*/
function sendAjaxGet(){
var username=document.getElementById("t1").value;
var password=document.getElementById("t2").value;
var s1=document.getElementById("s1");
var xhr=getXHR();
var uri="test.do?username="+username+"&password="+password;
xhr.open("get",encodeURI(uri),true);
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status==200){
var txt=xhr.responseText;
s1.innerHTML=txt;
}else{
s1.innerHTML="系统异常,稍后再试!";
}
}else{
s1.innerHTML="正在验证....";
}
}
xhr.send(null);
}
/*ajax 发送 post 请求 */
function sendAjaxPost(){
var username=document.getElementById("t1").value;
var password=document.getElementById("t2").value;
var s1=document.getElementById("s1");
var xhr=getXHR();
var uri="test.do";
xhr.open("post",encodeURI(uri),true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status==200){
var txt=xhr.responseText;
s1.innerHTML=txt;
}else{
s1.innerHTML="系统异常,稍后再试!";
}
}else{
s1.innerHTML="正在验证....";
}
}
xhr.send("username="+username+"&password="+password);
}
什么是 JQuery?
Jquery 是一个 js 框架,对底层 js 代码进行封装,方便用户操作。
并且 jquery 提供了对 ajax 的支持,使用 jquery 也可以发送异步请求,
不需要屏蔽浏览器差异,代码书写简单。
Jquery 对 ajax 的支持:
1)、序列化元素:
serialize():将 jquery 对象包含的表单或者表单控件转换成查询字符串
serializeArray():转换为一个数组,
每个数组元素形如{name:fieldName,value:fieldVal}的对象。
2)、三个方法
(1)load(url),将服务器响应插入当前
jQuery 对象匹配的 dom 元素之内。一般用于从服务器获取静态的数据
(比如.html 文件),支持返回 javascript。
/* jquery 的 load 请求*/
$(function(){
$('#i4').click(function(){
$("#d1").load("list.do");
});
});
(2)$.get(url,[data],[callback],[type])
url:服务器端要访问的组件的地址
data:向服务器传递的参数,参数的格式必须是:{"name":"zs","age",22}
callback:回调函数,其格式 function(data,statusText){}
data:服务器返回给客户端的数据
statusText:服务器返回的状态
type:服务器返回的数据的类型
包括如下几种:
xml:返回 xml 文档对象
html:返回的是一个 html
script:返回的是一个 js 脚本
json:返回的是一个 json 字符串,jQuery
会将该字符串自动转换成 js 对象。
text:返回的是一个文本
$.post()格式同上。
/* jquery 发送 get 或者 post*/
$(function(){
$("#i5").click(function(){
$.get(
"test.do",
{"username":$('#t1').val(),"password":$('#t2').val()},
function(data,statusText){
if(statusText=="success"){
alert(statusText);
alert(data.id+","+data.username+","+data.password);
}else{
alert("系统异常,稍后再试.");
}
},
"json"
);
});
});
(3)$.ajax(options):
options 是一个形如{key1:value1,key2,value2...}的 js 对象,
用于指定发送请求的选项。
选项参数如下:
url(string):请求地址
type(string):GET/POST
data(object/string):发送到服务器的数据格式是 {"":"","",""}
dataType(string) :预期服务器返回的数据类型,一般有:
xml,html, script, json, text:
success(function):请求成功后调用的回调函数,有两个参数:
function(data,textStatus),其中,
data 是服务器返回的数据,可以是 html,text,jsonObj,xmlDoc
textStatus 描述状态的字符串。
error(function):请求失败时调用的函数,有三个参数
function(XmlHttpRequest,textStatus,errorThrown){}
如果 textStatus 取不到错误消息,就用 errorThrown。
/*jquery 发送 ajax 请求 */
$(function(){
$('#i6').click(function(){
$.ajax({
url:"test.do",
type:"get",
data:{"username":$('#t1').val(),"password":$('#t2').val()},
dataType:"json",
success:function(data,statusText){
alert(data.id+","+data.username+","+data.password);
},
error:function(xhr,statusText,errorThorwn){
alert(statusText);
}
});
});
});
Servlet&Jsp 部分:
1. MVC 的各个部分都有那些技术来实现?如何实现?
M-Model 模型
模型的职责是负责业务逻辑。包含两部分:业务数据和业务处理逻辑。
例如:实体类、DAO、Service 等都属于模型层
V-View 试图
试图的职责是负责显示界面和用户交互(收集用户信息)。
属于视图的类是不包含业务逻辑和控制逻辑的 JSP(如果 JSP 页面中有<% %>就不能
算是视图层的类,或者 JSP 中更有转发和重定向的控制逻辑也是不可以的)。
C-Controller 控制器
控制器是模型层 M 和视图层 V 之间的桥梁,用于控制流程。
比如我们之前项目中写的 Action 或 Servlet
2.servlet 的生命周期
web 容器加载 servlet,生命周期开始。
通过调用 servlet 的 init()方法进行 servlet 的初始化。
通过调用 service()方法实现,根据请求的不同调用不同的 doGet()或者 doPost()方法。
结束服务,web 容器调用 servlet 的 destroy()方法。
3. jsp与servlet的区别及联系
JSP 是Servlet 技术的扩展,本质上是Servlet 的简易方式,更强调应用的外表表达。
JSP编译后是"类servlet"。Servlet 和JSP 最主要的不同点在于,Servlet 的应用逻辑是在
Java文件中,并且完全从表示层中的HTML 里分离开来。而JSP 的情况是Java 和HTML 可以
组合成一个扩展名为.jsp 的文件。
JSP 侧重于视图,Servlet 主要用于控制逻辑。
4. 数据库连接池的工作机制:
J2EE 服务器启动的时候,会创建一定数量的池连接,并维持不少于此数量的池连接。
程序需要时,池驱动程序会返回一个未使用的池连接并将其标记为忙。
如果当前没有空闲连接,池驱动会新建一批,数量由配置参数决定。
当调用池连接完成后,池驱动将此连接标记为空闲,其他调用就可以使用这个连接。
5 .jsp 有哪些内置对象?作用分别是什么?
答:JSP 共有以下 9 种基本内置组件(可与 ASP 的 6 种内部组件相对应):
page jsp 网页本身
pageContext 网页的属性是在这里管理
request 客户端请求,此请求会包含来自 GET/POST 请求的参数
session 与请求有关的会话期,只要浏览器不关闭,保存在 session 里面的值都存在.
application servlet 正在执行的内容
config servlet 的构架部件
response 网页传回用户端的回应
out 用来传送回应的输出
exception 针对错误网页,未捕捉的例外
6.forward(转发) 和 redirect(重定向)的区别
答:forward 是服务器请求资源,服务器直接访问目标地址的 URL,把那个 URL 的响应内容
读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来
的,所以它的地址栏中还是原来的地址。
redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说
浏览器会用刚才请求的所有参数重新请求。
7.Jsp 的四种会话范围
page 是代表与一个页面相关的对象和属性。作用域在当前页.
request 是代表与Web客户机发出的一个请求相关的对象和属性。
session 只要访问的浏览器不关闭,作用域就一直存在。
application 只要访问的服务器不关闭,作用域就一直存在。
8. 什么是 B/S 结构,C/S 结构?
C/S 是 Client/Server 的缩写。服务器通常采用高性能的 PC、工作站或小型机,并采用大
型数据库系统,如 Oracle、Sybase、Informix 或 SQL Server。客户端需要安装专用的客户端
软件。
B/S 是 Brower/Server 的缩写,客户机上只要安装一个浏览器(Browser),如 Netscape
Navigator 或 Internet Explorer,服务器安装 Oracle、Sybase、Informix 或 SQL Server 等数据库。
在这种结构下,用户界面完全通过 WWW 浏览器实现,一部分事务逻辑在前端实现,但是
主要事务逻辑在服务器端实现。浏览器通过 Web Server 同数据库进行数据交互。
9. 编码格式转换问题:
String str=new String("中国".getBytes("ISO-8859-1"),"GBK").trim();
10.URL 和 URI 的区别?
URL:统一资源定位符, 指的是 Internet 文件在网上的地址, 用在客户程序和服务器上,
定位客户端连接服务器所需要的信息,它不仅定位了这个信息资源,而且定义了如何找到这
个资源.
URI:统一资源标识符,Web 上可用的每种资源 :HTML 文档、图像、视频片段、程序
等„是由一个通过通用资源标志符(Universal Resource Identifier, 简称"URI")进行
定位,不局限于客户端服务器.
URI 一般由三部分组成:
1.访问资源的命名机制。
2.存放资源的主机名。
3.资源自身的名称,由路径表示。
URL 是 URI 的一个子集。
