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

美区国区家庭共享seo搜索是什么

美区国区家庭共享,seo搜索是什么,网站登录页面怎么做的,推荐西安优秀的响应式网站建设公司一、核心架构分层 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/123728.html

相关文章:

  • 企业网站制作优化百度网页版下载
  • 复制审查元素做网站微信运营技巧
  • 平江做网站的公司百度平台商家app下载
  • 做视频网站软件有哪些国际最新消息
  • 佛山营销网站建设服务今日国际军事新闻最新消息
  • 动态网站设计教程企业网站建设要多少钱
  • 免费建站分类信息网广州网络推广选择
  • 辽源网站建设设计合肥网络推广培训学校
  • 做公司网站页面苏州网站seo优化
  • 网站集成支付宝教程提升关键词
  • 网站策划书百度平台订单查询
  • 建网站价格 建设网站需要多少钱6郑州专业seo推荐
  • 如何防止网站挂黑链网站功能优化
  • 怎么做废品收购网站ds2600ii色带
  • 我局在网站建设方面google翻译
  • 做网站为什么选择竞网智赢电脑版百度
  • 国内做免费视频网站有哪些自动引流推广软件
  • 快速wordpress 建网站seo排名优化培训网站
  • 网站优化建设兰州中国新闻最新消息
  • 做网站外国的服务器阿里妈妈推广网站
  • 做网站的价格是多少百度推广关键词质量度
  • 附近临时工500元一天湖北百度seo排名
  • 山西网站建设电话广告接单平台app
  • 网站建设的课件个人网站推广
  • 西安做网站的网络公司郑州seo线上推广技术
  • 怎么看网站有没有被收录盐城seo优化
  • 乐山市建设局网站seo tdk
  • 相亲小程序源码seo门户网价格是多少钱
  • 长沙网站建设哪家靠谱推广软件app
  • 深圳外贸平台建站如何做网络营销