当前位置: 首页 > wzjs >正文

上海正规做网站公司电话阳西网站seo

上海正规做网站公司电话,阳西网站seo,天津网站优化公司,模板的网站都有哪些内容基础概念 什么是Spring MVC? Spring MVC 是 Spring Framework 提供的一个基于 Servlet 的 Web 框架,属于 MVC(Model-View-Controller)架构的一种实现。它通过 DispatcherServlet 作为前端控制器,对请求进行分发和调度…

基础概念

什么是Spring MVC?

Spring MVC 是 Spring Framework 提供的一个基于 Servlet 的 Web 框架,属于 MVC(Model-View-Controller)架构的一种实现。它通过 DispatcherServlet 作为前端控制器,对请求进行分发和调度,实现请求控制逻辑与业务逻辑、视图渲染的解耦。


Spring MVC 的核心组件有哪些?

Spring MVC 的核心组件包括:

  1. DispatcherServlet:前端控制器,接收所有请求,统一调度处理流程。

  2. HandlerMapping:根据 URL 找到对应的 Controller 方法。

  3. Controller:业务控制器,处理请求逻辑并返回模型数据或视图名。

  4. ModelAndView:封装模型数据和视图信息。

  5. ViewResolver:视图解析器,负责将逻辑视图名解析为实际视图(如 JSP 文件)。

  6. View:最终负责渲染页面给客户端。

  7. HandlerAdapter:用于执行不同类型的处理器方法。


Spring MVC 的请求流程是怎样的?

简要流程如下:

  1. 浏览器发送请求被 DispatcherServlet 接收。

  2. DispatcherServlet 调用 HandlerMapping 找到对应的处理器(Controller)。

  3. 调用 HandlerAdapter 执行处理器方法。

  4. 控制器返回 ModelAndView。

  5. DispatcherServlet 调用 ViewResolver 解析视图。

  6. 渲染视图并响应给客户端。


请求处理

@RequestMapping 和 @GetMapping 有什么区别?

  • @RequestMapping 是一个通用的映射注解,可以指定请求方法、路径、参数、头信息等。

  • @GetMapping@RequestMapping(method = RequestMethod.GET) 的语法糖,专用于处理 GET 请求。

Spring 4.3 后引入了 @GetMapping@PostMapping 等注解,更加语义化和简洁。


如何接收请求参数?

Spring MVC 提供多种方式:

  1. @RequestParam:接收 URL 参数或表单参数。

  2. @PathVariable:接收路径中的变量。

  3. @RequestBody:接收 JSON 请求体并反序列化为 Java 对象。

  4. @ModelAttribute:接收表单提交的参数并封装为 Java Bean。

  5. HttpServletRequest / HttpSession:传统方式。


如何返回 JSON 数据?

使用 @ResponseBody 注解或 @RestController(组合注解),并确保引入了 Jackson 等 JSON 处理器:

@RestController
public class DemoController {@GetMapping("/hello")public Map<String, Object> hello() {return Map.of("msg", "Hello World");}
}

异常处理

Spring MVC 如何进行全局异常处理?

方式一:使用 @ControllerAdvice + @ExceptionHandler

@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(Exception.class)public ResponseEntity<String> handle(Exception ex) {return ResponseEntity.status(500).body("系统异常:" + ex.getMessage());}
}

方式二:实现 HandlerExceptionResolver 接口,自定义异常处理逻辑。


数据绑定与表单处理

@ModelAttribute 的作用是什么?

  • 用于将请求参数绑定到对象上。

  • 也可用于控制器方法参数预处理,比如填充公共数据。

@ModelAttribute
public void addAttributes(Model model) {model.addAttribute("globalAttr", "全局属性");
}

如何校验表单参数合法性?

可使用 javax.validation 注解与 @Valid@Validated 配合使用:

@PostMapping("/submit")
public String submit(@Valid @RequestBody User user, BindingResult result) {if (result.hasErrors()) {return "参数错误";}return "成功";
}

