(五)Web 面试题

Web

104、说一说Servlet生命周期
servlet的生命周期是初始化(init)、服务(service)、销毁(destroy)
1.初始化(init):当服务器启动时进行初始化,只初始化一次
2.服务(service):方法被调用时进行服务,在项目启动期间可以进行多次服务
3.销毁(destory):当服务器关闭时进行销毁。只销毁一次

105、什么是jsp?jsp和Servlet有什么区别?
Servlet是服务器端的程序
JSP是服务器页面程序
JSP本质上就是一个Servlet,在访问jsp时,在服务器端会将jsp先转换成servlet,再将生产的servlet的结果响应给浏览器。
jsp是html页面中内嵌Java代码,侧重页面显示;Servlet是中书写Java代码,侧重逻辑控制;

106、Servlet接口中有哪些方法?
1.init(ServletConfig):初始化方法,第一次请求前执行,完成servlet初始化工作
2.service(ServletRequest,ServletResponse):执行方法,一次请求执行一次。
3.destroy():销毁方法,Servlet对象应该从服务中被移除的时候,容器会调用该方法进行销毁操作
4.getServletConfig():获得ServletConfig配置对象,包括初始化参数等。
5.getServletInfo():获得Servlet描述,一般没有用。

107、Servlet 3.0中的异步处理指的是什么?
异步处理允许Servlet重新发起一条新线程去调用 耗时业务方法,这样就可以避免等待

108、Servlet中如何获取用户提交的查询参数或表单数据?
1、request.getParameterValues(""参数"");   
//获得指定参数名的一组参数值 (String[])
2、request.getParameter(""参数"");   
//获得指定参数名的一个参数值
(String,UserServlet?username=jack,通过username获得值jack)

109、什么情况下调用doGet()和doPost()?
1、doGet():地址栏url方式访问、超链接访问、以及form表单中的method属性值为get方式访问,则调用doGet()方法
2、doPost():form表单中的method属性值为post方式访问,则调用doPost()方法

110、什么是上下文对象?如何获得上下文对象?
ServletContext对象是上下文对象 Servlet直接调用getServletContext方法返回ServletContext对象

111、servlet是线程安全的吗
Servlet不是线程安全的。Servlet 默认是单例模式,如果提供成员变量,多个线程对成员变量进行操作,将发生并发问题,所以不安全。
如果不提供成员变量,或提供成员变量但不使用,可以解决并发问题

112、如何在基于Java的Web项目中实现文件上传和下载?
文件上传
1.使用fileupload完成上传功能,需要添加commons-fileupload相关Jar包
2.表单提交请求编码类型必须是enctype=""multipart/form-data"",请求方式必须是post
3.服务器如果是Servlet需要使用fileupload的提供的工具类ServletFileUpload完成文件上传。
4.服务器如果是Spring mvc,通过MultipartFile类型接收上传数据,从而完成文件上传。

文件下载
1.提供一个超链接,可以下载浏览器不能解析的资源
2.响应头 + 响应流:如果下载资源浏览器可以解析,需要自定义实现类,添加一个下载使用的响应头content-disposition确定下载时浏览器显示的文
件名,然后以流的方式将资源响应给浏览器即可。

113、get请求和post请求有何区别(标红)
1. 表现形式:get在路径中拼凑请求参数。Post请求参数在请求体中;
2. 安全性:get请求参数追加在路径上,可见不安全,post请求参数在请求体中,一般人不可见,较安全。
3. 数据大小:get提交数据有限,post无限。

114、forward和redirect的区别(标红)
1.地址栏是否改变:forward浏览器端网址不会发生变化,redirect浏览器端地址会变成;
2.是否可共享请求参数:forward是转发,属于同一个请求,数据可以传递;redirect是两次请求,数据不能传递;
3.是否可站外跳转:forward一般用于网站内部跳转,redirect可在站内跳转,也可跳转到其它网站。

115、JSP九大内置对象(标红)
request:请求对象
response:响应对象
session:回话对象
pageContext:页面上下文对象
application:类型是ServletContext,表示servlet上下文对象,可以在整个web项目中共享资源。
out  输出对象
page JSP网页本身 
config Servlet的配置对象
exception 异常对象

