您的位置:首页 > 职场人生

个人总结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查看详细

Session
session = sessionFactory.openSession();

Transaction
trans = session.beginTransaction ();

Query
query = session.createQuery(“from User”);

在数据库中条件查询速度很慢如何优化代码:

1.建索引 (数据很多时建立分区索引)
2.减少表之间的关联  
3.优化sql,尽量让sql很快定位数据,不要让sql做全表查询,应该走索引,把数据量大的表排在前面 
4.简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: