JAVA面试篇(五)一SpringMVC

SpringMVC常见面试题总结 SpringMVC常见面试题总结 1. 什么是SpringMVC? SpringMVC是一种基于 Java 的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于Spring框架的一个模块。 它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful编程风格的请求。 2.什么是MVC模式? MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是 阅读详情

1、SpringMVC的工作流程?

➢(1)用户发送请求至前端控制器DispatcherServlet;
➢(2)DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handler;
➢(3)处理器映射器根据请求url找到具体的处理器Handler,生成处理器对象及处理器拦截器(如果有则生成),
	一并返回给DispatcherServlet;
➢(4)DispatcherServlet 调用 HandlerAdapter处理器适配器,请求执行Handler;
➢(5)HandlerAdapter 经过适配调用 具体处理器进行处理业务逻辑;
➢(6)Handler执行完成返回ModelAndView;
➢(7)HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;
➢(8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;
➢(9)ViewResolver解析后返回具体View;
➢(10)DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
➢(11)DispatcherServlet响应用户。

2、Springmvc的优点:

(1)可以支持各种视图技术,而不仅仅局限于JSP;
(2)与Spring框架集成(如IoC容器、AOP等);
(3)清晰的角色分配:
		前端控制器(dispatcherServlet) 
		请求到处理器映射(handlerMapping)
		处理器适配器(HandlerAdapter)
		视图解析器(ViewResolver)
		处理器(Handler)
		视图(View)
		
(4) 支持各种请求资源的映射策略。

3、SpringMVC怎么样设定重定向和转发的?

(1)转发:在返回值前面加 "forward:"
(2)重定向:在返回值前面加 "redirect:"

4、 SpringMVC常用的注解有哪些?

@RequestMapping 用于处理请求 url 映射的注解,可用于类或方法上。
	用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。
	
@RequestBody 注解实现接收http请求的json数据,将json转换为java对象。

@ResponseBody 注解实现将controller方法返回对象转化为json对象响应给客户。

@RequestParam 把请求中指定名称的参数给控制器中的形参赋值。

@PathVariable 用于绑定 url 中的占位符。

@RequestHeader 用于获取请求消息头。

@CookieValue 用于把指定 cookie 名称的值传入控制器方法参数。

5、SpingMvc中的控制器的注解一般用哪个?有没有别的注解可以替代?

一般用 @Controller 注解

也可以使用 @RestController ,@RestController 注解相当于 @ResponseBody + @Controller

6、Spring MVC的异常处理 ?

可以将异常抛给Spring框架,由Spring框架来处理;

我们只需要配置简单的异常处理器,在异常处理器中添视图页面即可。

7、SpringMvc的控制器是不是单例模式?如果是,有什么问题?怎么解决?

是单例模式,在多线程访问的时候有线程安全问题,解决方案是在控制器里面不能写可变状态量,

如果需要使用这些可变状态,可以使用ThreadLocal机制解决,为每个线程单独生成一份变量副本,独立操作,互不影响。

8、怎样在方法里面得到Request,或者Response?

在方法的形参中声明(HttpServletRequest request, HttpServletResponse response),
SpringMvc就自动把 request/response 对象传入。

9、SpringMvc中函数的返回值是什么?

返回值可以有很多类型,有String,ModelAndView。ModelAndView类把视图和数据都合并的一起的,但一般用String比较好。

10、SpringMvc用什么对象从后台向前台传递数据的?

通过ModelMap对象,可以在这个对象里面调用put方法,把对象加到里面,前端就可以通过el表达式拿到。

11、怎么样把 ModelMap 里面的数据放入 Session 里面?

可以在类上面加上 @SessionAttributes 注解,里面包含的字符串就是要放入 session 里面的 key。

12、如何自定义拦截器?
➢ 1. 实现拦截器,通常拦截器类可以通过两种方式来定义。
1).通过实现HandlerInterceptor接口,或继承HandlerInterceptor接口的实现类(如HandlerInterceptorAdapter)来定义。
2).通过实现WebRequestInterceptor接口,或继承WebRequestInterceptor接口的实现类来定义。

/**
 * 定义拦截器类,实现HandlerInterceptor接口
 *
 * @author zhao-cj
 */
@Component
public class MyProjectInterceptor implements HandlerInterceptor {

    /**
     * 原始方法调用前执行的内容
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, 
    													Object handler) throws Exception {
        System.out.println("preHandle...");
        return true;
    }

    /**
     * 原始方法调用后执行的内容
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, 
    						Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle...");
    }

    /**
     * 原始方法调用完成后执行的内容
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, 
    										Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion...");
    }
  
}

➢ 2. 配置拦截器

/**
 * SpringMvc 配置器
 *
 * @author zhao-cj
 */
@Configuration
@EnableWebMvc
public class SpringMvcConfig implements WebMvcConfigurer {

    @Autowired
    private MyProjectInterceptor projectInterceptor;

    private MyProjectInterceptor projectInterceptor2;

    /**
     * 拦截器配置,可配置多个
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {

        registry.addInterceptor(projectInterceptor).addPathPatterns("/mall", "/mall/*");
        registry.addInterceptor(projectInterceptor2).addPathPatterns("/mall", "/mall/*");
    }

    /**
     * 静态资源配置
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**")
                .addResourceLocations("classpath:/static/")
                .resourceChain(true);
    }

    /**
     * 全局跨域处理
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {

        //添加映射路径
        registry.addMapping("/**")
                //是否发送Cookie
                .allowCredentials(true)
                //设置放行哪些原始域   SpringBoot2.4.4下低版本使用.allowedOrigins("*")
                .allowedOriginPatterns("*")
                //放行哪些请求方式
                .allowedMethods(new String[]{"GET", "POST", "PUT", "DELETE"})
                //.allowedMethods("*") //或者放行全部
                //放行哪些原始请求头部信息
                .allowedHeaders("*")
                //暴露哪些原始请求头部信息
                .exposedHeaders("*");
    }
}

Java开发实习生面试—附简历以及面试题 记录下第一次面试。面的是 Java开发实习生。前些天注册了BOSS直聘,简单填了下资料。(其实还没准备找实习,就是上去看看行情~)结果过了几天,(12月29号,星期五下午) ,突然有个招Java开发实习生的公司问我要简历。(其实当时我都还没有准备简历,然后临时赶紧准备了个简历,连照片都是寝室里拍的,然后P成了证件照。)(最近好像秋招找简历的人比较多,这张简历太简陋了,这里提供了一张新的简历,虽然也还是一般,不过添加了项目经历,可以参考下 ?? 点击查看简历****)给了简历之后,那天晚上,就和我约了面试。约 阅读详情

相关推荐

超详细的Java面试题汇总(基础篇+框架篇)

Java面试题汇总-基础篇 1.面向对象是什么? 答:面向对象是一种思想,世间万物都可以看做一个对象,这里只讨论面向对象编程(OOP),Java是一个支持并发、基于类和面向对象的计算机编程语言,面向对象软件开发的优点:代码开发模块化,更易维护和修改;代码复用性强;增强代码的可靠性和灵活性;增加代码的可读性。 2、String 是最基本的数据类型吗? 答:不是。Java中的基本数据类型只有8个:by...

Jex的博客 1274

合辑 | 面试必备!18篇Java面试疑难点详解

简介:就目前就业环境来看,学习Java软件开发是不会过时的,据各大招聘网站统计,Java程序员的需求10年来一直跃居首位。本节小编汇总了18篇Java面试相关的疑难点解析,知识点+理论详解帮助你稳扎稳打,学好Java不再是难事~ Java数据库开发 1.面试疑难点解析——Java数据库开发(一) 当面试官提问数据库优化及NoSQL使用场景时,该如何回答?在现实的开发环境之中所谓的数据库优...

阿里云开发者 6818

2021年SpringMVC面试题

文章目录前言SpringMVC面试题内容1. 什么是Spring MVC?2. Spring MVC的优点什么是?3. Spring MVC的主要组件是什么?4. SpringMVC的工作原理是什么?5. 什么是DispatcherServlet6. 什么是Spring MVC框架的控制器?7. Spring MVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?8. SpingMVC中的控制器的注解一般用哪个,有没有别的注解可以替代?9. @Controller注解的作用?10. @RequestM

码农阿斌的博客 8430

Java最全Spring框架(五)SpringMVC高级,面试字节跳动Java研发岗

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。最新整理面试题上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题最新整理电子书最新整理大厂面试文档以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取try {

2401_84004024的博客 731

【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2026版)

Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理

种一棵树最好的时间是十年前,其次是现在 4692

〖程序员的自我修养 - 精炼面试篇⑤〗- 应届生的经典「自我介绍」案例

前面两个章节我们强调了自我介绍的重点、应该说什么,这一章节我就以求职者的身份为大家演示两个求职的示范,如何利用三分钟的时间将自己推销出去。如果说学习经历与工作经历比较丰富,稍微超过3分钟也是可以接受的,毕竟谁能够拒绝因为优秀的同事呢,最重要的事要将我们身上的闪光点传达给面试官才行。

易编橙 · 终身成长社群,相遇已是上上签! 1万+

Java实习面试经验一

Java大三实习面试经验 由于在春招大厂面试时不给力,只能靠现在在BOSS直聘、拉钩等网址投简历,正好学习有个毕业照招聘会,我也过去面试了以下Java的后台开发,以下是面试的一些问题,分享出来,大家可以借鉴下。 SpringBoot和SpringMVC区别 类比来看: spring boot 相当于 腾讯的 Wegame,里面装了自家的各种游戏 如 spring data 、spring mv...

Hpsyche的博客 2634

深度学习分类任务中,正负样本比例失衡的5种实战解决方案(附代码)

本文深入探讨了深度学习分类任务中正负样本比例失衡的5种实战解决方案,包括智能采样技术、动态数据增强、损失函数工程、模型架构创新和训练策略优化。针对信用卡欺诈检测、医疗诊断等场景,提供了详细的代码实现和评估方法,帮助开发者有效解决样本不平衡问题,提升模型在真实场景中的表现。

h9j8k7l6m5n的博客 424

面试问到springmvc不会怎么办?看这篇就够了,springmvc面试题(共22题,含答案)

【Java架构师面试网】收集整理了一些Java面试的常见问题,这些问题可能会在你下一次技术面试中遇到。想成为Java架构师,这些都是不可避免也是必须要掌握的哦,对于其他模块的面试题,我后续也将单独分享面试问题和答案。成为Java架构师的这条路道阻且艰,但是既然选择了远方就是选择了风雨兼程,希望大家都能早日圆自己的架构师梦,同样也希望我自己可以,除了网站,还做了个公众号:Java架构师面试网,关注并加交流群即可获得我给你准备的精美面试礼包哦~ 1、什么是 SpringMvc? 答:SpringMvc 是 .

Java架构师面试网 790

大模型在心律失常预测及治疗方案制定中的应用研究报告

目录一、引言1.1 研究背景与意义1.2 研究目的与方法1.3 研究创新点二、大模型技术概述2.1 大模型基本原理2.2 常见大模型类型及特点2.3 大模型在医疗领域的应用现状三、心律失常的术前预测与准备3.1 术前心律失常预测的重要性3.2 大模型在术前预测中的应用案例3.3 基于预测结果的术前准备方案四、术中监测与实时调整4.1 术中监测心律失常的方法与技术4.2 大模型辅助术中决策的机制4.3 实时调整手术方案的策略与实践五、术后恢复与并发症风险预测5.1 术后心律失常的监测与评估5.2 大模型预测术

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1596

【阿里云大模型高级工程师ACP习题集】2.1 用大模型构建新人答疑机器人

【摘要】这是我精心整理出对应的习题集,里面足足有 30 道题目,从基础概念到深度拓展,全方位覆盖章节重点、难点。不管你是想检验自己的学习成果,还是想针对薄弱环节进行强化训练,它都能完美适配!

davidkorhenn的博客 2606

Java后端面试:框架篇高频面试(Spring、SpringMVC、SpringBoot、MyBatis)

Java后端面试:框架篇高频面试(Spring、SpringMVC、SpringBoot、MyBatis)

m0_52380556的博客 1823

GX WORKS2通过交换机连接PLC的方法

三菱PLC连接方法的分享

weixin_64927621的博客 3618

Java最新面试宝典 SpringMVC面试题)

最新的 Java 面试题,技术栈涉及 Java 基础、集合、多线程、Mysql、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux…等等,会持续更新。

qq_42872034的博客 1562

手把手教你学simulink实例--基于Simulink的船舶动力定位系统建模与仿真

船舶动力定位系统(Dynamic Positioning System, DPS)是一种通过控制推进器来保持船舶在指定位置和航向的技术。它广泛应用于海上钻井平台、海洋调查船、起重船等需要精确位置控制的场景。DPS的核心任务是实时感知环境干扰(如风、浪、流),并通过闭环控制算法调整推进器输出,以抵消外界扰动并维持船舶的位置和姿态。本项目旨在基于MATLAB/Simulink平台,构建船舶动力定位系统的数学模型,并进行仿真分析,验证其性能和稳定性。

MHD0815的博客 1082

Qt界面美化-飞扬青云自绘控件插件的使用-避免采坑

1、先上一个集成到QtCreater中的效果图: 2、飞扬青云自绘控件插件下载地址:https://gitcode.net/mirrors/feiyangqingyun/qucsdk?utm_source=csdn_github_accelerator 3、集成插件到QtCreater中的方法: (1)、查看自己使用的QtCreater的版本信息,我的:Qt 5.15.2 MSVC2019 64位 (2)插件下载下来后工程预览: 我选择msvc版本的SDK,打开找到匹配的SDK:...

小米的修行之路 2791

黑马面试篇1

降级是接口级别的,熔断是服务级别的。

2301_81298401的博客 1445

基于环形槽谐振器与PIN二极管的频率可重构Vivaldi天线设计与CST仿真研究

摘要 本文设计了一种基于FR4基板的频率可重构Vivaldi天线,通过集成环形槽谐振器(CSRR)和PIN二极管开关实现超宽带(UWB,2-8 GHz)与窄带(2.4/3.5/5.2 GHz)模式的电控切换。天线采用指数渐变槽线结构,结合CSRR的滤波特性和PIN二极管的开关功能,利用CST仿真优化参数。结果表明,UWB模式下S11<-10 dB,窄带模式下目标频点谐振显著,其他频段抑制良好,验证了设计的可行性。该方案为多频段无线通信系统提供了紧凑、低成本的可重构天线解决方案。 关键词:频率可重构天线

huanghm88的专栏 217

2024年 Java 面试八股文——SpringMVC篇

SpringMVC 是一个基于 Java 的实现了 MVC 设计模式的请求驱动类型的轻量级 Web框架,通过把 Model,View,Controller 分离,将 web 层进行职责解耦,把复杂的 web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。在我看来,SpringMVC 就是将我们原来开发在 servlet 中的代码拆分了,一部分由SpringMVC 完成,一部分由我们自己完成。

Z99263的博客 2185

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

黑马Java面试笔记之框架篇(Spring、SpringMvc、Springboot)

AOP称为面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。以下详细说明一下AOP的使用场景有三种事务失效的场景异常捕获处理抛出检查异常非public方法Spring中事务失效的场景有以下几种:1.异常捕获处理,自己处理了异常,没有抛出,解决方法是手动抛出2.抛出检查异常,配置rollbackFor属性为Exception。

2201_75550069的博客 1542

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java springmvc面试题_springmvc工作流程面试题(附答案)

对于java中的SSH三大框架,学习java语言的朋友都不陌生。三大框架中的SpringMVC是当今最主流的Web MVC框架,要做一名合格java程序员,学好springmvc是必须的。下面整理了10道springmvc工作流程面试题,可以作为有面试需要朋友们的学习准备资料。1、请简单说一下Spring MVC的工作原理?答:(1)用户向服务器发送请求,请求被 springMVC前端控制器捕获;...

weixin_32258919的博客 3121

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

2024年Java最全Java模拟面试总结,springmvc教程pdf

学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!最后再分享的一些BATJ等大厂20、21年的面试题,把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。Mybatis面试专题MySQL面试专题并发编程面试专题本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录。

pckzzy119的博客 1072

《Java 面试问题 一 Spring 、SpringMVC 、Mybatis》

  自己理解SSM框架可能问到的面试问题      一、需要知道的SSM基础知识      1.什么是Spring?           Spring 是一款轻量级的 IOC (依赖反转) 和 APO (面向切面) 容器框架。(个人理解: 就是一个Bean对象容器,不用我们new 对象了,将对象的创建交给容器系统来管理了)           常见的配置方式有三种 :       ...

weixin_30455365的博客 248
上一篇: JAVA面试篇(四)一 Spring
下一篇: JAVA面试篇(六)一 Mybatis
star_falling
博客等级 码龄11年 287粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值