美文网首页
j2ee常见面试题

j2ee常见面试题

作者: 落云和枫 | 来源:发表于2019-03-22 09:13 被阅读0次


1. servlet总结

        在Java Web 中,Servlet主要负责接收用户请求HttpServletRequest, 在doGet(),doPost()中作出相应的处理,并将回应HttpServletResponse反馈给用户。一个servelt可以设置多个Url访问。Servlet不是线程安全,因此要谨慎使用类变量。

2. servlet的生命周期

        加载   初始化   服务  销毁

3.get 和 post 请求的区别

        1)get请求用来从服务器上获得资源,而post是用来向服务器提交数据;

        2)get将表单中数据按照name = value 的形式,添加到action 所指向的URL后面,并且两者使用"?" 连接,而各个变量之间使用"&" 连接;post是将表单中的数据放着HTTP 协议的请求头或消息体中,传递到action所指向URL;

        3)get传输的数据要受到URL长度限制(最大长度是2048个字符);而post可以传输大量的数据,上传文件通常要使用post方式;

        4)使用get时参数会显示在地址栏上,如果不是敏感数据,那么可以使用get;对于敏感数据还是应该使用post;

        5)get使用MIME类型application/x-www-form-urlencoded的URL编码(也叫百分号编码)文本的格式传输参数,保证被传送的参数由遵循规范的文本组成,例如一个空格的编码是"20%".

补充:get方式提交表单的典型应用就是搜索引擎。Get方式就是被设计为查询用的。

4. 转发(Forword) 和重定向(Redirect)的区别

转发是服务器行为,重定向是客户端行为。   

        转发(Forword) 通过RequestDispatcher对象的forward(HttpServletRequest request,HttpServletResponse reponse)  方法实现的。

   request.getRequestDispatcher("login_success.jsp").forward(request, response);

        重定向(Redirect)是利用服务器返回的状态码来实现的。客户端浏览器请求服务器的时候,服务器会返回一个状态码。服务器通过 HttpServletResponse的 setStatus(int status) 方法设置状态码,如果服务器返回301或者302,则浏览器会到新的网址重新请求该资源。

    1. 从地址栏显示来说

        forward 地址栏不变 ,redirect会显示新的URL.

    2.从数据共享来说

        forward:转发页面和转发到的页面可以共享request里面的数据

       redirect:不能共享数据

    3. 从运用地方来说

        forward:一般用户用户登录的时候,根据角色转发到相应的模块。

        redirect:一般用户用户注销登录时返回主页面和跳转到其他的网站等。

    4.从效率来说

        forward:高

        redirect:低

    5. JSP有哪些内置对象、作用分别是什么

        JSP有9个内置对象:

        1. request:封装客户端请求,其中包含来自GET或者POST请求的参数;

        2. response:封装服务器对客户端的相应;

        3. pageContext;通过该对象可以获取其他对象;

        4. session:封装用户会话的对象;

        5. application:封装服务器运行环境的对象;

        6. out:输出服务器想想的输出流对象;

        7. config:Web应用的配置对象;

        8. page:JSP页面本身(相当于Java中的this)

        9. exception:封装页面抛出异常的对象。

    6. request.getAttribute() 和 request.getParameter()有何区别

      从获取方向来看:

        getParameter() 是获取POST/GET传递的参数值;

        getAttribute() 是获取对象容器中的数据值;

     从用途来看:

        getParameter用于客户端重定向时,即点击了链接或提交按扭时传值用,即用于在用表单或url重定向传值时接收数据用。

        getAttribute用于服务器端重定向时,即在 sevlet 中使用了 forward 函数,或 struts 中使用了 mapping.findForward。 getAttribute 只能收到程序用 setAttribute 传过来的值。

    总结:

    getParameter返回的是String,用于读取提交的表单中的值;(获取之后会根据实际需要转换为自己需要的相应类型,比如整形,日期类型啊等等)

    getAttribute返回的是Object,需进行转换,可用setAttribute设置成任意对象,使用很灵活,可随时用。

相关文章

网友评论

      本文标题:j2ee常见面试题

      本文链接:https://www.haomeiwen.com/subject/ujvkvqtx.html