目录
Servlet中request,session 和 application是怎么用的?
什么是JSP?
JSP全称Java Server Pages,即Java的服务器页面,主要作用是代替servlet程序回传HTML页面数据。
JavaWeb三大组件?
Servlet(服务连接器),Filter(拦截器),Listener(监听器)
什么是Servlet?
全称Java Servlet,称为小服务程序或服务器连接器。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
Servlet生命周期?
Servlet的生命周期包含了下面四个阶段:
- 实例化阶段:服务器对Servlet进行实例化,调用Servlet的构造方法
- 初始化阶段:第一次请求时,服务器调用Servlet的init方法进行初始化
- 请求处理阶段:服务器调用servlet的service方法,然后根据请求方式调用相应的方法
- 服务终止阶段:服务器调用servlet的destroy方法销毁servlet实例
Servlet 中的服务方法是线程安全的吗?
默认不是线程安全的,但是让Servlet 实现 SingthreadModel 接口就能保证线程安全了
Filter过滤器的作用
Filter可以拦截用户对资源的访问,所谓的拦截其实就是将代表请求的request对象和代表响应的response对象拦截下来。
什么是监听器?
监听器就是监听某个域对象的状态变化组件
事件源:被监听的对象, 主要是用来监听域对象request,session,servletContext
监听器:监听事件源对象
注册监听器:将监听器与事件源进行绑定
响应行为:监听器监听到事件源的状态变化时,所涉及的功能代码---程序员编写代码
(帮助理解)eg: 监听别人的行为-----事件源 = 你想要监听的那个人;监听器 = 你在他身上所装的监听设备;注册监听器 = 你把他身上装监听器的行为;响应行为 = 你听到他说的一些事情,做出的反应;
描述四大域对象的特征
1.pagecontext域
- 生命周期:开始访问JSP页面时创建PageContext对象,访问JSP页面结束时销毁PageContext对象
- 作用域:在整个JSP页面中
- 主要功能:在整个JSP页面中实现数据的共享。
2.request域
- 生命周期:一次请求开始时创建request对象,一次请求结束时销毁request对象
- 作用范围:整个请求链中
- 主要功能:在整个请求链实现数据的共享
3.session域
- 生命周期:
- 创建:当第一次调用request.getSession()方法时将会创建session对象
- 销毁:session分为三种情况
- a)超时销毁:如果超时30分钟不操作session,session将会超时销毁
- b)自杀:当调用session.invalidate()方法时会立即销毁session
- c)意外身亡:当服务器非正常关闭时,session会销毁!当服务器正常关闭,session将会以文件的形式保存在tomcat服务器wark目录下
- 作用范围:在整个会话范围内
- 主要功能:在整个会话范围内实现数据的共享
4.ServletContext域
- 生命周期:服务器启动WEB应用被加载之后立即创建servletContext对象,服务器关闭或者web应用被移出容器。销毁servletContext对象。
- 作用范围:在整个web应用中
- 主要功能:在整个web应用范围内实现数据的共享
JSP的九大隐式对象
- request:请求对象
- response:响应对象
- pageContext:JSP的上下文对象
- session:会话对象
- application:ServletContext对象
- config:ServletConfig对象
- out:JSP输出流对象
- page:指向当前JSP的对象
- exception:异常对象
Servlet中request,session 和 application是怎么用的?
1)request是客户端向服务端发送请求,范围:一次请求一次响应
2)session在servlet中不能直接使用,需要通过getSession()创建,如果没有设定它的生命周期,或者通过invildate()方法销毁,范围:浏览器的开启与关闭
3)application不能直接创建,存在于服务器的内存中,范围:服务器的开启与关闭
什么是会话?
将浏览器和服务器之间的多次请求和响应加在一起就可以看作浏览器和服务器之间的一次会话
Cookie的原理
由服务器产生内容,浏览器收到请求后保存在本地;当浏览器再次访问时,浏览器会自动带上Cookie
session的工作原理
其实session是一个存在服务器上的类似于一个散列表格的文件。里面存有我们需要的形象,在我们需要用的时候可以从里面取出来,类似于一个大号的map把,里面的键存储的是用户的session-Id,用户向服务器发送请求的时候会带上这个session-Id。这时就可以从中取出对应的值
cookie和session的联系和区别
- cookie和session都是会话技术,cookie是运行在客户端,session是运行在服务器端
- cookie由大小限制以及浏览器在存cookie的个数也是有限的,session是没有大小限制的和服务器内存大小有关。
- cookie有安全隐患,通过拦截或本地找到cookie后可以进行攻击
- session是保存在服务器上,存在一段时间才会消失,如果session过多会增加服务器的压力
什么是 AJAX?有哪些优点和缺点?
Ajax 的全称是:AsynchronousJavaScript And XML。Ajax 不是一个技术,它实际上是几种技 术,每种技术都有其独特这处,合在一起就成了一个功能强大的新技术。Ajax 包括: XHTML 和 CSS 使 用文档对象模型(Document Object Model)作动态显示和交互 使用 XML 和 XSLT 做数据交互和操作 使 用 XMLHttpRequest 进行异步数据接收 使用 JavaScript 将它们绑定在一起。
优点:
1)最大的一点是页面无刷新,用户的体验非常好
2)使用异步方式与服务器通信,具有更加迅速的响应能力
3)可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻
服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则
是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担
4)基于标准化的并被广泛支持的技术,不需要下载插件或者小程序
缺点:
1)ajax不支持浏览器back按钮
2)安全问题 AJAX暴露了与服务器交互的细节
3)对搜索引擎的支持比较弱
4)破坏了程序的异常机制
5)不容易调试
简述get请求和post请求的区别?
1)get请求用来从服务器上获得资源,而post是用来向服务器提交数据;
2)get将表单中数据按照name=value的形式,添加到action 所指向的URL 后面,并且两者使用"?"连接,而各个变量之间使用"&"连接;post是将表单中的数据放在HTTP协议的请求头或消息体中,传递到action所指向URL;get传输的数据要受到URL长度限制(1024字节);而post可以传输大量的数据,上传文件通常要使用post方式;
3)使用get时参数会显示在地址栏上,如果这些数据不是敏感数据,那么可以使用get;对于敏感数据还是应用使用post;
4)get使用MIME类型application/x-www-form-urlencoded的URL编码(也叫百分号编码)文本的格式传递参数,保证被传送的参数由遵循规范的文本组成,例如一个空格的编码是"%20"。
前端传参的方式
1.通过url携带
2.通过Ajax的data
3.存储到localstorage中
后端接收数据
@PathVariable注解
一、作用: 接收请求路径中占位符的值。
@RequestBody注解
一、作用: 接收前端传递的Json对象的字符串。
@RequestParam注解
一、作用: 将指定的请求参数赋值给方法中的形参。