javaweb面试题
类
什么是servlet
Servlet是一种服务端的java应用程序,具有独立于平台和协议的特性,可以生成动态web页面.用户请求时会通过web.xml文件配置跳转到对应的servlet来处理.servlet就是接受页面信息,融合用来做逻辑处理的一个java类
servlet生命周期
web容器加载servlet,生命周期开始,通过调用servlet的init方法进行初始化.调用service方法.如果找不到service实现根据请求的不同调用不同调用doGet或者doPost方法.结束的时候使用destory进行销毁
简述一下Requets和Response
在发送一个请求的时候,会找到tomcat,tomcat会找到对应的web应用创建request对象和response对象,发送给servlet
request代表请求对象,分为请求行请求头,请求体可以获取请求中的信息,以及客户机的信息,请求参数等.
response代表响应对象,可以通过这个对象操作http响应信息,封装后台返回的数据,可以设置状态码以及编码方式等等
Http
文章推荐:https://cloud.tencent.com/developer/article/1464938
介绍http协议
http属于OSI网络模型中的最上层,应用层协议,由请求和响应构成.是一个无状态协议,默认端口为80
早起http用于传输网页html文件,发展到现在用途变的广泛,客户端很大一部分都通过http来进行传输数据
访问网站的流程
- 发送请求
- dns解析成ip
- 通过ip寻址找到目标服务器
- 进行tcpip的三次握手建立tcp连接
- 浏览器发送数据等待服务器响应
- 服务器处理请求数据并对请求作出相应
- 浏览器收到服务器响应获得html代码
- 渲染页面
cookie和session的原理
cookie数据放在用户的浏览器上,session放在服务器上
cookie不是很安全因为客户是可以修改的
session会在一定时间内存放到服务器上.当访问增多会较占用服务器的性能.当第一次进入某个网站服务器会分配一个唯一标识符,然后返回在响应头之中,每次请求的时候都会把这个唯一标识发送给服务器,服务器就真的
get和post的区别
get将用户提交的数据按照name=value的形式添加到用户请求的路径后面,因此对敏感数据不能使用get请求post是将表单的数据放在请求体中传递到对应的路径
get传输数据的时受到url的长度限制,但post理论上没有限制
get一般用来从服务器获取数据,post请求用来向服务器发送数据
转发和重定向的区别
forward:转发是服务器请求资源,服务器直接访问目标地址的url把那个url响应的内容给读取过来发给浏览器,所以浏览器中的地址栏不会改变,
redirect:重定向是利用服务器返回的状态码来实现的.客户端浏览器请求服务器的时候,服务器会返回一个状态码.服务器通过设置状态码的来让浏览器进行重定向,如果服务器返回302或者301,浏览器会到新的网址
http和https的区别
- https协议需要申请证书,免费证书很少需要交费
- http协议运行在tcp智商,所有传输的内容都是明文,https传输的数据都进行了ssl加密
- http和https使用的端口一个是80一个是443
- https可以防止运营商劫持
概念基础
jsp是什么
jsp全称是java server pages,是一种动态网页开发技术,jsp本质上也是一个servlet,在第一次访问的时候会被编译成servlet,到最后还是会编译成class文件.简化了servlet输出html代码的困难问题,其本质还是用out.write进行输出的
过滤器和监听器
过滤器是一个驻留在服务端的web组件,它可以拦截客户端和服务端之间请求与响应信息,并对这些信息进行过滤.可以用作对用户进行身份认证记录,对响应内容进行编码等等
监听器是application,session,request三个对象的创建销毁或者往其中添加属性时自动执行代码的功能组件
json与xml的区别
过去开发中很长一段时间都是用的是xml,而近些年来json使用的较多,原因如下
- json数据量远远小于xml数据量
- 生成和处理的时候使用json更加直白简单,而xml生成和解析都更加非复杂
现在做数据交互一般都是用json,而xml作为配置文件比较多