116、【了解】列举page指令中至少三种常用属性,并说明其含义
session属性:表示当前页面是否支持session,如果为false,则在JSP页面中不能使用session对象。属性的默认值为true。 
info属性:设置JSP页面的相关信息。
contentType属性:设置JSP的MIME类型和字符编码。

117、讲解JSP中的四种作用域。
application:在当前web项目中有效 
session:在当前会话中有效 
request:在当前请求中有效 
page:在当前页面有效

118、【了解】如何实现JSP或Servlet的单线程模式?
通过page指令设置<%@ page isThreadSafe="false"%>,默认Servlet支持多线程模式

119、JSP中的<% %>和<% =%>有什么区别?
<% %> 用于编写Java代码,语法与方法体一致。
<%= %>将结果输出到浏览器,语法与方法的实际参数一致。

120、jsp中解决乱码的几种方式
1.JSP页面显示中文乱码:JSP页面设置为项目对应编码:contentType=""text/html; charset=UTF-8""
2.URL传递参数中文乱码:修改Tomcat的conf目录下的server.xml配置文件,<Connector> 元素中添加 URIEncoding=""UTF-8"" 属性解决;
3.表单提交中文乱码:采用过滤器Filter统一解决乱码问题

121、说说你对过滤器Filter理解,以过滤器常见应用场景
1. 过滤器Filter是对访问资源拦截的一种技术。
2. 默认在请求前拦截,在访问请求资源前完成需要的操作后,放行即可访问资源,资源访问后,再回到过滤器进行后续的处理,最后请求结束。
3.filter可以通过dispatcher来修饰拦截时机。
  REQUEST:请求前拦截,默认值
  FORWARD:请求转发前拦截
  INCLUDE:请求包含前拦截
  ERROR:显示错误页面前拦截
3. 应用场景:统一编码、统一用户认证、屏蔽非法文字,进行响应数据压缩,等等

122、说说监听器的概念和常见使用场景
1. 什么是WEB监听器:所谓的WEB监听器是指对WEB环境中Request、Session和ServletContext等的监听,当被监视的对象的创建、销毁或者属性发生
变化时,便调用相应的方法进行处理。

2. 使用场景:网站在线人数统计、监听用户的行为(管理员踢人),等等

3. 监听器的底层原理采用的观察者模式。

123、cookie是什么?session是什么?,以及它们之间的区别
cookie是浏览器技术,服务器发送,保存在浏览器
session是服务器技术,,保存在服务器,通过cookie与浏览器建立联系, 保证用户在切换页面时保持会话

区别: 
1. cookie只能存储英文字符串, session可以存储任意数据
2. cookie只能存储少量数据,session可以存储大量数据
3. cookie默认生命周期是当前会话, 关闭浏览器自动销毁, session默认生命周期是30分钟

124、session设置超时时间
session.setMaxInactiveInterval(设置时间/秒)

125、客户的信息存储在哪里?如果浏览器限制了cookie存储怎么办
cookie信息存储在浏览器端,不同浏览器存储在硬盘的具体位置会不同。
如果限制cookie的使用
1.提示用户不要禁用cookie;
2.使用URL重写技术解决cookie被禁用,session不能使用的问题:
3.使用html5的localStorage替代cookie

参考:https://blog.csdn.net/m0_38039437/article/details/76718541

126、什么是URL重写?能解决什么问题?
url重写是修改响应给用户的访问地址,在url中拼接session id。
Url重写解决是浏览器端cookie禁用,session无法使用的问题。

127、Http常见状态码(标红)
1xx(请求进行中):用于表示临时响应并需要请求者执行操作才能继续的状态代码;
2xx(请求成功):用于表示服务器已成功处理了请求的状态代码;
3xx(请求被重定向):通常这些状态代码是用于重定向的;
4xx(客户端错误):用于指出客户端的错误;
5xx(服务器错误):这些状态代码表示,服务器在尝试处理请求时发生内部错误

常见状态码:

200,服务器已成功处理了请求。
302,请求重定向
400,请求路径语法错误
404,请求资源不存在
405,请求方式不正确,如:一个资源只支持GET方法,但是客户端使用PUT方法访问。
500,服务器遇到错误,无法完成请求。

