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

昆明房产网站建设哪个浏览器看黄页最快夸克浏览器

昆明房产网站建设,哪个浏览器看黄页最快夸克浏览器,公司做网站 微信平台,.net做网站教程一、核心架构分层 Spring MVC 以 DispatcherServlet 为中心,协调各组件处理请求: 组件作用DispatcherServlet前端控制器,统一接收请求并分发给处理器(Controller)HandlerMapping映射请求 URL 到具体的处理器&#xf…

一、核心架构分层

Spring MVC 以 DispatcherServlet 为中心,协调各组件处理请求:

组件作用
DispatcherServlet前端控制器,统一接收请求并分发给处理器(Controller)
HandlerMapping映射请求 URL 到具体的处理器(Controller 方法)
HandlerAdapter执行处理器方法,处理参数绑定与返回值
ViewResolver解析视图名称到具体视图技术(JSP、Thymeleaf 等)
HandlerExceptionResolver统一处理 Controller 抛出的异常

二、请求处理全流程

  1. 请求到达:HTTP 请求到达 DispatcherServlet,由其统筹处理。
  2. 查询处理器:调用 HandlerMapping 找到匹配的 Controller 方法。
  3. 执行处理HandlerAdapter 触发方法执行,处理参数绑定与逻辑。
  4. 返回结果
    • 返回逻辑视图名 → ViewResolver 解析为具体视图(如 JSP)。
    • 直接返回数据(如 JSON)→ 通过 HttpMessageConverter 序列化响应。

      三、配置与注解驱动开发

      1. 基于 Java 配置的 MVC 初始化
       

      <JAVA>

      @Configuration
      @EnableWebMvc  // 启用Spring MVC注解驱动
      @ComponentScan("com.example.web")  // 扫描Controller包
      public class WebConfig implements WebMvcConfigurer {// 配置视图解析器(Thymeleaf示例)@Beanpublic ViewResolver viewResolver() {ThymeleafViewResolver resolver = new ThymeleafViewResolver();resolver.setTemplateEngine(templateEngine());resolver.setCharacterEncoding("UTF-8");return resolver;}@Beanpublic SpringTemplateEngine templateEngine() {SpringTemplateEngine engine = new SpringTemplateEngine();engine.setTemplateResolver(templateResolver());return engine;}private ITemplateResolver templateResolver() {SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();resolver.setPrefix("/WEB-INF/views/");resolver.setSuffix(".html");resolver.setTemplateMode("HTML5");return resolver;}// 静态资源处理@Overridepublic void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {configurer.enable();}
      }
      
      2. Controller 开发示例
       

      <JAVA>

      @Controller
      @RequestMapping("/orders")
      public class OrderController {@Autowiredprivate OrderService orderService;@GetMapping("/{id}")public String getOrderDetails(@PathVariable Long id, Model model) {Order order = orderService.findOrderById(id);model.addAttribute("order", order);return "order/detail";  // 视图名对应Thymeleaf模板路径}@PostMapping@ResponseStatus(HttpStatus.CREATED)public ResponseEntity<Order> createOrder(@RequestBody @Valid Order order, BindingResult result) {if (result.hasErrors()) {throw new ValidationException("参数校验失败");}Order savedOrder = orderService.saveOrder(order);return ResponseEntity.created(URI.create("/orders/" + savedOrder.getId())).body(savedOrder);}
      }
      

      四、数据绑定与验证

      1. 参数绑定
    • 路径参数@PathVariable
       

      <JAVA>

      @GetMapping("/users/{userId}/posts/{postId}")
      public String getPost(@PathVariable Long userId, @PathVariable Long postId) { ... }
      
    • 请求参数@RequestParam
       

      <JAVA>

      @GetMapping("/search")
      public List<Product> searchProducts(@RequestParam String keyword, @RequestParam(defaultValue = "0") int page) { ... }
      
    • 表单对象@ModelAttribute
       

      <JAVA>

      @PostMapping("/register")
      public String registerUser(@ModelAttribute("user") User user, BindingResult result) {if (result.hasErrors()) {return "register-form";}// 保存用户return "redirect:/login";
      }
      
    • 2. 数据验证

      集成 JSR-303/JSR-380 规范(如Hibernate Validator):

       

      <JAVA>

      public class User {@NotBlank(message = "用户名不能为空")@Size(min = 4, max = 20, message = "用户名长度需4-20字符")private String username;@Email(message = "邮箱格式错误")private String email;
      }@PostMapping("/users")
      public String createUser(@Validated User user, BindingResult result) {if (result.hasErrors()) {return "user/create-form";}userService.save(user);return "redirect:/users/list";
      }
      

      五、视图技术与 RESTful 支持

      1. 视图解析(JSP/Thymeleaf)
    • JSP 配置
       

      <XML>

      <!-- 在Spring XML配置中定义 -->
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/"/><property name="suffix" value=".jsp"/>
      </bean>
      
    • JSON 输出
       

      <JAVA>

      @RestController  // 等效于@Controller + @ResponseBody
      @RequestMapping("/api/users")
      public class UserApiController {@GetMapping(produces = MediaType.APPLICATION_JSON_VALUE)public List<User> listUsers() {return userService.findAll();}
      }
      
    • 2. RESTful 接口设计
      HTTP方法路径控制器方法功能
      GET/api/userslistUsers()查询用户列表
      POST/api/userscreateUser(@RequestBody User)新增用户
      PUT/api/users/{id}updateUser(@PathVariable Long id, ...)更新用户信息

      六、高级特性与最佳实践

      1. 全局异常处理

      使用 @ControllerAdvice 统一处理异常:

       

      <JAVA>

      @ControllerAdvice
      public class GlobalExceptionHandler {@ExceptionHandler(ResourceNotFoundException.class)@ResponseStatus(HttpStatus.NOT_FOUND)public ResponseEntity<String> handleNotFound(ResourceNotFoundException ex) {return ResponseEntity.status(404).body(ex.getMessage());}@ExceptionHandler(MethodArgumentNotValidException.class)public ResponseEntity<Map<String, String>> handleValidationExceptions(MethodArgumentNotValidException ex) {Map<String, String> errors = new HashMap<>();ex.getBindingResult().getAllErrors().forEach(error -> {String fieldName = ((FieldError) error).getField();String errorMsg = error.getDefaultMessage();errors.put(fieldName, errorMsg);});return ResponseEntity.badRequest().body(errors);}
      }
      
      2. 拦截器(Interceptor)

      实现预处理与后处理逻辑:

       

      <JAVA>

      public class LoggingInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {System.out.println("请求开始: " + request.getRequestURI());return true;  // 继续处理链}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {System.out.println("请求处理完成,视图渲染前");}
      }// 注册拦截器
      @Configuration
      public class WebConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LoggingInterceptor()).addPathPatterns("/**");}
      }
      

      七、性能优化技巧

    • 静态资源缓存:配置 ResourceHandler 设置 Cache-Control 头。
    • 异步处理:使用 @Async 或返回 Callable/DeferredResult 提升吞吐量。
       

      <JAVA>

      @GetMapping("/async-data")
      public DeferredResult<String> asyncRequest() {DeferredResult<String> result = new DeferredResult<>();CompletableFuture.supplyAsync(() -> {// 模拟耗时操作return "处理完成";}).whenCompleteAsync((res, ex) -> result.setResult(res));return result;
      }
      
    • 启用GZIP压缩:在web服务器(如Tomcat)中配置压缩策略。

    • 八、与 Spring Boot 集成

      Spring Boot 自动配置简化了 Spring MVC 的配置:

       

      <JAVA>

      @SpringBootApplication
      public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
      }// 自动配置项包括:
      // - 默认静态资源路径(/static, /public)
      // - 嵌入式Tomcat/Jetty
      // - 自动注册 Converter/Formatter
      // - Jackson JSON 支持
      

      总结

    • 核心价值:Spring MVC 通过 分层设计 + 松耦合组件 提供灵活的 Web 开发体验。
    • 开发准则:遵循 RESTful 规范,合理运用注解简化代码。
    • 进阶方向:结合 Spring Security 实现安全控制、利用 WebFlux 实现响应式编程。
http://www.dtcms.com/wzjs/179755.html

相关文章:

  • 安平网站建设网站优化排名推荐
  • 网站媒体推广方案seo优化网站技术排名百度推广
  • 云课堂哪个网站做的好杭州优化公司多少钱
  • 怎样用html制作网站谈谈自己对市场营销的理解
  • 网站怎么做搜狗排名新乡seo公司
  • 微信投票网站制作百度seo公司兴田德润
  • 教育视频培训网站建设小红书seo优化
  • 专门做品牌折扣的网站有哪些百度热搜排名
  • 第二代营销网站郑州厉害的seo优化顾问
  • 制作网站river没干过网络推广能干吗
  • 网站禁止访问目录小学生班级优化大师
  • 四川省建设三类职称网站百度代理推广
  • 怎样做企业学校网站千万别在百度上搜别人的名字
  • 宁德市住房和城乡建设局网站打不开太原seo
  • 专门做试题的网站网络营销方案策划论文
  • wordpress 口碑营销主题白杨seo课程
  • 深圳哪家做网站好seo经验是什么
  • 政府门户网站建设 配置清单运营商大数据精准营销获客
  • 自己做网站赚钱案例友情链接怎么设置
  • 武汉网站制作的搜索引擎主要包括三个部分
  • 旅游网站建设相关报价表格线上推广有哪些平台效果好
  • 海口企业网站开发百度网络营销app下载
  • 深圳网站建设便捷泰州seo外包
  • 四川省建设安全质量监理协会网站哪里可以代写软文
  • 网上兼职做网站编辑网店运营培训
  • 高端网站制作费用专业seo网络推广
  • 沈阳黑酷做网站建设优化公司怎么样搜索引擎提交入口网址
  • 电脑网站打不开是什么原因造成的长沙seo研究中心
  • wordpress post_dateseo自然排名优化
  • 企业电子商务网站开发实验报告郑州网站推广培训