session和cookie之间的区别
HTTP报文由哪几部分组成? Get/Post有什么区别?
HTTP(HyperText Transport Protocol,超文本传送协议)
http请求数据包的格式:头部(request line + header)+ 数据(data)
头部和数据包体通过一个空行来隔开,头部的格式主要包括请求行+请求头部。如下图
1) GET请求的数据是放在HTTP包头中的,也就是URL之后,通常是像下面这样定义格式的,(而Post是把提交的数据放在HTTP正文中的)。
login.action?name=hyddd&password=idontknow&verify=%E4%BD%E5%A5%BD
a,以 ? 来分隔URL和数据;
b,以& 来分隔参数;
c,如果数据是英文或数字,原样发送;
d,如果数据是中文或其它字符,则进行BASE64编码。
2)GET提交的数据比较少,最多1024B,因为GET数据是附在URL之后的,而URL则会受到不同环境的限制的,比如说IE对其限制为2K+35,而POST可以传送更多的数据(理论上是没有限制的,但一般也会受不同的环境,如浏览器、操作系统、服务器处理能力等限制,IIS4可支持80KB,IIS5可支持100KB)。
3)Post的安全性要比Get高,因为Get时,参数数据是明文传输的,而POST数据则可以加密的,但GET的速度可能会快些。
转发(forward)和重定向(redirect)的区别
从 请求方式来说:
请求重定向(redirect)
请求重定向是客户端的行为,客户端需要访问两次服务器(这两次的服务器不是同一个服务器)
![](https://i-blog.csdnimg.cn/blog_migrate/d10433938bb59bfcf62b46cd88a261e2.png)
请求转发(forward)
请求转发是服务器的行为,客户端不关心服务器如何工作,只需要接收响应即可
![](https://i-blog.csdnimg.cn/blog_migrate/7acdfac87df151a5fda58b975d33457c.png)
从地址栏 url 显示来说(最终URL地址不同):foward url 不会发生改变,redirect url 会发生改变;
从数据共享来说:forward 可以共享 request 里的数据,redirect 不能共享; 。
从效率来说:forward 比 redirect 效率高。
请求转发和请求重定向的核心区别就是,请求重定向需要访问两次服务器(即需要发送两次请求),而请求转发客户端只需要发送一次请求,服务器内部会帮我们自动跳转到目标服务器,客户端不需要关心执行过程!
简述jsp的九大内置对象
JSP九大内置对象分为四类:
- 输入输出对象:out对象、response对象、request对象
- 通信控制对象:pageContext对象、session对象、application对象
- Servlet对象:page对象、config对象
- 错误处理对象:exception对象
九种对象简介:
- out对象:是一个输出流,用来向浏览器输出信息,除了输出各种信息外还负责对缓冲区进行管理。
- request对象:封装了从客户端到服务器发出的请求信息。
- response对象:主要用于对客户端的请求进行回应。以及处理http的连接信息,例如设置http文件头,设置cookie对象等。
- exception对象:封装了jsp程序执行过程中发生的异常和错误信息。
- config对象:对象表示当前jsp程序的配置信息。一般项目中,jsp位于表示层而位于表示层的jsp文件一般是不需要配置信息的所以此对象在jsp程序中其实很少使用config对象是servletConfig类的一个实例。
- page对象:指向了当前jsp程序本身。
- session对象:是一个jsp内置对象,它在第一个jsp被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离 开这个服务器结束(或者超时),被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要创建session对象。
- application对象:代表了当前应用程序的上下文。可以在不同的用户之间共享信息。存在于服务器的内存空间中。应用一旦启动便会自动生成一个application对象。如果应用没有被关闭,此application对象便一直会存在。直到应用被关闭application的生命周期比session长。
应用:为多个用户共享全局信息。比如当前的在线人数等。 - pageContext对象:提供了对jsp页面所有对象以及命名空间的访问。
怎么理解ajax?ajax是否可以同步?Ajax的优缺点
ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
AJAX的异步与同步
什么是异步?什么是同步?
ajax请求1和ajax请求2,同时并发,谁也不用等谁,这就是异步。(a不等b,b也不等a)
如果ajax请求1在发送的时候需要等待ajax请求2结束之后才能发送,那么这就是同步。(a等待b,或者b等待a,只要发生等待,就是同步。)
什么情况下用同步?(大部分情况下我们都是使用ajax异步方式,同步很少用。)
举一个例子:用户注册
用户名需要发送ajax请求进行校验
邮箱地址也需要发送ajax请求校验
其他的也可能需要发送ajax请求。。。
并且最终注册按钮的时候,也是发送ajax请求进行注册。
那么显然,注册的Ajax请求和校验的ajax请求不能异步,必须等待所有的校验ajax请求结束之后,注册的ajax请求才能发。
AJAX——AJAX的异步与同步、AJAX代码封装_ajax的同步异步请求代码怎么看那-CSDN博客
优点:
1、实现了异步交互,提高了用户体验。
2、无需重新加载整个网页,只需要与服务器进行少量的数据交换,就能够实现对网页中的某一部分进行更新,从而减少了带宽的占用。
3、AJAX是在客户端运行的,它承载了一部分本来由服务器承担的工作,减少了大用户量下的服务器负载。
缺点:
1、安全性问题,大量的使用AJAX暴露了服务器交互的细节。
2、不容易调试。
3、对搜索引擎的支持比较弱。
图片如何实现上传
JavaWeb图片上传的几种方式_javaweb实现图片上传-CSDN博客
说一说 Servlet 的生命周期
Servlet 的生命周期详解_servlet的生命周期-CSDN博客
跨域问题如何解决?
JAVA WEB项目中如何实现JSP页面的跳转,数据的交互?
学习笔记---------jsp的三种页面跳转from表单,a链接,js点击事件_前端form表单跳转展示接口返回的jsp页面-CSDN博客