128、token和session的区别
token是服务器写到浏览器的用户标识, 一般是使用32位的UUID,为自定义数据。
session是浏览器与服务器的一次会话,是web服务器创建的对象。
session可以用于单机web服务,记录用户登录。
token可以用于集群web服务,完成单点登录。

129、什么是localStorage?
localStorage 用于在浏览器本地存储服务器响应的数据。
localStorage 是 HTML5 的新特性。
用于解析cookie存储空间不足的问题。
localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。

130、讲一讲你对Ajax的理解
1.是什么:Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术
2.使用ajax的好处有:
 ①通过异步模式,提升了用户体验;
 ②优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用;
 ③Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载
3.如何使用
  ①jQuery中发送ajax请求:
   $.ajax({
          type: ""POST"",
          url: """",
          data: ""name=John"",
          success: function(msg){}
           });
           
  ②Vue发送ajax请求:
    get请求:axios.get(url[,options]);
    post请求:axios.post(url,data,[options]);"

131、比较json和xml
1.是什么:
  json一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。
  xml是扩展标记语言 ,使用标签描述数据结构。
2.对比:
  xml的内容是结构+数据,可读性高,数量大,语法格式统一。
  Json的内容是数据,可读性低,数量小,格式自定义。
3.适用场景:
  json更适合项目间数据的传递;
  xml更适合结构的说明,例如:maven项目的pom.xml文件;

132、说明json对象和json数组的定义格式
JSON 语法规则:
1.数据在名称/值对中
2.数据由逗号分隔
3.花括号保存对象
4.方括号保存数组

JSON对象:{""key"":""value"",""key"":""value"",....}
JSON数组:[ obj , obj , obj , ....]

133、http协议底层是什么?
基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容

134、http和https的区别(详细)
HTTP:超文本传输协议,基于TCP/IP通信协议来传递数据网络协议,数据不安全,没有加密。默认端口号80
HTTPS:超文本传输安全协议,是HTTP协议 + SSL证书协议,证书需要到ca申请,传输过程中数据需要加密。默认端口号443

参考:
https://www.cnblogs.com/wudaoyongchang/p/6253451.html

135、https是什么?怎么加密的?什么加密算法? 常见的加密算法(非MD5这种不可解密的)
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版。

对称加密+非对称加密结合

用非对称加密的方式去传输对称加密的密钥,这样可以保证对称加密的密钥可以安全的交付给对方。

(也就是

1、客户端先把非对称加密的公钥,明文传输给服务器;

2、服务端在接到密钥之后,会生成一把用于对称加密的密钥;

3、服务器用之前接到的公钥对刚刚生成的密钥进行加密,然后传输给客户端;

4、客户端通过自己的密钥对服务器传过来的被公钥加密过的密钥进行解密;)

加密算法:对称加密+非对称加密

常见的加密:RC5、RC4、SHA(信息摘要算法,同MD5一样属于不可逆算法)

136、http长连接和短连接?啥时候使用?为什么?
短链接:客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。
长连接:用以保持连接特性。 长连接多用于操作频繁,点对点的通讯,而且连接数不能太多。因为用短连接频繁的通信会造成socket错误
WEB网站的http服务一般都用短链接。因为长连接对于服务端来说会耗费一定的资源

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,web面试题可以涉及许多方面的知识。其中一些可能包括对Web框架(如Django或Flask)的理解,对前端技术(如HTML、CSS和JavaScript)的掌握,以及对数据库和网络协议的了解。 另外,还有一些常见的Python面试题,例如: 1. 什么是GIL(全局解释器锁)?它是如何影响Python的多线程执行的? 2. 请解释一下Python中的装饰器是什么以及如何使用它们。 3. 请解释一下Python中的生成器是什么以及它们的工作原理。 4. 请解释一下Python中的列表推导式是什么以及如何使用它们。 5. 请解释一下Python中的异常处理是什么以及如何使用它们。 6. 请解释一下Python中的面向对象编程是什么以及如何使用它。 7. 请解释一下Python中的迭代器和可迭代对象之间的区别。 这些只是一些可能的问题,具体问题的范围和难度可能会因面试的级别和目标而有所不同。如果你有具体的问题,可以提供更多的上下文,我将尽力为您提供答案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python面试题及答案-Python面试题10道(附答案)看完面试不愁了](https://blog.csdn.net/weixin_37988176/article/details/109416928)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值