JavaWeb面试题

session和cookie之间的区别

存储位置不同:session 存储在服务器端;cookie 存储在浏览器端。
安全性不同:cookie 安全性一般,在浏览器存储,可以被伪造和修改。
容量和个数限制:cookie 有容量限制,每个站点下的 cookie 也有个数限制。
存储的多样性:session 可以存储在 Redis 中、数据库中、应用程序中;而 cookie 只能存储在浏览器 中

HTTP报文由哪几部分组成? Get/Post有什么区别?

HTTP(HyperText Transport Protocol,超文本传送协议)

http请求数据包的格式:头部(request line + header)+  数据(data)

头部和数据包体通过一个空行来隔开,头部的格式主要包括请求行+请求头部。如下图

HTTP请求头

Get/Post有什么区别?

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的速度可能会快些。

get和post的使用场景

转发(forward)和重定向(redirect)的区别

从 请求方式来说:

请求重定向(redirect)

请求重定向是客户端的行为,客户端需要访问两次服务器(这两次的服务器不是同一个服务器)

请求转发(forward)

请求转发是服务器的行为,客户端不关心服务器如何工作,只需要接收响应即可

从地址栏 url 显示来说(最终URL地址不同):foward url 不会发生改变,redirect url 会发生改变;

从数据共享来说:forward 可以共享 request 里的数据,redirect 不能共享;

从效率来说:forward 比 redirect 效率高。

请求转发和请求重定向的核心区别就是,请求重定向需要访问两次服务器(即需要发送两次请求),而请求转发客户端只需要发送一次请求,服务器内部会帮我们自动跳转到目标服务器,客户端不需要关心执行过程!

请求转发(Forward)和重定向(Redirect)的区别 - 昊子豪 - 博客园 (cnblogs.com)

简述jsp的九大内置对象

JSP九大内置对象分为四类:

  • 输入输出对象:out对象、response对象、request对象
  • 通信控制对象:pageContext对象、session对象、application对象
  • Servlet对象:page对象、config对象
  • 错误处理对象:exception对象

九种对象简介:

  1. out对象:是一个输出流,用来向浏览器输出信息,除了输出各种信息外还负责对缓冲区进行管理。
  2. request对象:封装了从客户端到服务器发出的请求信息。
  3. response对象:主要用于对客户端的请求进行回应。以及处理http的连接信息,例如设置http文件头,设置cookie对象等。
  4. exception对象:封装了jsp程序执行过程中发生的异常和错误信息。
  5. config对象:对象表示当前jsp程序的配置信息。一般项目中,jsp位于表示层而位于表示层的jsp文件一般是不需要配置信息的所以此对象在jsp程序中其实很少使用config对象是servletConfig类的一个实例。
  6. page对象:指向了当前jsp程序本身。
  7. session对象:是一个jsp内置对象,它在第一个jsp被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离  开这个服务器结束(或者超时),被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要创建session对象。
  8. application对象:代表了当前应用程序的上下文。可以在不同的用户之间共享信息。存在于服务器的内存空间中。应用一旦启动便会自动生成一个application对象。如果应用没有被关闭,此application对象便一直会存在。直到应用被关闭application的生命周期比session长。
    应用:为多个用户共享全局信息。比如当前的在线人数等。
  9. 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博客

跨域问题如何解决?

解决跨域的三种方法_跨域问题怎么解决-CSDN博客

JAVA WEB项目中如何实现JSP页面的跳转,数据的交互?

学习笔记---------jsp的三种页面跳转from表单,a链接,js点击事件_前端form表单跳转展示接口返回的jsp页面-CSDN博客

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值