个人总结javaWeb以及SSH等相关面试题
2016-10-25 15:29
651 查看
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方法,二者的主要区别:
1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。
4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。
5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
6、Get是Form的默认方法。 action的引号内填的是路径方法,比如发送到邮箱或其他网页什么的
4:jsp的内置对象及其作用:(详细请点击链接)
简单的记忆方法:记住一个单词:parscope(气象雷达)示波器,它包含:page,application,request,response,session,config,out,pagecontext,exception。
一、request对象
客户端的请求信息被封装在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查看详细
Sessionsession = sessionFactory.openSession();
Transaction
trans = session.beginTransaction ();
Query
query = session.createQuery(“from User”);
在数据库中条件查询速度很慢如何优化代码:
1.建索引 (数据很多时建立分区索引)2.减少表之间的关联
3.优化sql,尽量让sql很快定位数据,不要让sql做全表查询,应该走索引,把数据量大的表排在前面
4.简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据
相关文章推荐
- Java Web 相关面试题总结
- JAVA学习:流相关面试题及常见用法总结
- Java Web开发中Sping的总结和SSH配置
- Tomcat(一) Tomcat是什么:Tomcat与Java技术 Tomcat与Web应用 以及 Tomcat基本框架及相关配置
- 个人学习总结的部分java小知识与面试题(一)
- Java基础学习总结(104)——多线程、并发、工具类相关的面试题
- 黑马程序员--Java基础加强--12.利用反射操作泛型I【与反射+泛型相关的接口类型综述】【Type】【ParameterizedType】【个人总结】
- Java Web 个人开发总结
- javaweb三大框架(ssh)知识点总结
- 面试题-Java Web-JavaBean以及数据库连接池(JNDI)
- 关于牛客网的JAVA面试题错题总结以及归纳(1)
- (20)WEB的相关知识以及JSP入门基础知识点总结
- 个人总结Java面试题(一)
- Tomcat(一) Tomcat是什么: Tomcat与Java技术 Tomcat与Web应用 以及 Tomcat基本框架及相关配置
- Java Web开发中Sping的总结和SSH配置
- 【Java学习小结】-【Web入门相关总结二】
- Javaweb 相关概念经典总结(一)
- 尽管关于Java中文问题的讨论已经相当多了,但由于Java的相关技术标准繁多,面向Java的Web服务器、应用服务器以及JDBC数据库驱动等都没有官方的标准,所以Java应用在处理中文时所存在的问
- java线程总结3--synchronized关键字,原理以及相关的锁
- web 前端面试题个人总结