视图与响应

Spring MVC 支持哪些视图技术?

  • JSP(默认)

  • Thymeleaf

  • FreeMarker

  • Velocity

  • PDF、Excel(通过 View 实现类)

  • JSON(通过 Jackson)


如何自定义视图解析器?

通过配置 InternalResourceViewResolver 或实现 ViewResolver 接口来自定义视图路径规则:

@Bean
public InternalResourceViewResolver resolver() {InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix("/WEB-INF/views/");resolver.setSuffix(".jsp");return resolver;
}

拦截器与过滤器

拦截器与过滤器有什么区别?

对比点拦截器(Interceptor)过滤器(Filter)
所属框架SpringServlet
执行时机Controller 之前/之后请求进入容器之前
使用场景权限、日志、接口签名编码、XSS、日志
实现方式实现 HandlerInterceptor实现 Filter 接口

如何注册 Spring MVC 拦截器?

通过配置类实现 WebMvcConfigurer 接口:

@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");}
}

安全与跨域

Spring MVC 如何实现跨域?

  1. 注解方式:在 Controller 上添加 @CrossOrigin

  2. 全局配置:通过实现 WebMvcConfigurer 配置 CORS 映射

  3. 过滤器方式:实现 CorsFilter


Spring MVC 与 Spring Boot 的关系

Spring Boot 中还需要配置 Spring MVC 吗?

不需要手动配置 DispatcherServlet 等基础设施。Spring Boot 会自动根据依赖注入合适的 MVC 配置,包括:

  • 自动注册视图解析器

  • 自动扫描 @RestController@Controller

  • 集成 Jackson 等 JSON 处理器

开发者只需专注于业务逻辑编写。


Spring MVC 和 Spring WebFlux 有什么区别?

特性Spring MVCSpring WebFlux
编程模型基于 Servlet、阻塞 IO响应式、非阻塞
最小依赖Servlet APIReactor Core
适用场景大多数同步 Web 应用高并发、低延迟服务
Controller风格@Controller@RestController 或函数式
http://www.dtcms.com/wzjs/171709.html

相关文章:

  • 刘涛做的婴儿玩具网站深圳竞价排名网络推广
  • 塘沽企业网站建设西安百度推广电话
  • 杭州做网点卖服装在那个网站查询网入口
  • 环保网站可以做哪些方面视频号的链接在哪
  • html5导航网站源码下载百度优化推广
  • 做计划网站今日全国疫情最新消息
  • 龙岗同乐社区做网站5g站长工具查询
  • 如何做自己网站seo项目是什么
  • wordpress跨站脚本攻击漏洞如何推广一个新的app
  • 郴州网站建设公司有哪些关键词分类哪八种
  • 网站一般用什么语言做百度网页推广费用
  • 免费在线代理网站外贸seo优化公司
  • 公共网站怎地做关键词爱站网关键词挖掘工具
  • 电子商务网站建设最好的公司重庆seo外包平台
  • 做网站如何写需求精准引流获客软件
  • 上海网站排名优化推荐项目网站
  • 宏泰机械网站建设深圳网站建设推广
  • 网页设计网站大全seo优化外包公司
  • wordpress的ping福州seo顾问
  • 什么是网络营销?它的内涵包括哪几个层次?谷歌seo工具
  • 品牌宣传网站有哪些网络搭建教程
  • 卖文具的网站建设成品影视app开发
  • 山东网站营销优化开发企业网站建设的重要性
  • 湖南做网站哪家好网络销售公司怎么运作
  • 淄博网站建设培训百度帐号登录个人中心
  • 想开网店做丝绸生意去哪个网站批发怎样进行seo
  • 保险资料网站有哪些seo是怎么优化的
  • 提供网站建设的功能seo搜索引擎优化薪资水平
  • 深圳商城网站设计推荐信息流优化师简历模板
  • 什么网站权威评价搜索引擎优劣百度竞价广告点击器