首页 > 编程语言 >Java面试题(Java Web)

Java面试题(Java Web)

时间:2024-08-14 13:52:56浏览次数:11  
标签:Web 面试题 Java 对象 session cookie 页面 客户端

目录

1. JSP 有哪些内置对象?作用分别是什么?

2. 说一下 JSP 的 4 种作用域?

3. session 和 cookie 有什么区别?

4. 说一下 session 的工作原理?

5. 如果客户端禁止 cookie 能实现 session 还能用吗?

6. 如何避免 SQL 注入?

7. 什么是 XSS 攻击,如何避免?

8. 什么是 CSRF 攻击,如何避免?


1. JSP 有哪些内置对象?作用分别是什么?

  1. request:封装客户端的请求,其中包含来自 get 或 post 请求的参数;
  2. response:封装服务器对客户端的响应;
  3. pageContext:通过该对象可以获取其他对象;
  4. session:封装用户会话的对象;
  5. application:封装服务器运行环境的对象;
  6. out:输出服务器响应的输出流对象;
  7. config:Web 应用的配置对象;
  8. page:JSP 页面本身(相当于 Java 程序中的 this);
  9. exception:封装页面抛出异常的对象。

2. 说一下 JSP 的 4 种作用域?

  1. page:代表与一个页面相关的对象和属性。
  2. request:代表与客户端发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件;需要在页面显示的临时数据可以置于此作用域。
  3. session:代表与某个用户与服务器建立的一次会话相关的对象和属性。跟某个用户相关的数据应该放在用户自己的 session 中。
  4. application:代表与整个 Web 应用程序相关的对象和属性,它实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域。

3. session 和 cookie 有什么区别?

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

4. 说一下 session 的工作原理?

        session 的工作原理是客户端登录完成之后,服务器会创建对应的 session,session 创建完之后,会把 session 的 id 发送给客户端,客户端再存储到浏览器中。这样客户端每次访问服务器时,都会带着 sessionid,服务器拿到 sessionid 之后,在内存找到与之对应的 session 这样就可以正常工作了。

5. 如果客户端禁止 cookie 能实现 session 还能用吗?

        可以用,session 只是依赖 cookie 存储 sessionid,如果 cookie 被禁用了,可以使用 url 中添加 sessionid 的方式保证 session 能正常使用。

6. 如何避免 SQL 注入?

  1. 使用预处理 PreparedStatement。
  2. 使用正则表达式过滤掉字符中的特殊字符

7. 什么是 XSS 攻击,如何避免?

        XSS 攻击:即跨站脚本攻击,它是 Web 程序中常见的漏洞。原理是攻击者往 Web 页面里插入恶意的脚本代码(css 代码、Javascript 代码等),当用户浏览该页面时,嵌入其中的脚本代码会被执行,从而达到恶意攻击用户的目的,如盗取用户 cookie、破坏页面结构、重定向到其他网站等。预防 XSS 的核心是必须对输入的数据做过滤处理。

8. 什么是 CSRF 攻击,如何避免?

        CSRF:Cross-Site Request Forgery(中文:跨站请求伪造),可以理解为攻击者盗用了你的身份,以你的名义发送恶意请求,比如:以你名义发送邮件、发消息、购买商品,虚拟货币转账等。 防御手段:
  1. 验证请求来源地址;
  2. 关键操作添加验证码;
  3. 在请求地址添加 token 并验证。

标签:Web,面试题,Java,对象,session,cookie,页面,客户端
From: https://blog.csdn.net/Hanshy123/article/details/141135098

相关文章

  • Java面试题(异常)
    目录1.throw和throws的区别?2.final、finally、finalize有什么区别?3.try-catch-finally中哪个部分可以省略?4.try-catch-finally中,如果catch中return了,finally还会执行吗?5.常见的异常类有哪些?1.throw和throws的区别?throw:是真实抛出一个异常。thr......
  • Java面试题(网络)
    1.forward和redirect的区别?forward是转发和redirect是重定向:地址栏url显示:fowardurl不会发生改变,redirecturl会发生改变;数据共享:      forward可以共享request里的数据,redirect不能共享;效       率:      forw......
  • 科普文:Java基础系列之【java框架基础:字节码增强技术框架ASM】
    ,之前的文章我们介绍了字节码的基础知识,今天我们将介绍字节码相关的应用场景,首先要介绍的是如何对字节码做解析和修改,本文将会详细给大家介绍一个工业级字节码操作框架ASM。ASM当我们需要对一个class文件做修改时,我们可以选择自己解析这个class文件,在符合Java字节码规......
  • 科普文:Java基础系列之【java框架基础:字节码增强技术框架ASM#ClassReader实现原理及源
    1概述ASM是Java中比较流行的用来读写字节码的类库,用来基于字节码层面对代码进行分析和转换。在读写的过程中可以加入自定义的逻辑以增强或修改原来已编译好的字节码,比如CGLIB用它来实现动态代理。ASM被设计用于在运行时对Java类进行生成和转换,当然也包括离线处理。ASM短小精......
  • 一个Web服务器及python作web开发的框架:Tornado 托内科及python提示报错:ImportError:
    一、一个Web服务器及python作web开发的框架:Tornado托内科    tornado,是使用Python编写的一个强大的、可扩展的Web服务器及Python作web开发框架。网上说Tornado和现在的主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利......
  • 【Web自动化测试】UnitTest基础入门(1)
    目录:1.UnitTest核心要素2.断言3.参数化4.跳过5.基于UnitTest生成HTML测试报告---------------------------------------------------------------------------------------------------------------------------------1.UnitTest核心要素1.TestCase(测试用例)importun......
  • 身份证实名认证类接口怎么选择?JavaScript身份证三要素核验接口返回参数说明
    当我们在选择身份证实名认证接口的时候,首先要考虑的是接口的稳定性和可靠性,翔云身份证实名认证接口,一般是指通过身份证三要素:身份证号、姓名、证件人像核验的方式来对身份证真伪的一致性进行核验,且接口的部署方式简单便捷。翔云身份证核验接口返回参数说明序号 名称 类......
  • “从零开始的HTML 表格”——WEB开发系列09
    HTML表格是一种用于在网页上组织和显示信息的结构性元素,它能够将数据以行和列的形式呈现,帮助用户更清晰地理解数据关系。表格在展示统计数据、产品列表、日程安排等方面非常实用。一、HTML表格的基本结构HTML表格用​​<table>​​标签来定义,是用来展示结构化数据的......
  • HTML样式- CSS——WEB开发系列08
    一、HTML基础概述HTML用于创建网页的结构。网页的所有内容,例如文本、图像、链接、表单等,都是通过HTML标签来定义的。以下是一个简单的HTML文档结构示例:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="wi......
  • Java开发中使用腾讯云OCR进行身份证识别与COS云存储实践
    文章目录完整代码代码讲解总结在Java开发中,处理身份证识别和云存储是一项常见的需求,尤其是在需要用户身份验证的应用场景中。今天,我想和大家分享一个实际的案例,展示如何利用腾讯云的OCR服务进行身份证识别,并将识别到的身份证信息上传到云存储中。完整代码以下......