美文网首页
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