java面试之javaweb

深云客      2022-05-08     189

关键词:

64. JSP 和 servlet 有什么区别?

JSP 是 servlet 技术的扩展,本质上就是 servlet 的简易方式。servlet 和 JSP 最主要的不同点在于,servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 html 里分离开来,而 JSP 的情况是 Java 和 html 可以组合成一个扩展名为 JSP 的文件。JSP 侧重于视图,servlet 主要用于控制逻辑。

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

JSP 有 9 大内置对象:

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

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

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

67. session 和 cookie 有什么区别?

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

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

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

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

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

70. spring mvc 和 struts 的区别是什么?

  • 拦截级别:struts2 是类级别的拦截;spring mvc 是方法级别的拦截。
  • 数据独立性:spring mvc 的方法之间基本上独立的,独享 request 和 response 数据,请求数据通过参数获取,处理结果通过 ModelMap 交回给框架,方法之间不共享变量;而 struts2 虽然方法之间也是独立的,但其所有 action 变量是共享的,这不会影响程序运行,却给我们编码和读程序时带来了一定的麻烦。
  • 拦截机制:struts2 有以自己的 interceptor 机制,spring mvc 用的是独立的 aop 方式,这样导致struts2 的配置文件量比 spring mvc 大。
  • 对 ajax 的支持:spring mvc 集成了ajax,所有 ajax 使用很方便,只需要一个注解 @ResponseBody 就可以实现了;而 struts2 一般需要安装插件或者自己写代码才行。

71. 如何避免 SQL 注入?

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

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

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

预防 XSS 的核心是必须对输入的数据做过滤处理。

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

CSRF:Cross-Site Request Forgery(中文:跨站请求伪造),可以理解为攻击者盗用了你的身份,以你的名义发送恶意请求,比如:以你名义发送邮件、发消息、购买商品,虚拟货币转账等。

防御手段:

  • 验证请求来源地址;
  • 关键操作添加验证码;
  • 在请求地址添加 token 并验证。

面试之javaweb基础

1.说下原生jdbc操作数据库流程?第一步:Class.forName()加载数据库连接驱动;第二步:DriverManager.getConnection()获取数据连接对象;第三步:根据SQL获取sql会话对象,有2种方式Statement、PreparedStatement;第四步:执行SQL处理结果集,执行SQ... 查看详情

面试之javaweb篇(十三)

148,AJAX有哪些有点和缺点?优点:        1、最大的一点是页面无刷新,用户的体验非常好。        2、使用异步方式与服务器通信,具有更加迅速的响应能力。  ... 查看详情

java面试之javaweb常用框架(offer拿来吧你)(代码片段)

现在关于Java面试的资料是层出不穷,对于选择困难症的同学来说,无疑是陷入了一次次的抉择与不安中,担心错过了关键内容,现在小曾哥秉持着"融百家之所长,汇精辟之文档"的思想,整理一下目前主... 查看详情

[interview]java面试宝典系列之javaweb(代码片段)

文章目录1.cookie和session的区别是什么?2.cookie和session各自适合的场景是什么?3.请介绍session的工作原理4.get请求与post请求有什么区别?5.get请求的参数能放到body里面吗?6.post不幂等是为什么?7.页面报400错误是... 查看详情

java面试:javaweb框架代码

01并发宝典:面试专题面试专题分为四个部分,分别如下Synchronized相关问题可重入锁ReentrantLock及其他显式锁相关问题Java线程池相关问题Java内存模型相关问题1.1Synchronized相关问题(这里整理了八问)问题一:Syn... 查看详情

初级javaweb攻城狮面试指导

一、概要    初级JavaWeb工程师的面试准备    Java基础知识面试指导    Java面向对象面试指导    JSP面试指导    MySQL数据库基础面试指导  &n 查看详情

javaweb知识汇总目录

JavaWeb知识汇总目录JavaWeb之Java基础知识增强JavaWeb之JDBCJavaWeb之数据库连接池JavaWeb之HTML&CSSJavaWeb之JavaScriptJavaWeb之BootstrapJavaWeb之XMLJavaWeb之web服务器软件JavaWeb之ServletJavaWeb之http协议JavaWeb之会话技术JavaWeb之JSP&MVC& 查看详情

