个人总结javaWeb以及SSH等相关面试题
来源:互联网 发布:js定时器怎么用 编辑:程序博客网 时间:2024/06/05 12:01
1:Servlet的生命周期
1,初始化阶段:调用init()方法
2,响应客户请求阶段:调用service()方法
3,终止阶段:调用destroy()方法
加载和实例化Servlet。这项操作一般是动态执行的。然而,Server通常会提供一个管理的选项,用于在Server启动时强制装载和初始化特定的Servlet。
2:四种会话跟踪技术(也叫四大作用域)
page否是代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面
request是是代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于forward 指令和 include 动作的关系)
session是是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求
application是是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域
3:Form中的get和post的方法,在数据传输过程中分别对应了http协议中的get和post方法,二者的主要区别:
4:jsp的内置对象及其作用:(详细请点击链接)
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
二、response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
三、session对象
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.
四、out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
五、page对象
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
六、application对象
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
七、exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
八、pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。
九、config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用 的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
5:在JSP中如何使用注释(主要有四种方式)
一、显式注释
<!--注释内容-->
这种注释方法只能在<%%> 外 面,否则无效
所谓显示注释,是指在客户端可以看见
二、隐式注释一
//注释内容 单行注释
这种注释方法只能在<%%> 里 面,否则无效
所谓隐式注释,是指在客户端看不见,但在服务器端可以看见
二、隐式注释二
/*注释内容*/ 多行注释
这种注释方法只能在<%%> 里 面,否则无效
所谓隐式注释,是指在客户端看不见,但在服务器端可以看见
三、隐式注释三
<%--注释内容--%>
这种注释方法只能在<%%> 外 面,否则无效
所谓隐式注释,是指在客户端看不见,但在服务器端可以看见
6:利用ajax技术做重名验证(完整js代码)
<script>
function sendName() {
var xmlhttp = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) {
//Mozilla 浏览器
xmlhttp = new XMLHttpRequest();
if (xmlhttp.overrideMimeType) {//设置MiME类别
xmlhttp.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) {
// IE浏览器
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
//初始化、指定处理函数、发送请求的函数
if (!xmlhttp) { // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
var iname = window.document.form1.iname.value;
if(iname.length <= 0){
alert("姓名不能为空。");
window.document.form1.iname.focus();
return false;
}
var url = "check.jsp?iname="+iname;
xmlhttp.open("get",url,false);
xmlhttp.setRequestHeader("If-Modified-Since","0");//清除缓存
xmlhttp.send(null);
if(xmlhttp.readyState == 4) { // 判断对象状态
if (xmlhttp.status == 200) { // 信息已经成功返回,开始处理信息
var n=xmlhttp.responseText;
switch(n){
case "1":var str1="姓名为空,请检查。";break;//PHP页面返回的数据源判断变量是否为空
case "2":var str1="SQL语句为错误,请联系开发人员解决。";break;//PHP SQL 语句是不是出错
case "3":var str1="姓名可以注册使用";break;//判断是不是数组,如果是不是数组则可以使用返回3
case "4":var str1="姓名重名,请更换一个";break;//判断如果是数组说明已经被注册
}
window.document.getElementByIdx_x_x("show").innerHTML=n+str1;
} else { //页面不正常
alert("您所请求的页面有异常。");
}
}
}
</script>
</head>
<body>
<h1>信息管理录入表</h1>
<form action="write.php" method="post" >
姓名: <input type="text" onblur="sendName();" /><br />
<input type="submit" value="保存"/>
</form>
</body>
</html>
然后执行server方法(也就是doGet,doPost)方法
7:如何现实servlet的单线程模式:
servlet引擎会在第一次初始化servlet时在内存中 创建一和实例。并且执行init()初始化方法 接下来的请求servlet引擎会开辟一个新的线程 然后执行server方法(也就是doGet,doPost)方法
8:JSP和Servlet的相同点和不同点,他们之间的联系是什么?
联系:JSP 是 Servlet 技术的扩展,本质上是 Servlet 的简易方式,更强调应用的外表表达。
相同点:JSP和Servlet和本质上都是java类。
不同点: Servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 HTML 里分离开来。
而 JSP 的情况是 Java和 HTML 可以组合成一个扩展名为.jsp 的文件。
JSP 侧重于视图,Servlet 主要用于控制逻辑。
9: Hibernate有哪5个核心接口:
SessionFactory 对象;SessionFactory 接口:初始化Hibernate,充当数据存储源的代理,创建session 对象,sessionFactory 是线程安全的,意味着它的同一个实例可以被应用的多个线程共享,是重量级、二级缓存;Session 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个session,是轻量级、一级缓存;Transaction 接口:管理事务;
10:SSH相关填空面试题:
Struts 2以 FilterDispatcher 为核心控制器,它的初始化方法为
public String execute(){ return “SUCCESS”;}
JSP三大编译指令 page指令 include指令 taglib指令详细点击链接
taglib指令的语法:
<%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
例如
<%@ taglib uri="http://www.jspcentral.com/tags" prefix="public" %>
Struts2应用的的最基础的几个类库是:SSH核心包
struts2-core-2.1.6.jar --------------- struts2的核心包
freemarker-2.3.13.jar--------------- FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具
commons-logging.jar ----------- Jakarta的通用日志记录包
ognl-2.6.11.jar -------------- 支持ognl表达式
xwork-2.1.2.jar -------------- xwork的包 由于Struts2是由xwork的延伸 有些类依然关联着 xwork的类
基于hibernate用标注描述映射关系:映射实体类中表示主键的属性是@id,映射实体类中普通属性的标注是@Column,实体属性对应的列用标注@Table查看详细
Hibernate的会话接口是Session,它由接口SessionFactory创建,Hibernate处理事务的接口是Transaction,封装HQL的接口是Query查看详细
在数据库中条件查询速度很慢如何优化代码:
- 个人总结javaWeb以及SSH等相关面试题
- JavaWeb面试题(一)---SSH框架面试题总结
- javaweb相关面试题
- 个人总结面试题
- 个人总结面试题
- SSH面试题总结
- SSH面试题总结
- SSH面试题总结
- SSH面试题总结
- SSH面试题总结
- SSH面试题总结
- SSH面试题总结
- 【转】ssh相关面试题
- 个人总结面试题大全
- Java 面试题-----个人总结
- 前端面试题个人总结
- spring面试题个人总结
- SSH面试题总结.doc
- 如何监听ScrollView滑到底部
- 关于Java泛型的面试题
- 多态性实现机制——静态分派与动态分派
- 文件存储
- Codeforces Round #265 (Div. 2)-C. No to Palindromes!
- 个人总结javaWeb以及SSH等相关面试题
- opencv中step[i],step1(i),elemsize,elemsize1
- Neural Networks and Deep Learning CH4
- ios开发者如何获取iOS应用中所有图片资源
- ARM 构建交叉编译工具链
- 类初始化
- 图形界面编程(五) 布局容器类(3)
- poj2104[划分树问题]
- Harris角点标注法