JavaWeb部分面试总结(1)

今日内容

吃包子,好吃的就是馅;学Java,有趣的地方就是JavaWeb啦!
如果你想学好Java,那么你一定要好好学一下JavaWeb部分的内容,因为后面学框架和做项目的时候都离不开JavaWeb。在前面我们学习了Java基础、数据库,可能还有些人学了点前端对吧,其实你就已经可以做一个简陋的系统了,但是这个时候如果你学了JavaWeb,那么你做出来的东西那就完全不一样了,所以大家一定要好好学习这一部分的内容,不然后面就可能n脸懵了!
接下来一周全国数学建模比赛要开始了,所以可能没有时间更新了,但是大家还是要继续努力学习啦,毕竟这个部分的内容也比较多比较杂,学会不难,学好可不容易!加油!!!

面试内容总结

  1. servlet的生命周期
    1. 加载并实例化:当servlet容器启动后,servlet会通过类加载器来加载servlet容器,完成后再new一个servlet对象完成实例化。
    2. init()初始化:调用Servlet对象的初始化方法做初始化信息,此方法只会被调用一次!
    3. service()执行:用来处理请求,在HttpServlet中被封装为了doGet()方法和doPost()方法。
    4. destroy()销毁:在长时间没有被调用或者是服务器关闭时,会调用destroy方法来销毁!

  1. servlet是单例的嘛?
    1. Servlet默认是是单例多线程的~

  1. cookie和session的区别
    1. cookie的数据是保存在客户端的,session的数据是保存在服务器端的
    2. cookie只能存放在浏览器中,session还可以存放在Redis或者数据库中
    3. cookie的安全性不太高,session安全性会更好
    4. cookie容易被欺骗,session不太会
    5. cookie可以减轻服务性能,session可以在一定时间保存在服务器上,当访问增多时比较耗内存

  1. session的原理
    1. 当浏览器第一次发送请求给服务器端时,服务器会创建一个session,同时这个时候也会创建一个cookie(name为jSessionID,Value为Session的id值),然后将cookie发送至浏览器端
    2. 浏览器发送第n次请求给服务端,都会携带着这个jSessionID的cookie对象
    3. 可以通过查询name为JsessionID的cookie的value值,查看有没有这个session对象

  1. 如何客户端禁止Cookie,那么Session还能用吗?
    1. 可以用,Session只是依赖SessionID
    2. 如果Cookie被禁止了,还可以在url中添加Session的方法来保证Session的正常使用~

  1. 请求转发和重定向的区别(forward和redirect的区别)
    1. forward的地址栏不会发生变化,而redirect的地址栏会发生变化。
    2. forward的数据存取是在request域中,而redirect的数据存取是在session域中。
    3. forward不能跨域访问,而redirect可以跨域。
    4. forward是一次请求,redirect是一次会话,多次请求!
    5. forward比redirect更加高效,所以能forward就不redirect!

  1. 如何实现跨域
    1. 服务器端跨域设置CORS等于*。
    2. 单个接口使用注解@CrossOrigin运行跨域。
    3. 使用jsonp跨域:利用script标签的src连接可以访问不同源的特性,加载远程返回的“JS函数”来执行的

  1. 跨域的session如何处理
    1. 使用cookie跨域共享来处理Session跨域问题,设置Cookie的有效范围即可!
    2. 使用Spring Session
    3. 使用JWT的机制
    4. 使用Token机制
    5. 以上四种方式具体的方式感兴趣的可以自行去了解一下!

  1. 拦截器和过滤器的区别
    1. 拦截器是实现HandlerInterceptor接口,过滤器是实现Filter接口
    2. 拦截器有三个时间节点,而过滤器只有一个时间点
    3. 拦截器的底层原理是反射机制,而过滤器底层仅仅是函数的回调
    4. 拦截器是属于框架对象,而过滤器是属于Servlet对象
    5. 拦截器一般做请求验证和拦截请求,而过滤器一般是设置request和response的参数,侧重于数据过滤
    6. 过滤器在拦截器之前执行!
    7. 如果请求不被DispatcherServlet接受,那么拦截器失效!

  1. http发送请求的过程
    1. 浏览器根据域名进行解析IP地址
    2. 浏览器与服务器建立一个TCP连接
    3. 浏览器给服务器发送一个HTTP请求
    4. 服务器端响应HTTP请求,浏览器得到HTML代码
    5. 浏览器解析HTML代码,并请求HTML代码中的资源
    6. 关闭服务器端TCP连接,浏览器对页面进行渲染

  1. 常见的http状态码有哪些?
    1. 200:成功
    2. 302:重定向
    3. 304:访问缓存
    4. 404:无对应的资源
    5. 405:请求方式中没有doXXX的方法
    6. 500:服务器端在执行请求时发生了错误!

  1. get请求和post请求的区别
    1. get请求时可以缓存的,而post请求是不可以缓存的
    2. get请求的数据会被连接在地址栏后面,而post请求的数据会被放入到请求体中
    3. get请求的数据传输大小不能超过4k,而post请求数据没有大小限制!
    4. get请求不太安全,而post请求比较安全。
    5. get请求能够保留历史记录,而post请求不能保留!

  1. 什么是ajax?能做什么?
    1. Ajax(Asynchronous JavaScript and XML)是异步的JavaScript和XML
    2. 作用:可以实现异步刷新,也就是在整个网页中,实现部分内容的刷新了,不用重新加载整个网页界面!
    3. 可以增强用户的体验感,而且可以减轻服务器端的负载!

阶段性总结

当你学完JavaWeb这一块内容的时候,其实你就有能力做起来一个很好的项目了。但是这个时候的你,可能发现无从下手了,,,
不要慌好嘛,这个时候我们就应该去找一些项目资源,跟着大佬们一起做,做的多了就会了对不对,但是不是看啊,是要多实践多敲!!!
多的话就不讲了,大家一定要多动手,不能老看,看懂了真的不算懂!
如果大家有什么好的项目推荐也可以给咱推荐推荐,一起学习一起进步咩~
下一节见~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值