javaweb知识汇总目录

JavaWeb知识汇总目录JavaWeb之Java基础知识增强JavaWeb之JDBCJavaWeb之数据库连接池JavaWeb之HTML&CSSJavaWeb之JavaScriptJavaWeb之BootstrapJavaWeb之XMLJavaWeb之web服务器软件JavaWeb之ServletJavaWeb之http协议JavaWeb之会话技术JavaWeb之JSP&MVC&EL&JSTLJav... 查看详情

java学习心得之linux下搭建javaweb环境

Java学习心得之Linux下搭建JavaWeb环境1.前言2.Java安装3.tomcat安装4.tomcat简单命令 一、前言本篇博文记录了Linux下JavaWeb环境的搭建,本文内容基于以下文章:http://m.blog.csdn.net/article/details?id=7727927(ubuntu下搭建javaweb开发环境的详细... 查看详情

初级javaweb攻城狮面试指导

一、Java面向对象必会知识点    Java的核心是面向对象编程,所有的java程序都是面向对象的。需要看清Java的本质,从复杂的表象中寻找普遍的规律,并深刻理解Java的核心思想。    1.面向对象的特点... 查看详情

javaweb之ajax&json(代码片段)

知识回顾:JavaWeb之Java基础知识增强JavaWeb之JDBCJavaWeb之数据库连接池JavaWeb之HTML&CSSJavaWeb之JavaScriptJavaWeb之BootstrapJavaWeb之XMLJavaWeb之web服务器软件JavaWeb之ServletJavaWeb之http协议JavaWeb之会话技术JavaWeb之JSP&MVC&a 查看详情

javaweb学习入门之——java基础

一、Java概述  JavaEE是指JavaEnterpriseEdition,Java企业版,多用于企业级开发,包括web开发等等。也叫J2EE。  JavaSE通常是指JavaStandardEdition,Java标准版,就是一般Java程序的开发就可以(如桌面程序),可以看作是JavaEE的子集。  J... 查看详情

javaweb架构知识整理——记一次阿里面试经历

...在。”这话从来很灵验。经过这次面试,觉得需要整理下JavaWeb相关的资料,以便自己提高或者更快适应可能面临的新的工作。  首先谈谈JavaWeb需要掌握哪些东西。这里是一些知识点的搜集,暂不做详细说明,欢迎各位博友补... 查看详情

javaweb架构知识整理——记一次阿里面试经历

...在。”这话从来很灵验。经过这次面试,觉得需要整理下JavaWeb相关的资料,以便自己提高或者更快适应可能面临的新的工作。  首先谈谈JavaWeb需要掌握哪些东西。这里是一些知识点的搜集,暂不做详细说明,欢迎各位博友补... 查看详情

(java实习生)每日10道面试题打卡——javaweb篇(代码片段)

...#xff0c;祝大家每天进步亿点点!打卡Day05!本篇总结的是javaweb相关的面试题,后续会每日更新~剧透:明日更新JVM面试题,相关知识不牢固的先去补一补哦O(∩_∩)O~1、JSP和Servlet有什么区别?JSP经编译后就变成了Ser... 查看详情

java开发快速上手!javaweb基础面试题

一、Dubbo是什么?Dubbo是阿里巴巴开源的基于Java的高性能RPC(一种远程调用)分布式服务框架(SOA),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。二、为什么要用Dubbo࿱... 查看详情

javaee之javaweb核心之servlet

Servlet简介:Servlet运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API动态的向客户端输出内容servlet规范:包含三个技术点1)s... 查看详情

javaweb快速入门之环境搭建

...技术方向发生转变(由.NET全部转为JAVA),需要熟练掌握JAVAWEB相关的知识,故我也得顺应潮流,”精通“JAVA ^v^,当然.NETCORE也是我同步学习与研究的方向,甚至还有PYTHON,活到老学到老。JAVA我之前也涉猎过一些,也看... 查看详情