本人在传统软件公司工作了三年,在大学又学习了一年多了。现在,又面临着再次找工作。之前谁说的“最好的稳定,是上一份工作失去之后,马上就能找到下一份。”曾有一段时间深以为然,可是真的要找个合适的确实不那么容易啊!本人现希望谋得一份Java中级工程师的职位,望大家能推荐一下。

面试的这个公司是同学推荐去的,因此也省了很多事情。主要谈一下技术面试,虽然他们主要开发语言是PHP,但是面试过程中倒是没怎么涉及到PHP的问题。主要还是一些基本的知识,现将主要的内容总结如下:

============================华丽分割线============================================

1.介绍cookiesession的区别,怎么获取与使用?(这个问题比较开放,可深可浅,现在将这里涉及的主要问题总计如下答案)

答:

  • 一、cookie机制和session机制的区别

cookie机制采用的是在客户端保持状态的方式,而session机制采用的是在服务器端保持状态的方式。

同时我们也看到,由于服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择。

  • 二、会话cookie和持久cookie的区别

如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。

  如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。

  存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。

  • 三、如何利用实现自动登录

  当用户在某个网站注册后,就会收到一个惟一用户ID的cookie。客户后来重新连接时,这个用户ID会自动返回,服务器对它进行检查,确定它是否为注册用户且选择了自动登录,从而使用户务需给出明确的用户名和密码,就可以访问服务器上的资源。

  • 四、如何根据用户的爱好定制站点

  网站可以使用cookie记录用户的意愿。对于简单的设置,网站可以直接将页面的设置存储在cookie中完成定制。然而对于更复杂的定制,网站只需仅将一个惟一的标识符发送给用户,由服务器端的数据库存储每个标识符对应的页面设置。

  • 五、cookie的发送

  1.创建Cookie对象

  2.设置最大时效

  3.将Cookie放入到HTTP响应报头

  如果你创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie:存储在浏览器的内存中,用户退出浏览器之后被删除。如果你希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。

发送cookie需要使用HttpServletResponse的addCookie方法,将cookie插入到一个Set-Cookie HTTP请求报头中。由于这个方法并不修改任何之前指定的Set-Cookie报头,而是创建新的报头,因此我们将这个方法称为是addCookie,而非setCookie。同样要记住响应报头必须在任何文档内容发送到客户端之前设置。

  • 六、cookie的读取

  1.调用request.getCookie

  要获取有浏览器发送来的cookie,需要调用HttpServletRequest的getCookies方法,这个调用返回Cookie对象的数组,对应由HTTP请求中Cookie报头输入的值。

  2.对数组进行循环,调用每个cookie的getName方法,直到找到感兴趣的cookie为止

   cookie与你的主机(域)相关,而非你的servlet或JSP页面。因而,尽管你的servlet可能只发送了单个cookie,你也可能会得到许多不相关的cookie。

例如:

 String cookieName = “userID”;

   Cookie cookies[] = request.getCookies();

     if (cookies!=null){

         for(int i=0;i<cookies.length;i++){

     Cookie cookie = cookies[i];

     if (cookieName.equals(cookie.getName())){

         doSomethingWith(cookie.getValue());

    }

  }

}
View Code

相关文章: