`
tomzhu0526
  • 浏览: 21233 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

貌似简单的面试题

阅读更多
来到上海也一个月了,好歹也面试了几家了,可惜没有结果.有的呢是刚好问到我不知道的地方,有的呢是因为我没经验,有点郁闷,呵呵.
闲来无事,总结一下面试的心得吧.
好多公司的面试题目,也就是网上流传的所谓"葵花宝典",准备充分的话应该没有问题(当然,这些面试都是像我一样的新手),关键是与主管的所谓聊聊.
有些问题看似简单,可真正回答起来不一定能很完美.我就遇到过这样的问题:
1.客户请求的时候Servlet怎么工作,一共加载几次?
2.什么时候用doGet()与doPost(),系统是如何判断的?这两种都在什么情况下使用?
3.在MVC中,C是如何通过M传递数据给V的?用一句话来概括一下工作方式.
4.详细谈一下forward与redirect.
看起来很简单吧,但当你试着想把它们详细的说的很明白时,估计会发现词不达意了吧.和很多人一样,往往是"知其然不知其所以然".
那天面试时,有位主管的一句话给我的触动很大,"貌似简单的东西往往不简单",这都是些基础,但能考验出一个人的真正水平吧.
我还没有找到工作,所以我还在努力的总结这些貌似简单的东西.
有什么心得大家一起分享吧.
分享到:
评论
24 楼 likeblood 2007-06-14  
这些题貌似也不不简单啊
就像是jdk,有多少人会去看HashMap是如何实现的呢?但是都会用
23 楼 抛出异常的爱 2007-06-14  
robbln 写道
这些题网上都有啊.
你面试之前怎么不看一下呢,要有备而战噻!
ddandyy 写道
ls真行............
投完票之后真痛快。。。。
22 楼 ddandyy 2007-06-14  
ls真行............
21 楼 robbln 2007-06-14  
这些题网上都有啊.
你面试之前怎么不看一下呢,要有备而战噻!
20 楼 myyate 2007-06-06  
楼主真是的 ,把我骗进来了。这些题目其实看那个jsp书就学过的。
19 楼 jjunix 2007-05-31  
servlet-2_4-fr-spec.pdf
p24-p25

For a servlet not hosted in a distributed environment(thedefault),the servlet container must use only one instance per servlet declaration.However,for a servlet implementing the SingleThreadModel interface,the servlet container may instantiate multiple instances to handle a heavy request load and serialize requests to a particular instance.

注意:
The SingleThreadModel Interface is deprecated in this version of the specification.
18 楼 justin8335 2007-05-27  
学Servlet就是培养基础。
17 楼 zexunlee 2007-05-26  
ddandyy 写道
前面还行  第4个根本就没看过
-_-

另外看这题怎么这公司根本不用框架的说


第四题可是搞Java公司必考题目。《Head First Jsp/Servlet》看看,这本书将JSP和Servlet内部机制讲的再详细不过了。再想深入就看源代码吧,特别使JBoss和Tomcat的源代码。
16 楼 Puras 2007-05-25  
会不会写是一回事
知不知道原理是另外一回事
15 楼 dennis_zane 2007-05-25  
很难吗?相当基础的问题了
servlet的单线程模型完全是多此一举,已经不建议使用,可以不用考虑
我认为一个java程序员如果连servlet都不会写,那是怎么都说不过去的
14 楼 dovecat 2007-05-24  
基础的东西.MS LZ只知道用...
13 楼 ASDF1982 2007-05-24  
同意LS,非常基础的问题,不明白这个,你怎么做web
12 楼 fins 2007-05-24  
貌似简单 实际也不难
11 楼 ken1984 2007-05-24  
抛出异常的爱 写道
你写的代码更麻烦。。。。爬到N层父类之上去看一个过滤器,。。。

恶梦。

PS:客户请求的时候Servlet怎么工作。
1这题问的是有几种生命周期。。。你写的还少。。。
2你写的不是他想要的答案。。。
3.。。。
4.。。。
楼上你有很多servlet经验,但是这种面试题是有标准答案的。。。


1:生命周期由Servlet接口定义,里面的方法就是生命周期,可见
http://java.sun.com/webservices/docs/1.6/api/javax/servlet/Servlet.html

2:

Server创建一个Servlet的实例

  Server调用Servlet的init()方法

  一个客户端的请求到达Server

  Server创建一个请求对象 //由HTTP信息创建ServletRequest对象

  Server创建一个响应对象

  Server激活Servlet的service()方法,传递请求和响应对象作为参数

  service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息 //此分根据GET,POST的不同传给不同的doXXX。

  service()方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法

  对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用init()方法。





ps:下面源代码是我复制过来的
.......
/**
     *
     * Receives standard HTTP requests from the public
     * <code>service</code> method and dispatches
     * them to the <code>do</code><i>XXX</i> methods defined in
     * this class. This method is an HTTP-specific version of the
     * {@link javax.servlet.Servlet#service} method. There's no
     * need to override this method.
     *
     *
     *
     * @param req the {@link HttpServletRequest} object that
     * contains the request the client made of
     * the servlet
     *
     *
     * @param resp the {@link HttpServletResponse} object that
     * contains the response the servlet returns
     * to the client
     *
     *
     * @exception IOException if an input or output error occurs
     * while the servlet is handling the
     * TRACE request
     *
     * @exception ServletException if the request for the
     * TRACE cannot be handled
     *
     * @see javax.servlet.Servlet#service
     *
     */

    protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
    {
String method = req.getMethod();

if (method.equals(METHOD_GET)) {
    long lastModified = getLastModified(req);
    if (lastModified == -1) {
// servlet doesn't support if-modified-since, no reason
// to go through further expensive logic
doGet(req, resp);
    } else {
long ifModifiedSince = req.getDateHeader(HEADER_IFMODSINCE);
if (ifModifiedSince < (lastModified / 1000 * 1000)) {
    // If the servlet mod time is later, call doGet()
                    // Round down to the nearest second for a proper compare
                    // A ifModifiedSince of -1 will always be less
    maybeSetLastModified(resp, lastModified);
    doGet(req, resp);
} else {
    resp.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
}
    }

} else if (method.equals(METHOD_HEAD)) {
    long lastModified = getLastModified(req);
    maybeSetLastModified(resp, lastModified);
    doHead(req, resp);

} else if (method.equals(METHOD_POST)) {
    doPost(req, resp);
   
} else if (method.equals(METHOD_PUT)) {
    doPut(req, resp);
   
} else if (method.equals(METHOD_DELETE)) {
    doDelete(req, resp);
   
} else if (method.equals(METHOD_OPTIONS)) {
    doOptions(req,resp);
   
} else if (method.equals(METHOD_TRACE)) {
    doTrace(req,resp);
   
} else {
    //
    // Note that this means NO servlet supports whatever
    // method was requested, anywhere on this server.
    //

    String errMsg = lStrings.getString("http.method_not_implemented");
    Object[] errArgs = new Object[1];
    errArgs[0] = method;
    errMsg = MessageFormat.format(errMsg, errArgs);
   
    resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, errMsg);
}
    }
.........
10 楼 ken1984 2007-05-24  
max.h.chen 写道
也不一定只加载一次,要看servlet的运行模式,如果使用了线程安全模式则一个线程绑一个实例,那就不只一次了,一般是对象池管理了,不过通常都不会这样用。



我上面说的是对同一个实例来说。如果你要创建多个新实例必然会有多次加载,但这样肯定会增加系统开销,因为是一对一的关系,比起一对多效果如何可想而知。
9 楼 max.h.chen 2007-05-23  
也不一定只加载一次,要看servlet的运行模式,如果使用了线程安全模式则一个线程绑一个实例,那就不只一次了,一般是对象池管理了,不过通常都不会这样用。
8 楼 抛出异常的爱 2007-05-23  
你写的代码更麻烦。。。。爬到N层父类之上去看一个过滤器,。。。

恶梦。

PS:客户请求的时候Servlet怎么工作。
1这题问的是有几种生命周期。。。你写的还少。。。
2你写的不是他想要的答案。。。
3.。。。
4.。。。
楼上你有很多servlet经验,但是这种面试题是有标准答案的。。。
7 楼 ken1984 2007-05-23  
抛出异常的爱 写道
不去那家公司。。。
因为要手动写servlet很麻烦,很累的说。。
如果要改前人的程序。。。。杀了我吧再也不想看几K行的servlet了


手写不难吧,我都是自己手写,继承HttpServlet实现几个方法就行了。
6 楼 ken1984 2007-05-23  
1.客户请求的时候Servlet怎么工作,一共加载几次?
init->service->doXXX->destroy

加载一次,即容器执行init方法时。生命周期与加载次数不一样,只要执行了init而没有destroy或者容器还在运行,那这个SERVLET实例就依然存在容器内。

2.什么时候用doGet()与doPost(),系统是如何判断的?这两种都在什么情况下使用?

分析HTTP头信息,如果没有实现services则递交给相应的doXXX方法。

3.在MVC中,C是如何通过M传递数据给V的?用一句话来概括一下工作方式.

执行流程client->control->model->control->client

4.详细谈一下forward与redirect.
简单点说吧,forward是同一请求。
5 楼 shaucle 2007-05-23  
MS都是最基础的问题啊(最基本的web概念)

相关推荐

    网管面试题答案

    前面上传的那份是题目,貌似CSDN不能同时上传两份文档。没压缩了,就分开传吧。这份是答案。

    貌似简单的全功能留言薄

    【天地网络-JSP留言薄】是一个看似简单的全功能留言系统,它以其丰富的功能和易于理解的结构,为用户提供了一个高效且便捷的沟通平台。在IT领域,尤其是Web开发中,JSP(JavaServer Pages)是一种广泛使用的服务器端...

    数据结构上机作业题貌似是外国提

    源文件hw3文件夹包含实现(普通)单链表数据结构、带尾指针和表长信息的单链表数据结构和有序单链表数据结构。 建立一个空项目,添加LinkList.h、SListWithRearSize.h、OrdinalLink.h三个头文件, ...

    dwr.jar 貌似很好用的

    dwr.jar 貌似很好用的 dwr.jar 貌似很好用的 dwr.jar 貌似很好用的

    貌似QQ里截图的截图软件

    标题所提到的“貌似QQ里截图的截图软件”,可能是指一款与QQ截图功能相似的独立软件,它可能具有类似的用户界面和功能特性,旨在模仿QQ内置截图工具的体验。 QQ截图本身是腾讯QQ即时通讯软件的一个组件,用户可以...

    Java+版的酒店系统,貌似完整源代码学习

    【Java酒店管理系统源码解析】 本资源提供了一个基于Java开发的酒店管理系统,是学习和研究Java后端开发、数据库设计以及MVC架构的好材料。在这个系统中,开发者可以深入理解如何将业务逻辑与用户界面有效地结合,...

    机械专业英语词典,貌似不错

    小小的用了一下,貌似还可以。2.90MB,纳信科技

    貌似dos命令集

    标题中的“貌似dos命令集”指的是这可能是一个包含DOS(磁盘操作系统)命令相关资料的压缩包。DOS是早期个人计算机上广泛使用的操作系统,它以命令行界面为主,用户通过输入各种命令来执行操作。这个压缩包可能包含...

    八种面试经验

    貌似思想家型面试官 这类面试官逻辑思维严密,擅长分析和推理,性格敦厚。 **应对策略**: - **以毒攻毒式**:回答问题时逻辑严密,尽量与他们的思维方式保持一致。 - **公正无私**:展现你的公正无私和敦厚的性格...

    asp.net 简单答题考试系统

    简单的答题考试,支持(上一题,下一题)可以支持多个分类如(语\数\外),多个用户登录。并统计分数!仅供参考,貌似很多学生要我做这类 似的现在我把他整理出来了,欢迎大家免费下载哦!反正没事当扯扯时间! 不会 ...

    VC++ 在Form窗体的菜单中添加一个下拉小三角,意在说明该项菜单可以展开,或者有二级项,看似简单,貌似实现起来还真不简单,笔者在初学VC的时候就曾被类似问题难倒过,看来,基础的东西一定不要看不上眼,否则你在将来会遇到麻烦事。

    然而,对于初学者来说,这个看似简单的功能可能会带来一定的挑战。本文将详细讲解如何在Form窗体的菜单中添加下拉小三角,并探讨相关知识点。 首先,我们需要理解MFC(Microsoft Foundation Classes)框架,它是...

    java源码资源Java 版的酒店系统,貌似完整

    java源码资源Java 版的酒店系统,貌似完整提取方式是百度网盘分享地址

    貌似很强的MySQL备份策略

    本文讨论了一种在标题为“貌似很强的MySQL备份策略”的策略,该策略通过日常执行全量备份与二进制日志(binlog)更新来确保数据安全。 全量备份是备份数据库中所有数据的方式,它可以是一个数据库、特定的表,甚至...

    禁止程序调用ie方法 win7貌似无效

    首先,标题“禁止程序调用ie方法 win7貌似无效”提示我们某些用户尝试阻止程序调用IE的方法在Windows 7上可能没有预期效果。描述内容说明,在Windows 7上进行此类操作可能不会成功,并给出了在早期Windows系统上测试...

    Java 版的酒店系统 貌似完整.7z

    在本压缩包中,"Java 版的酒店系统 貌似完整.7z" 提供了一个基于 Java 开发的酒店管理系统,它可能包含了酒店业务流程的各个关键模块,如预订管理、房间管理、客户管理、账单计算等。这样的系统对于酒店行业的运营...

    貌似3D效果的JS烟花背景特效代码

    貌似3D效果的JS烟花背景特效代码! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/

    貌似超级玛力的国外Delphi小游戏源程序..rar

    貌似超级玛力的国外Delphi小游戏源程序..rar

    图片格式转换(貌似只支持XP )

    标题中的“图片格式转换(貌似只支持XP )”指出这是一个针对Windows XP操作系统的图片格式转换工具。这个工具可能不适用于其他版本的Windows操作系统,比如Windows 7、8或10。在信息技术领域,软件的系统兼容性是非常...

    Delphi 生成Excel表的简单实现.rar

    Delphi 生成Excel表的简单实现,貌似类似的源码有很多,这个觉得过于简单了,调用的是Excel.Application,需要生成一个新的CreateOleObject对象,下面来看看代码:  begin  ExcelID:=CreateOleObject('Excel....

    asp.net 答题简单的完整版

    asp.net 答题简单的完整版,可以支持多个分类,多个用户登录。并统计分数!仅供参考,貌似很多学生要我做这类似的现在我把他整理出来了,欢迎大家免费下载哦!不会 Web.config 修改 看txt文件 该文件必须vs2008以上...

Global site tag (gtag.js) - Google Analytics