Servlet小结(面试)
1.doGet()和doPost()区别/get和post请求方法区别:
(1)在form表单中:method = “get/post”相对应doGet和doPost方法。
(2)在http协议中:相对应http的GET和POST请求方法(http的请求方法有:GET,POST,PUT,HEAD,DELETE,OPTIONS,TRACE,CONNECT,PATCH)
(3)get方法提交数据有大小的限制为1024字节左右,但是post方法没有数据大小的显示。
(4)使用get方法会将form表单提交的数据存放在url中(以key-value形式),用户看得见;
, 但post方法将数据存放在http协议的请求体中,用户看不见。
因此get方式的安全性差,post方法的安全性更高。
(5)服务器获取数据:get方法中采用request.QueryString获取;post方法request.Form获取
服务器随机接受get方法的数据,而post方法服务器先接受数据信息的长度,再接受数据。
(6)在数据查询的时候,建议使用get方式,而数据添加,修改,删除时,建议使用post方式。
2.servlet的生命周期:

声明:servlet接口只有上图这些方法,而doGet和doPost方法在类HttpServlet中,在eclipse中创建一个servlet类,这个类就继承了HttpServlet类。
web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet初始化。通过调用service()方法实现(客户端发送的请求都是交给service方法),
根据请求的不同调用不同的do**()方法。结束service()方法后,web容器调用destroy()方法,销毁。
3.Cookie和Session:
http是一种无状态的协议,客户端和服务器端建立连接并传输数据,数据传输完成后,连接断开,当再次需要交互数据时,需要建立新的连接,
因此,服务器无法从连接上跟踪会话也不知道用户上次做了什么。
(1)Cookie的原理:
Cookie是解决http无状态协议的有效方式(本质),服务器可以设置或读取cookie所包含的信息。
Cookie是通过set-cookie响应头和cookie请求头将会话中产生的数据保存在客户端的技术。
客户端发送请求给服务器端,服务器端将获取到的数据通过set-cookie响应头发送给浏览器,浏览器将cookie以文件的形式保存在浏览器内部,
当客户端再次发送请求的时候,服务器可以通过cookie请求头获取上次发送给浏览器的cookie心意,通过这种方式保存会话中产生的数据。
(2)session原理:
session也是解决http协议无状态(不能维持现状)的问题。
session产生于服务器端,以对象的形式保存在服务器端。服务器端每产生一个新的session对象都会分配一个唯一的id,
并且这个id值将以cookie的形式保存在客户端,cookie的键就是jsessionid,将cookie值放在浏览器,当客户端再次发送请求的时候,
将携带cookie信息到浏览器,服务器通过该cookie就可以根据jsessionid的值得知当前会话保存的session。
关闭浏览器,便获取不到上次保存的session,并不是因为session被销毁了(session销毁的原因是因为在一定的时间内没有被操作,才会被销毁),
而是因为丢失了sessionid(sessionid默认在浏览器关闭的时候销毁)。
(3)session和cookie的区别:
a.cookie数据存放在客户端,session存放在服务器端
cookie不安全(别人可以分析存放在本地的cookie进行cookie欺骗)
session在一定时间内保存在服务器上,当访问增多是,比较占用服务器的性能
b.用户可以设置cookie功能禁用,但是session不能。
c.cookie只能设置存储文本类型,session中能存取object值。
d.cookie有大小限制以及浏览器存放的cookie个数也有限制(各个浏览器的限制是不一样的),而session没有大小限制。
(4)相同点(理解):
a.都是在服务器端产生。
b.都是解决http协议无状态问题。
c.都是key-value形式保存。
d.都是跟踪会话。
以上三个问题都被面试管问过,尤其是第三个,被问多次。
4.jsp和servlet的区别:
jsp是servlet技术的扩展,本质上是servlet的简易方式,更强调外观上的表达。
主要的不同点在于,servlet的应用逻辑在java文件中,并且完全从表示层中的html里分离出来。jsp是java和HTML组合而成。
jsp注重视图,servlet注重控制逻辑。
Servlet小结(面试)的更多相关文章
- Java面试题精选(三) JSP/Servlet Java面试逻辑题
-- JSP/Servlet Java面试逻辑题 -- 很显然,Servlet/JSP的WEB前端动态制作的重要性比HTML/CSS/JS的价值高很多,但我们都知道他们都是建立在HT ...
- [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- java Servlet小结
1:什么是Servlet? ① Servlet就是JAVA 类② Servlet是一个继承HttpServlet类的类③ 这个在服务器端运行,用以处理客户端的请求 2:Servlet 生命周期 Ser ...
- Java EE - Servlet 小结
Table of Contents 前言 Servlet 的生命周期 Servlet 的初始化 ServletContext & ServletConfig 请求的处理 HttpServlet ...
- JAVA基础篇—Servlet小结
一.get请求和post请求的区别: 1.get请求是通过url传递参数,post请求是通过请求体传递参数的 2.get请求最多允许传递255个字符,对长度有限制,所以数据比较大的时候我们使用post ...
- Servlet小结(转载)
http://www.iteye.com/topic/766418 1 .首先,什么是Servlet? Servlet是一个Java编写的程序,此程序是在服务器端运行的,是按照Servl ...
- Servlet小结
1.sevlet的生命周期 用户在发送第一次请求的时候Servlet对象被实例化(AServlet的构造方法被执行了.并且执行的是无参数构造方法.) AServlet对象被创建出来之后,Tomcat服 ...
- 面试小结之Elasticsearch篇(转)
最近面试一些公司,被问到的关于Elasticsearch和搜索引擎相关的问题,以及自己总结的回答. Elasticsearch是如何实现Master选举的? Elasticsearch的选主是ZenD ...
- 写在19年初的后端社招面试经历(两年经验): 蚂蚁 头条 PingCAP
去年(18年)年底想出来看看机会,最后很幸运地拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer.想着可以总结一下经验,分享一下自己这一段"骑驴找马"过 ...
随机推荐
- 远程桌面MATLAB启动失败问题解决
博客:博客园 | CSDN | blog 远程桌面打开MATLAB会报错,解决办法,打开matlab的licenses路径,如matlab/R2017b/licenses/,路径下存有license文 ...
- 软帝学院:一万字的Java基础知识总结大全(实用)
Java基础总结大全(实用) 一.基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java语言是跨 ...
- B树概述与简单应用示例(C#)
引言: 天不生仲尼,万古如长夜.在计算机科学中,也有一个划时代的发明,B树(多路平衡查找树)及其变体(B树,b*树,b+树): 由德国科学家(鲁道夫·拜尔 Rudolf Bayer),美国科学家(爱德 ...
- 12-19 js
js是一个脚本语言 可插入到HTML网页文件中 在浏览器中执行 1 如何插入到网页中 1. 内部穿插 script 标签 type属性在网页中使用 2. 外部引入 script src属性引用js文 ...
- (2018版)webstorm的安装和破解
前言 相信使用HBuildX的各位都用过,所以这个webstorm就是用来代替的. 因为使用方式跟idea等软件差不多,如果习惯了idea的操作方式的可以试一试 安装webstorm 这是2018版的 ...
- IDEA 如何自动导入(import)
如果大家正在使用一个未曾导入(import)过的类,或者它的静态方法或者静态字段,IDEA 会给出对应的建议,只要按下 ⌥(option)和回车就可以接受建议. 但我觉得这样做仍然很麻烦,不够智能化. ...
- 死磕 java线程系列之线程池深入解析——构造方法
(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本. 简介 ThreadPoolExecutor的构造方法是创建线程池的入口,虽然比较简单,但是信息量很大,由此也能 ...
- MongoDB(一):NoSQL简介、MongoDB简介
1. NoSQL简介 1.1 什么是NoSQL NoSQL(NoSQL= Not Only SQL),意即“不仅仅是SQL",是一项全新的数据库理念,泛指非关系型的数据库. 1.2 为什么需 ...
- 安装指定版本的tensorflow(我报错了)
安装命令如下: pip install tensorflow-gpu==1.10.0 -i https://pypi.tuna.tsinghua.edu.cn/simple 慎用,反正我报错了,而且还 ...
- PlayJava Day027
进程状态 1.创建状态:在程序中用构造方法创建了一个线程对象后,新的线程对象便处于新建状态 此时,它已经有了相应的内存空间和其他资源,但还处于不可运行状态 新建一个线程对象可采用Thread类的构造方 ...