面试一:
问题一:HttpSession的创建过程以及服务器端如何管理session?
将数据保存在session中 从get方式的参数或form中获取需要保存的数据 ---创建session ---将该数据保存在session中 session.setAttribute("prod", prod); --创建cookie --将该session的id保存在session中 --将cookie通过response返回给浏览器 服务器获取session保存的数据: 创建session --从session中获取之前保存的数据 (String) session.getAttribute("prod") |
问题二:如果用户的浏览器禁用cookie,如果继续使用session?
转https://blog.csdn.net/xiaodanjava/article/details/8652172 当客户端浏览器中禁止 Cookie,Servlet 容器无法从客户端浏览器中取得作为 Cookie 的 Session ID,也就无法跟踪客户状态。 Java Servlet API 中提出了跟踪 Session 的另一种机制,如果客户端浏览器不支持 Cookie,Servlet 容器可以重写客户请求的 URL,把 Session ID 添加到 URL 信息中; HttpServletResponse 接口提供了重写 URL 的方法:public java.lang.String encodeURL(java.lang.String url) 该方法的实现机制为: 举例: 当使用浏览器访问某个servlet或JSP文件时,例如<a href=“maillogin.jsp“> 如果浏览器未关闭cookie时,cookie中携带了session的id ; 当浏览器关闭cookie时,cookie无法携带session的id,那使用什么方式来携带session的id呢?? 使用重写URL--使用response.encodeUrl() , 例如 <a href=<%=response.encodeURL(“maillogin.jsp“)%>> , 这样当使用session然后浏览器关闭cookie时,访问该jsp时,会在后面自动添加session的id |
问题三:hibernate中对象的三种状态分别是什么?详细说明
//TODO
问题四:spring框架ioc的底层原理(不是指怎么实现的,而是利用什么原理实现的)
注解和反射 |
问题五: jQuery 里的 each()方法如何continue(跳过本次循环),如何break(结束循环)?
在js的for循环或者while循环中,都是采用break,continue来进行退出循环以及跳出循环。但是在jquery中的each循环时,退出循环是需要使用return false,跳出循环时需要使用return true; $.each(Object, function(name, value) { this; //this指向当前属性的值 name; //name表示Object当前属性的名称 value; //value表示Object当前属性的值 return false;//退出循环 return true;//跳出循环 }); |
each() 方法规定为每个匹配元素规定运行的函数 输出每个 li 元素的文本: |
问题六:jquery如何阻止事件冒泡?
问题七:html5自定义属性是什么?
面试二:
1、面向对象
2、前端和后端交互
1、servlet--jsp : 2、前后端分离 : 前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互 |
使用了前后端分离 eg1: login.html
eg2:
eg3:
|
3、ajax
$.post(url,param,function(result){ ....... }){} |
$.getJSON(url,function(result){ ...... }); |
$("body").load("role/listUI.do",fuction(){ //在某个位置异步加载某也url页面 ..... }); |
$.ajax( url... type.. data .... ); |
4、jquery选择器(注意:只看HTML,jsp和jquery,其他向js、dhtml、css 可以不看,没那么多精力)
$("div").css(); $("#b2").css(); |
5、数据库事务特性,脏读、幻读、不可重复读,事务隔离性
事务特性:ACID A automic : C consistent : I isolate: 一个事务在执行时,事务内部正在操作的数据必须封锁起来,不会被其他事务修改,类似于Java中多线程的同步锁 D duration: 对数据库中数据的操作具有永久性,就算系统出现了故障,也可以使用数据库的备份和恢复来保证数据的修改 |
脏读(没用的数据):事务A-新增后未提交 ,事务B读取了 不可重复读:修改或删除 ; 幻读:新增 ;事务A--读取某个条件或某一行的数据;事务B--插入复合该条件的数据;事务A--再读取该条件的数据, |
事务隔离级别: 读未提交:允许脏读,不允许同时修改 读提交:允许不可重复读,不允许脏读 可重复的:允许幻读,不允许不可重复读和脏读 事务序列化:一个事务完成,另一个事务才能开始执行 |
6、线程池
Excecutor类的下述静态方法,可以返回ExcecutorService对象,其表示线程池 newSingleThreadPool() newFixedThreadPool() newScheduleThreadPool() newCachedThreadPool() ExcecutorService对象执行excecute()或submit()会创建一个线程来执行指定任务 |--submit()会返回一个future对象,用于判断线程是否执行成功 ExececutorService对象执行shutdown()会关闭线程池 见见线程池博客 |
7、string转integer,double转integer
integer转string: 1、String str = Integer.toString(a); 2、String str = String.valueOf(a); string转integer: 1、Integer i = Integer.valuesOf(str); string <----> integer , 需要进行非空判断 |
8、sql语句
select * from user; insert into user values(null,"tang",24); delete from user where id = 1; update user set name="peng" where id = 2; |
9、springmvc注解
@RequestBody 通过@requestBody可以将请求体中(post)的JSON字符串绑定到相应的bean上,当然,也可以将其分别绑定到对应的字符串上。
|