JavaWeb常见面试题

【1】简述http协议?

超文本传输协议(Hyper Text Transfer Protolcol,Http)是一个简单的请求-响应协议,它通常运行在TCP智商,属于应用层协议。http协议由两部分组成,一部分是请求协议,一部分是响应协议。其中请求协议包含:请求行、请求头、请求体。响应协议包含:响应行、响应头、响应体。http路径规范如下:例如http://www.baidu.com/item/item.html?id=1;第一部分http://代表采用协议;第二部分www.baidu.com代表域名也就是ip和端口部分;第三部分/item/item.html资源路径;第四部分?id=1 ?是分隔符 id=1是向服务器提交的数据,也称为提交参数。

【2】简述B/S系统和C/S系统

B/S Browser/Server浏览器与服务器 网站;C/S Client/Server客户端与服务器 王者荣耀

【3】请说明什么是静态资源?什么是动态资源?

静态资源:提供固定不变的数据html css js图片 多媒体;动态资源:在Java中指的是servlet和jsp。

【4】请说一下Servlet的三大组件是什么?

servlet、过滤器、监听器。

Servlet:处理浏览器与服务器的请求与响应

过滤器(Filter):对Request请求起到过滤的作用,作用在Servlet之前,如果配置为/*可以对所有的资源访问(servlet、js/css静态资源等等)进行过滤处理。

监听器(Listener):实现了javax.servlet.ServletContext.listener接口的服务器端组件,它随Web应用的启动而启动,只初始化一次,然后会一直运行监视,随Web应用的停止而销毁

作用一:做一些初始化工作,web应用中spring容器启动ContextyLoaderListener

作用二:监听web中的特定事件,比如HttpSession,ServletRequest的创建和销毁;变量的创建、销毁和修改等。可以在某些动作前后端增加处理,实时监控,比如统计在线人数,利用HttpSessionListener等。

【5】Servlet生命周期

  1. 执行Servlet的构造方法。
  2. 执行init()方法
  3. 当接收到浏览器相应请求时执行service()方法
  4. 服务器关闭时执行destory()方法

【6】请简述Get请求与Post请求

只要浏览器端没有指定post请求,默认都是get请求,浏览器端可以通过form表单指定post请求方式。

  1. get请求与post请求区别如下:
  2. get请求的请求参数在请求头,post请求请求参数在请求体
  3. get请求可以被缓存,post请求不能被缓存
  4. get请求数据时2048个字符,post请求数据无限制
  5. get请求只能提交字符数据,post请求可以提交字符和字节数据

【7】请简述请求转发与重定向的区别

请求转发是指一个Servlet跳转到另一个Servlet或者jsp的过程;请求转发具有以下特点:

  1. 请求转发服务器内部跳转,不是浏览器端跳转,访问前后网址不变
  2. 所以转发前后的request作用域不变
  3. 转发前后的request属性数据共享
  4. 请求转发代码req.getRequestDispatcher("服务器端访问路径").forward(req,resp);
  5. 转发前后保证提交方式一致

重定向是指服务器端或者客户端跳转到客户端过程;重定向的本质是结束本次访问过程,跳转到客户端为下一次访问做准备。重定向特点如下:

  1. 是浏览器端跳转,网址改变。并且开启下一个请求。
  2. 本质上和a标签,form表单、location.href这些重定向没有区别
  3. Request对象数据不在共享。
  4. 可以通过resp.sendRedirect("index.html")代码完成重定向。

【8】说一下Servlet的三大域对象

request、session、ServletContext;request作用域是一次请求范围内,session是一次会话范围内,ServletContext整个上下文范围内。

【9】说一下会话技术

会话技术指的是cookie技术与session技术。cookie是浏览器端缓存技术,可以保存一小段文本到浏览器中,session是服务器技术,它的作用范围一个浏览器访问服务器的全过程,服务器为每一个客户端在服务端都保存一个session对象来记录客户端信息。而来浏览器端每次请求都会携带cookie数据到服务器端,其中cookie就记录自己的session的id值,用于告诉服务器自己的身份,而这个cookie也是服务器端创建session颁发给浏览器端的。

【10】聊一下websocket技术

Http协议是一种无状态、无连接的、单向的应用协议。它采用了请求/响应模型。通信请求只能由客户端发起,服务器对请求作出响应处理。

Http通信模型有一个弊端:HTTP协议无法实现服务器主动向客户端发起消息。只能通过ajax循环发送请求解决聊天类通讯问题,这对服务的性能消耗非常大。websocket从根本上解决了问题

websocket是一种基于NIO实现的网络通信协议,webservlet是HTML5开始提供的一种在单个TCP连接上进行的全双工通讯协议:websocket是一种异步的消息通信技术。我们可以通过websocket完成聊天功能。

【11】说一下git的常用操作命令

本地库的命令有:

  • git init初始化
  • git add添加暂存区
  • git commit 提交本地库

分支命令:

  • git branch 查看分支
  • git branch 分支名 创建分支
  • git checkout 分支名 切换分支
  • git merge 分支名 合并分支

远程库命令:

  • git remote add 添加远程库
  • git remote 查看远程库
  • git push 推送远程库
  • git pull 远程库拉取到本地
  • git clone 克隆远程库到本地

【12】说一下linux的常用操作命令

  • cd 切换目录
  • mkdir 目录名 创建目录
  • ls 查看目录
  • find 搜索目录
  • mv 修改剪切目录
  • cp -r 递归拷贝目录
  • rm -r 强制删除文件和目录
  • touch 创建文件
  • cat/more/less/tail查看文件
  • vim 文件 修改文件内容
  • tar -zcvf 打包压缩
  • tar -xvf 解压缩包
  • pwd 显示当前位置
  • | 管道命令
  • ps -ef 查看进程
  • kill -9 进程id 杀死进程
  • ip add 查看网卡信息
  • netstat -an 查看端口信息

【13】说一下maven的依赖范围

maven的依赖范围包含:compile(默认的依赖范围,在编译、测试、运行三种classpath都是有效的)、runtime(运行时的依赖范围,对测试和运行的classpath有效)、test(只对测试的classpath有效)、system(依赖范围与compile完全一致,区别在于需要使用systempath绑定本地的系统磁盘路径)、provided(对编译和测试的classpath是有效的,在运行时无效;例如servlet-api,在tomcat中是存在,只需要用来进行编译或测试,那么就需要设置为provided)

【14】说一下maven的依赖传递

当项目中出现多个相同名,不同版本号的传递性依赖时,maven采用的原则有两个:

依赖路径短者优先

例如:一个项目依赖于A和B,A依赖于C,C依赖于D(1.0),而B依赖于D(1.1),此时的依赖依赖路径为:

| --> A -->C(1.0)

| --> B -->C(1.1)

此时的依赖路径长度相同,故在pom文件中生命哪一个依赖,会优先引入其传递的依赖

【15】说一下maven的生命周期

Maven中有三种标准的生命周期:

clean:应用中目标目录中文件的清理周期

default:应用从源代码构建成可执行的构建的周期

site:项目站点文档创建的周期

三个生命周期是相互独立,并且每个周期中包含很多的阶段,每个阶段的现实都是由插件完成的。

其中最常用的default默认的生命周期,它包含compile(编译)、test(测试)、package(打包)install(安装)、deploy(部署)等阶段

【16】简单描述一下nginx服务器

Nginx是高性能的HTTP和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持50,000个并发连接数。nginx服务器主要包含:反向代理、负载均衡、动静分离等技术。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值