有关servlet的几种面试题

1、Post和Get的区别

Post:
    请求参数在请求体中

    请求的url的长度没有限制

    较为安全
Get:
    亲求参数在请求行中

    请求的url长度没有限制

    相对不安全
中文乱码问题:
        * get方式:tomcat 8 已经将get方式乱码问题解决了
        * post方式:会乱码
            * 解决:在获取参数前,设置request的编码request.setCharacterEncoding("utf-8");

2、forward 和 redirect 区别

    * 重定向的特点:redirect
                1. 地址栏发生变化
                2. 重定向可以访问其他站点(服务器)的资源
                3. 重定向是两次请求。不能使用request对象来共享数据
    * 转发的特点:forward
                1. 转发地址栏路径不变
                2. 转发只能访问当前服务器下的资源
                3. 转发是一次请求,可以使用request对象来共享数据    

3、ServletContext对象:

    1. 概念:代表整个web应用,可以和程序的容器(服务器)来通信
    2. 获取:
        1. 通过request对象获取
            request.getServletContext();
        2. 通过HttpServlet获取
            this.getServletContext();
    3. 功能:
        1. 获取MIME类型:
            * MIME类型:在互联网通信过程中定义的一种文件数据类型
                * 格式: 大类型/小类型   text/html        image/jpeg

            * 获取:String getMimeType(String file)  
        2. 域对象:共享数据
            1. setAttribute(String name,Object value)
            2. getAttribute(String name)
            3. removeAttribute(String name)

            * ServletContext对象范围:所有用户所有请求的数据
        3. 获取文件的真实(服务器)路径
            1. 方法:String getRealPath(String path)  
                 String b = context.getRealPath("/b.txt");//web目录下资源访问
                 System.out.println(b);

                String c = context.getRealPath("/WEB-INF/c.txt");//WEB-INF目录下的资源访问
                System.out.println(c);

                String a = context.getRealPath("/WEB-INF/classes/a.txt");//src目录下的资源访问
                System.out.println(a);

4、session与Cookie的区别:

        cookie能不能存中文?
            * 在tomcat 8 之前 cookie中不能直接存储中文数据。
                * 需要将中文数据转码---一般采用URL编码(%E3)
            * 在tomcat 8 之后,cookie支持中文数据。特殊字符还是不支持,建议使用URL编码存储,URL解码解析

        session什么时候被销毁?
            1. 服务器关闭
            2. session对象调用invalidate() 。
            3. session默认失效时间 30分钟
                选择性配置修改:当前项目下的web.xml中:    
                <session-config>
                    <session-timeout>30</session-timeout>
                </session-config>

        1. session存储数据在服务器端,Cookie在客户端
        2. session没有数据大小限制,Cookie有
        3. session数据安全,Cookie相对于不安全
-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!