Java Web
1. JDBC 技 术
1.1 说下原生 JDBC 操作数据库流程?
第一步:Class.forName()加载数据库连接驱动;
第二步:DriverManager.getConnection()获取数据连接对象; 第三步:根据 SQL 获取 sql 会话对象,有 2 种方式
Statement.PreparedStatement ;
第四步:执行 SQL 处理结果集,执行 SQL 前如果有参数值就设置参数值setXXX();
第五步:关闭结果集.关闭会话.关闭连接。
1.2 说说事务的概念,在 JDBC 编程中处理事务的步骤。
- 事务是作为单个逻辑工作单元执行的一系列操作。
- 一个逻辑工作单元必须有四个属性,称为原子性.一致性.隔离性和持久性(ACID) 属性,只有这样才能成为一个事务处理步骤:
- conn.setAutoComit(false);设置提交方式为手工提交
- conn.commit()提交事务
- 出现异常,回滚 conn.rollback();
1.3 JDBC 的脏读是什么?哪种数据库隔离级别能防止脏读?
当我们使用事务时,有可能会出现这样的情况,有一行数据刚更新,与此同时另一个查询读到了这个刚更新的值。这样就导致了脏读,因为更新的数据还没有进行持久化,更新这行数据的业务可能会进行回滚,这样这个数据就是无效的。数 据 库 的 TRANSACTIONREADCOMMITTED , TRANSACTIONREPEATABLEREAD 和 TRANSACTION_SERIALIZABLE 隔离级别可以防止脏读
2. 网路通讯部分
2.1 TCP 与 UDP 区别?
UDP:
a.是面向无连接, 将数据及源的封装成数据包中,不需要建立连接b.每个数据报的大小在限制 64k 内
c.因无连接,是不可靠协议d.不需要建立连接,速度快
TCP:
- 建立连接,形成传输数据的通道.
- 在连接中进行大数据量传输,以字节流方式c.通过三次握手完成连接,是可靠协议
d 必须建立连接效率会稍低.聊天.网络视频会议就是 UDP
2.2 说一下什么是 Http 协议?
客户端和 服务器端之间数据传输的格式规范,格式简称为“超文本传输协议”。 是一个基于请求与响应模式的.无状态的.应用层的协议,基于 TCP 的连接方式
2.3 get 与 post 请求区别?
区别 1:
get 重点在从服务器上获取资源,post 重点在向服务器发送数据;
区别 2:
get 传输数据是通过 URL 请求,以 field(字段)= value 的形式, 置于 URL 后,并用"?"连接,多个请求数据间用"&"连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的;
post 传输数据通过 Http 的 post 机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;
区别 3:
Get 传输的数据量小,因为受 URL 长度限制,但效率较高; Post 可以传输大量数据,所以上传文件时只能用 Post 方式;
区别 4:
Get 是不安全的,因为 URL 是可见的,可能会泄露私密信息,如密码等; Post 较 get 安全性较高;
区别 5:
get 方式只能支持 ASCII 字符,向服务器传的中文字符可能会乱码。post 支持标准字符集,可以正确传递中文字符。
2.4 http 中重定向和请求转发的区别?
本质区别:转发是服务器行为,重定向是客户端行为。
重定向特点:两次请求,浏览器地址发生变化,可以访问自己 web 之外的资源,传输的数据会丢失。
请求转发特点:一次强求,浏览器地址不变,访问的是自己本身的 web 资源,传输的数据不会丢失。
3. Cookie 和 Session
Cookie 是 web 服务器发送给浏览器的一块信息,浏览器会在本地一个文件中给每个 web 服务器存储 cookie。以后浏览器再给特定的 web 服务器发送请求时,同时会发送所有为该服务器存储的 cookie。
Session 是存储在 web 服务器端的一块信息。session 对象存储特定用户会话所需的属性及配置信息。当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
Cookie 和 session 的不同点:
- 无论客户端做怎样的设置,session 都能够正常工作。当客户端禁用cookie 时将无法使用 cookie。
- 在存储的数据量方面:session 能够存储任意的 java 对象,cookie 只能存储 String 类型的对象。
4. Jsp 和 Servlet
4.1 Servlet 的执行流程
Servlet 的执行流程也就是 servlet 的生命周期,当服务器启动的时候生命周期开始,然后通过 init()《启动顺序根据 web.xml 里的 startup-on-load 来确定加载顺序》方法初始化 servlet,再根据不同请求调用 doGet 或 doPost 方法,最后再通过 destroy()方法进行销毁。
4.2 doGet 和 doPost 的区别
doGet 和 doPost 都是接受用户请求的方法,doGet 处理 get 请求,doPost处理 post 请求,doGet 用于地址栏提交,doPost 用于表单提交,在页面提交数据时,get 的数据大小有限制 4k,post 没有限制,get 请求提交的数据会在地址栏显示,post 不显示,所以 post 比 get 安全。
4.3 Jsp 和 Servlet 的区别
你可以将 JSP 当做一个可扩充的 HTML 来对待。
虽然在本质上 JSP 文件会被服务器自动翻译为相应的 Servlet 来执行。
可以说 Servlet 是面向 Java 程序员而 JSP 是面向 HTML 程序员的,除此之外两者功能完全等价。
4.4 JSP 九大内置对象
pageContext :只对当前 jsp 页面有效,里面封装了基本的 request 和 session 的对象
Request :对当前请求进行封装
Session :浏览器会话对象,浏览器范围内有效Application :应用程序对象,对整个 web 工程都有效Out :页面打印对象,在 jsp 页面打印字符串Response :返回服务器端信息给用户
Config :单个 servlet 的配置对象,相当于 servletConfig 对象Page :当前页面对象,也就是 this
Exception :错误页面的 exception 对象,如果指定的是错误页面,这个就是异常对象
4.5 JSP 的三大指令:
Page :指令是针对当前页面的指令Include :用于指定如何包含另一个页面Taglib :用于定义和指定自定义标签
4.6 七大动作
Forward,执行页面跳转,将请求的处理转发到另一个页面Param :用于传递参数
Include :用于动态引入一个 jsp 页面
Plugin :用于下载 javaBean 或 applet 到客户端执行useBean :使用 javaBean
setProperty :修改 javaBean 实例的属性值getProperty :获取 javaBean 实例的属性值
5. Ajax &Jquery
5.1 谈谈你对 Ajax 的认识?
Ajax 是一种创建交互式网页应用的的网页开发技术;Asynchronous JavaScript and XML”的缩写。
Ajax 的优势
通过异步模式,提升了用户体验。
优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用。
Ajax 引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。
Ajax 的最大特点:
可以实现局部刷新,在不更新整个页面的前提下维护数据,提升用户体验度。
5.2 使用 Jquery 手写 Ajax
$.ajax({
url:'http://www.baidu.com', type:'POST',
data:data, cache:true, headers:{},
beforeSend:function(){}, success:function(){}, error:function(){}, complete:function(){}
});
5.3 请简单介绍 Ajax 的使用
Ajax = 异 步 JavaScript 和 XML 。
Ajax 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
有很多使用 AJAX 的应用程序案例:新浪微博.Google 地图.开心网等等。
5.4 Ajax 可以做异步请求么?
可以.ajax 请求默认是异步的.如果想同步 把 async 设置为 false 就可以了默认是 true
如果是原生的 js xmlHttp.open("POST",url,false);
如果是 jquery
$.ajax({
url: some.php, async: false, success : function(){
}
});
5.5 请介绍下 Jsonp 原理
jsonp 的最基本的原理是:动态添加一个<script>标签,使用 script 标签的 src 属性没有跨域的限制的特点实现跨域。首先在客户端注册一个callback, 然后把 callback 的名字传给服务器。此时,服务器先生成 json 数据。 然后以 javascript 语法的方式,生成一个 function , function 名字就是传递上来的参数 jsonp。最后将 json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端。客户端浏览器,解析 script 标签,并执行返回的 javascript 文档,此时数据作为参数,传入到了客户端预先定义好的 callback 函数里。
5.6 Jquery 常用选择器
1.ID 选择器 #id
描述:根据给定的 id 匹配一个元素, 返回单个元素(注:在网页中,id 名称不能重复)
2.类选择器 .class
描述:根据给定的类名匹配元素,返回元素集合示例:$(".test") 选取所有 class 为 test 的元素3.元素选择器 element
描述:根据给定的元素名匹配元素,返回元素集合示例:$("p") 选取所有的<p>元素
4. *
描述:匹配所有元素,返回元素集合示例:$("*") 选取所有的元素
示例:$("#test") 选取 id 为 test 的元
素