面试复习-JavaWeb

原文章:Java面试Web篇_java web面试-CSDN博客


JavaWeb基础

jsp:九大内置对象

  • request:封装了由客户端生成的HTTP头信息、系统信息、请求方式和请求参数等。通过request对象提供的相应方法可以处理客户端浏览器提交的HTTP请求中的各项参数。
  • response:用于响应客户请求,向客户端输出信息。它封装了JSP产生的响应,并发送到客户端以响应客户端的请求。请求的数据可以是各种数据类型,甚至是文件。response对象在JSP页面内有效。
  • config:读取web.xml配置信息的config对象
  • session:会话管理对象,也就是当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器并不保存相关的信息。为了弥补这一缺点,HTTP协议提供了session。通过session可以在应用程序的Web页面间进行跳转时,保存用户的状态,使整个用户会话一直存在下去,直到关闭浏览器。但是,如果在一个会话中,客户端长时间不向服务器发出请求,session对象就会自动消失。这个时间取决于服务器,例如,Tomcat服务器默认为30分钟。不过这个时间可以通过编写程序进行修改。
  • page:page对象代表JSP本身,只有在JSP页面内才是合法的。

  • application:用于保存所有应用中的共有数据。它在服务器启动时自动创建,在服务器停止时销毁。当application对象没有被销毁时,所有用户都可以共享该application对象。与session对象相比,application对象的生命周期更长,类似于系统的“全局变量”。

  • out:用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。

  • pageContext:页面上下文的对象,pageContext对象的创建和初始化都是由容器来完成的。

  • exception:用来处理JSP文件执行时发生的所有错误和异常,在Java程序中,可以使用try...catch关键字来处理异常情况,如果在JSP页面中出现没有捕获到的异常,就会生成exception对象,并把exception对象传送到在page指令中定义的错误页面中,然后在错误页面中处理相应的exception对象。 

servlet:四大作用域

  • application:当Web应用被加载进容器时创建代表整个web应用的application对象,当服务器关闭或Web应用被移除时,application对象跟着销毁。用于保存公共数据。
  • pagecontext:作用范围是整个页面,它是四大作用域中最小的一个;当请求时开始,当响应结束时销毁。
  • request:在service 方法调用前由服务器创建,请求结束,request结束。
  • session:在第一次调用 request.getSession() 方法时,服务器会检查是否已经有对应的session,如果没有就在内存 中创建一个session并返回。注意session的作用范围是一次会话。一般用来保存登录的用户信息、购物车信息等。
session与cookie区别
  • 作用范围:session-服务端(服务器)、cookie客户端(浏览器)数据存储
  • 安全性:session安全、cookie不安全,在浏览器可以查看cookie信息
  • 读取速度:session速度慢,因为session存在服务端,所有用户信息存在seesion的话,当服务器去读取用户信息时,服务器压力大。  cookie速度快,因为用户信息存在客户端的话,当客户端去读取用户信息时,用户信息分给每个访问页面浏览器(客户端),用户信息压力小。

JavaWeb框架

Spring

核心组件:IOC、AOP

对IOC理解

IOC:控制反转,依赖注入
控制反转:将对象实例化的权利由程序员控制转交给Spring容器进行控制
依赖注入:将一个对象注入另外一个对象,例如Controller中注入service实现类给service接口

javabean的配置是单例多例

Spring对于javabean的管理默认就是单例的;但是可以配置多例,更加实际情况或者业务需求去定义。
单例的特点是节约内存,存在变量污染;多例的特点是消耗内存,不存在变量污染,

javabean的生命周期

单例:容器生,对象生,容器死,对象死;

多例:使用时创建,销毁跟着jvm走;

单例理解:这个bean要被很多对象调用,既然迟早要调用,所以spring在设计的时候就把bean放在项目启动时,先将容器创建完,对象也已经初始化好了;

bean依赖注入的方式

set注入、构造注入
自动装配:
byName:根据名字在Spring上下文中查找,更具bean的名称,找到id进行注入
byType:根据类型在Spring上下文中查找,只要是接口的实现类就可以更具类型注入

对Spring AOP理解

AOP:面向切面编程
作用:将共性的非核心业务功能进行解耦

实际开发对于AOP的应用
  • 日志
  • 事务列表

    前置通知:开启事务
    后置通知:提交事务
    异常通知:回滚事务
    过滤通知:区别对待增删改有事务,查询没有事务
    @transactional        注解式事务,应用在方法或类上

jdk代理与cglib代理的区别

jdk代理代理的是接口,cglib代理的是类。

因为在jdk代理中的代理类与目标类必须实现同一个接口,但是cglib代理不需要实现同一个接口

Spring的底层用了哪些设计模式

工厂模式、单例模式、原型模式、代理模式

SpringMVC工作流程

  1. 用户发起请求 - DispatherServlet
  2. DispatcherServlet - HandlerMapping
  3. DispatcherServlet - HandlerAdapter
  4. HandlerAdapter - 处理器功能处理方法的调用
  5.  ModelAndView的逻辑视图名 - ViewRecolver
  6. View - 渲染
详情
  1. 由 DispatcherServlet 请求一个或多个 HandlerMapping(处理器映射器),并返回一个执行链(HandlerExecutionChain)。

  2. DispatcherServlet 将执行链返回的 Handler 信息发送给 HandlerAdapter(处理器适配器);

  3. HandlerAdapter 根据 Handler 信息找到并执行相应的 Handler(常称为 Controller);

  4. Handler 执行完毕后会返回给 HandlerAdapter 一个 ModelAndView 对象(Spring MVC的底层对象,包括 Model 数据模型和 View 视图信息);

  5. HandlerAdapter 接收到 ModelAndView 对象后,将其返回给 DispatcherServlet ;

  6. DispatcherServlet 接收到 ModelAndView 对象后,会请求 ViewResolver(视图解析器)对视图进行解析;

  7. ViewResolver 根据 View 信息匹配到相应的视图结果,并返回给 DispatcherServlet;

  8. DispatcherServlet 接收到具体的 View 视图后,进行视图渲染,将 Model 中的模型数据填充到 View 视图中的 request 域,生成最终的 View(视图);

springmvc常用注解
  •  类:@Controller、@restController、@ControllerAdvice
  •  方法上:@get/delete/post/putmapping @responseBody @ExceptionHandler
  •  方法内:@pathvarible @requestBody @requestParam @requestHeader

Mybatis

#与$的区别

相同点:都是用来传参
不同点:#是自带引号,$不带引号 

  1. #没有sql注入,$存在sql注入的风险
  2. $可以用来做动态列
ResultType与ResultMap区别

ResultType:单表查询、类型java.lang.string/integer、java.util.map
ResultMap:配置映射关系,用于多表查询

批量新增/二级缓存的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值