面试题 --- Web部分

1、讲一下http get 和 post请求得区别?

    GET 和 POST 请求都是http 的请求方式,用户通过不同的http  的请求方式完成对资源(url)的操作,具体点来讲GET 一般用于获取/查询 资源信息。而 POST 一般用于更新 资源信息。
    http 定义了与服务器交互的不同方法,最基本的方式有4种,分别是GET,POST,PUT,DELETE,URL 全称是资源描述符,我们可以这样认为:一个URL 地址,它用于描述一个网络的资源,而HTTP 中GET,POST,PUT,DELETE 就对应着对这个资源的查,改,增,删 4个操作,具体点来讲 GET 一般用于 获取/查询 资源信息,而POST一般用于更新 资源信息
区别:
1、GET 请求提交得数据会在地址栏显示出来,而 POST 请求不会再地址栏显示出来
    GET 提交、请求得数据会在URL之后(就是把数据放置在HTTP 协议头中),以分割URL 和传输数据,多个参数用& 连接;POST 提交,把提交得数据放置在是HTTP 包的包体中,因此,GET提交得数据会在地址栏中显示出来。而POST 提交,地址栏不会改变。
2、传输数据得大小
    http GET 请求由于浏览器对地址长度的限制而导致传输的数据有限制,而POST 请求不会因为地址长度限制导致传输数据限制。
3、安全性 POST 的安全性要比 GET的安全性高。
由于数据会在地址中呈现。所以可以通过历史记录找到密码等关键信息。

2、说一下对 servlet 的理解?或者 serlet 是什么?

    Servlet(Server Applet),全称 Java Servlet。是用Java 编写的服务器端程序,而这些 Servlet 都要实现 Servlet 这个借口。其主要功能在于交互式地游览器和修改数据,生成动态 Web 内容,Servlet 运行于支持Java 的应用服务器中。
    HttpServlet 重写 doGet 和 doPost 方法或者你也可以重写 service 方法完成对get 和 post 请求得响应

3、简单说一下 servlet 的生命周期?

    servlet 有良好的生存周期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由 javax.servlet.Servlet 接口的 init service 和 destroy 方法表达。
    servlet 启动时,开始加载 servlet 生命周期开始,servlet 被服务器实例化后,容器运行其 init 方法,请求到达时运行其 servlet 方法,service 方法自动派遣运行与请求对应的doXXX 方法(doGet doPost)等,当服务器决定将实例销毁的时候(服务器关闭)调用其destory 方法。

加载 servlet 的 class ----> 实例化Servlet -----> 调用 Servlet 的init 完成初始化 ----> 响应请求(Servlet 的service 方法) -----> Servlet 容器关闭(Servlet 的 destory 方法)

4、servlet API 中 forward() 和 redirect() 的区别?

1、forward 是服务端的转向,而 redirect 是客户端的跳转;
2、使用 forward 浏览器的地址不会发生改变。而 redirect 会发生改变;
3、forward 是一次请求中完成,而 redirect 是重新发送请求;
4、forward 是在服务器端完成,而不用客户端重新发起请求。效率较高。

5、JSP 和 Servlet 有哪些相同点和不同点,他们之间联系是什么?

相同点:Jsp 是 Servlet 技术的扩展,所有得jsp 文件都会被翻译为一个继承HttpServlet 的类,也就是jsp 最终也是一个Servlet。这个Servlet 对外提供服务。
不同点:JSP侧重于视图,Servlet 主要用于控制逻辑。

    servlet 和 jsp 的区别 最主要的不同点于,Servlet 如果实现 html 的功能,必须使用 Writer 输出对应的html。Servlet 的应用逻辑是在Java 文件中,并且完全从表示是中的HTMl 里分离开来,而JSP 的情况是 Java 和HTMl 可以组合成一个扩展名为jsp 的文件,JSP 侧重于视图,Servlet 在主要用于控制逻辑。

6、jsp 有哪些内置对象? 作用分别是什么?分别有什么方法?

9个内置对象:
    request 用户端请求,此请求会包含来自 GET/POST 请求的参数
    response 网页传回用户端的回应
    pageConext 网页的属性是在这里管理
    session 与请求有关的会话期
    applocation servlet 正在执行的内容
    out 用来传送回应的输出
    config servlet 的架构部件
    page JSP 网页本身
    exception 针对错误网页,为捕捉的例外

四大作用域:pageContext,request, session, application 可以通过jstl 从四大作用域取值。

jsp 传值 request、 session、 application、 cookie 也能传值

7、session 和 cookie 的区别?你在项目中那些地方使用了?

    session 和 cookie 都是会话(Session) 跟踪技术。cookie 通过客户端记录信息确定用户身份,Session 通过在服务器端记录信息确定用户身份,但是 session 的实现依赖于cookie,sessionID(session 的唯一标识需要存放在客户端)

cookie 和 session 的区别:
    1、cookie 数据存放在客户的浏览器,session 数据放在服务器上。
    2、cookie 不是很安全,别人可以分析存放在本地得cookie 并进行 cookie欺骗 考虑到安全应当使用 session
    3、session 会在一定时间内保存在服务器上,当访问增多,会比较占用你服务器性能,考虑到减轻服务器性能方面,应当使用 cookie
    4、单个cookie 保存的数据不能超过4K ,很多浏览器都限制一个站点最多保存20个cookie

个人建议:
    将登陆信息等重要信息存放在SESSION
    其他信息如果需要保留,可以放在COOKIE中()

    购物车最好使用 cookie,但是cookie 是可以在客户端禁止用的,这时候我们要使用cookie + 数据库的方式实现,当从cookie中不能取出数据上时,就使用数据库获取

    

8、MVC 的各个部分都有哪些技术实现?

M(model)模型:javabean
V(View)代码视图:html、jsp、volicity、freemaker
C(Control)控制器:servlet、action

jsp+Servlet+javabean 最经典 mvc 模式,实际上就是 model2 的实现方式,就是把视图和逻辑隔离开来。

Model1 的方式 jsp + service + dao
Model2 的方式 jsp + servlet + service + dao

使用:struts2 和 SpringMVC 这样的 mvc 框架后,我们就变成 jsp + 核心控制器 + action + javabean

猜你喜欢

转载自blog.csdn.net/Keith003/article/details/83149471