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

织梦怎么查看网站点击做网站 人员

织梦怎么查看网站点击,做网站 人员,做电商的几个网站,中国新闻社招聘公示详细的项目结构 src ├── main │ ├── java │ │ ├── com.example │ │ │ ├── config │ │ │ │ └── SpringMvcInitializer.java // 配置 DispatcherServlet │ │ │ │ └── SpringConfig.java // Sprin…详细的项目结构 src ├── main │ ├── java │ │ ├── com.example │ │ │ ├── config │ │ │ │ └── SpringMvcInitializer.java // 配置 DispatcherServlet │ │ │ │ └── SpringConfig.java // Spring MVC 配置 │ │ │ ├── controller │ │ │ │ └── UserController.java // 控制器返回 JSON │ │ │ ├── service │ │ │ │ └── UserService.java // 服务层处理业务逻辑 │ │ │ └── model │ │ │ │ └── User.java // 数据模型 │ └── webapp │ └── WEB-INF │ └── web.xml可选可省略注意我们不再需要 views 文件夹和 userInfo.jsp因为不再渲染 HTML 页面。 详细代码实现每个步骤对应之前的流程 1. HTTP 请求1. http请求 描述用户通过浏览器、Postman 或其他客户端发送 GET /user/info?id1 到服务器请求用户信息。细节请求可以是 HTTP GET 方法URL 包含查询参数 id期望返回 JSON 格式的数据。测试方式 使用 Postman设置请求方法为 GETURL 为 http://localhost:8080/user/info?id1Headers 中可添加 Accept: application/json。浏览器直接访问需要确保服务器支持 JSON 响应。 通俗解释就像你在餐厅点了一份外卖期望收到菜的配方JSON 数据而不是直接上菜HTML 页面。 2. DispatcherServlet 接收请求2. 寻找控制器 描述DispatcherServlet 作为 Spring MVC 的核心控制器接收 HTTP 请求并分发到合适的处理器。配置细节我们使用 AbstractAnnotationConfigDispatcherServletInitializer 替代传统 web.xml确保 DispatcherServlet 加载 SpringConfig 配置。代码SpringMvcInitializer.javapackage com.example.config;import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;public class SpringMvcInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {Overrideprotected Class?[] getRootConfigClasses() {// 根应用上下文配置这里可以用于其他非 MVC 的配置如数据源return null;}Overrideprotected Class?[] getServletConfigClasses() {// 指定 Spring MVC 配置类return new Class?[] { SpringConfig.class };}Overrideprotected String[] getServletMappings() {// 所有请求/都由 DispatcherServlet 处理return new String[] { / };} }注意事项 getServletMappings 中的 / 表示拦截所有请求包括静态资源如果需要处理静态资源如 CSS、JS需要额外配置见后文。确保项目部署到支持 Servlet 3.0 的容器如 Tomcat 8。 通俗解释服务员DispatcherServlet在餐厅入口接单准备分发到后厨Controller。 3. HandlerMapping 匹配处理器3. 调用控制器 描述DispatcherServlet 调用 HandlerMapping通常是 RequestMappingHandlerMapping根据 URL /user/info 找到 UserController 的 getUserInfo 方法。配置细节EnableWebMvc 自动启用 RequestMappingHandlerMapping无需额外配置。代码UserController.javapackage com.example.controller;import com.example.model.User; import com.example.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;RestController // 标记为 REST 控制器自动返回 JSON无需视图 public class UserController {Autowiredprivate UserService userService;GetMapping(/user/info) // 处理 GET 请求路径为 /user/infopublic User getUserInfo(RequestParam(id) int id) {// 调用服务层查询用户信息User user userService.getUserById(id);return user; // 直接返回 User 对象Spring 自动转换为 JSON} }注意事项 RestController 结合 GetMapping 简洁地定义了 REST APIRequestParam 绑定 URL 参数 id。Spring 依赖 Jackson 库将 User 对象序列化为 JSON确保项目有 jackson-databind 依赖。 通俗解释服务员DispatcherServlet问前台HandlerMapping“这单谁做”前台说“交给这个厨师UserController处理返回菜的配方JSON。” 4. Controller 处理请求并返回数据4. 调用业务逻辑进行处理 描述UserController 调用 UserService 执行业务逻辑模拟查询用户信息返回 User 对象。代码UserService.java 和 User.java// User.java模型类优化为支持 JSON 序列化 package com.example.model;import com.fasterxml.jackson.annotation.JsonProperty; // 可选用于自定义 JSON 字段名public class User {private String name;private int age;// 无参构造Jackson 要求用于反序列化public User() {}public User(String name, int age) {this.name name;this.age age;}JsonProperty(name) // 可选指定 JSON 字段名public String getName() { return name; }public void setName(String name) { this.name name; }JsonProperty(age)public int getAge() { return age; }public void setAge(int age) { this.age age; }Overridepublic String toString() {return User{name name , age age };} }// UserService.java服务层模拟业务逻辑 package com.example.service;import com.example.model.User; import org.springframework.stereotype.Service;Service public class UserService {public User getUserById(int id) {// 模拟从数据库查询实际项目中可能用 JPA、MyBatis 或 JDBCreturn new User(User id, 20 id);} }注意事项 User 类添加了无参构造和 getter/setter 方法以支持 Jackson 的 JSON 序列化/反序列化。JsonProperty 是可选的用于自定义 JSON 字段名如将 name 映射为 userName。Service 注解使 UserService 成为 Spring Bean可通过 Autowired 自动注入。 通俗解释厨师Controller叫助手UserService查菜谱数据库炒好一道菜User 数据打包成 JSON 配方返回。 5. DispatcherServlet 接收数据5. 视图处理结果 描述DispatcherServlet 接收 User 对象并通过 Spring 的 HttpMessageConverter默认使用 MappingJackson2HttpMessageConverter将其转换为 JSON 格式。细节Spring 自动检测返回的 User 对象类型使用 Jackson 库序列化为 JSON并设置 HTTP 响应头 Content-Type: application/json。代码无额外代码DispatcherServlet 内部处理。注意事项 确保 pom.xml 中有 jackson-databind 依赖否则 Spring 无法序列化 JSON。如果 JSON 格式需要自定义如日期格式、忽略某些字段可配置 ObjectMapper。 通俗解释服务员DispatcherServlet拿到菜的配方User 对象用打印机HttpMessageConverter打印成 JSON 格式。 6. 移除 ViewResolver6. 视图模板解析 描述因为我们不再返回 HTML 页面移除 ViewResolver 和 JSP 相关配置。代码SpringConfig.javapackage com.example.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;Configuration EnableWebMvc ComponentScan(basePackages com.example) public class SpringConfig implements WebMvcConfigurer {// 移除 ViewResolver Bean因为我们直接返回 JSON// 如果需要处理静态资源可以在这里添加配置Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(/resources/**).addResourceLocations(classpath:/static/);} }注意事项 EnableWebMvc 启用了 Spring MVC 的所有功能但默认禁用了 Spring Boot 的自动静态资源处理。如果需要静态资源如 CSS、JS需手动配置 addResourceHandlers。移除 ViewResolver 后Spring 专注于 REST API不再处理视图模板。 通俗解释服务员发现不需要盘子JSP直接把菜的配方JSON打包送出。 7. 返回 JSON 数据7. 数据直接返回 描述User 对象被序列化为 JSON返回给客户端。最终响应为{name: User1,age: 21 }细节 Spring 使用 MappingJackson2HttpMessageConverter 进行序列化。返回的 HTTP 状态码默认是 200 OK。如果需要自定义 JSON 格式如日期、字段过滤可以配置 ObjectMapperBean public ObjectMapper objectMapper() {ObjectMapper mapper new ObjectMapper();mapper.setDateFormat(new SimpleDateFormat(yyyy-MM-dd));return mapper; }代码已在 UserController.java 中实现。通俗解释服务员把菜的配方JSON直接交给送餐员客户端不需要装盘HTML。 8. 返回 HTTP 响应8. http响应 描述客户端浏览器、Postman收到 JSON 数据可以解析或显示。细节 响应头包括 Content-Type: application/json; charsetUTF-8。如果客户端是 PostmanJSON 数据直接显示如果是浏览器可能需要插件如 JSONView格式化显示。 测试验证 打开 Postman设置请求方法为 GETURL 为 http://localhost:8080/user/info?id1。点击发送查看响应{name: User1,age: 21 }确保服务正常运行依赖配置正确。 通俗解释送餐员客户端收到菜的配方JSON可以直接查看或用在其他地方。 完整依赖配置Maven 示例 确保 pom.xml 包含以下依赖 dependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.3.23/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.14.0/version/dependencydependencygroupIdjakarta.servlet/groupIdartifactIdjakarta.servlet-api/artifactIdversion6.0.0/versionscopeprovided/scope/dependency /dependencies说明jackson-databind 是 JSON 序列化/反序列化的核心库确保版本兼容 Spring。 可能扩展和注意事项 参数验证 可以使用 Valid 和 NotNull 验证 id 参数GetMapping(/user/info) public User getUserInfo(RequestParam NotNull int id) {return userService.getUserById(id); }需要添加 hibernate-validator 依赖dependencygroupIdorg.hibernate.validator/groupIdartifactIdhibernate-validator/artifactIdversion6.2.5.Final/version /dependency异常处理 可以使用 ExceptionHandler 或 ControllerAdvice 处理异常ControllerAdvice public class GlobalExceptionHandler {ExceptionHandler(Exception.class)ResponseBodypublic MapString, Object handleException(Exception e) {MapString, Object result new HashMap();result.put(error, Internal Server Error);result.put(message, e.getMessage());return result;} }跨域支持CORS 如果前端在不同域名需配置 CORSConfiguration public class SpringConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping(/**).allowedOrigins(http://localhost:3000) // 允许的源.allowedMethods(GET, POST, PUT, DELETE) // 允许的方法.allowedHeaders(*); // 允许的头} }性能优化 可以使用 Cacheable 缓存查询结果Service public class UserService {Cacheable(users)public User getUserById(int id) {return new User(User id, 20 id);} }需要添加 spring-boot-starter-cache 或 spring-context-support 依赖。 静态资源处理 如果需要静态资源如 CSS、JS在 SpringConfig 中配置Override public void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(/resources/**).addResourceLocations(classpath:/static/).setCachePeriod(3600); // 缓存 1 小时 }对应图中的流程变化更详细 原图中的 ViewResolver 和 View(HTML/FTL) 被移除因为我们直接返回 JSON。新流程简化为 HTTP 请求 → DispatcherServletDispatcherServlet 找 HandlerMapping → UserControllerUserController 调用 UserService → 返回 User 对象DispatcherServlet 转换 User 为 JSON → 返回 HTTP 响应 运行和测试 运行环境 使用 JDK 11 或更高版本。部署到 Tomcat 8 或运行 Spring Boot 项目。确保 Maven 依赖下载完整。 测试 使用 Postman 测试 GET http://localhost:8080/user/info?id1。预期响应{name: User1,age: 21 }调试 检查日志确保 DispatcherServlet、HandlerMapping 和 HttpMessageConverter 正常工作。如果 JSON 格式错误检查 User 类是否有无参构造、getter/setter。 总结 通过上述详细修改我们将 Spring MVC 从返回 JSP 页面改为返回 JSON 数据适合 RESTful API 开发。我补充了技术细节如 Jackson 配置、参数验证、异常处理等和代码注释确保每个步骤清晰易懂。
http://www.hkea.cn/news/14356590/

相关文章:

  • 网站都是用什么编写的最火的传奇手游网站
  • 手机网站和微网站商标被注册了做网站
  • 卓老师建站网站后台如何直接登陆铁岭网站建设公司
  • 上海seo网站推广公司大数据营销软件
  • 织梦cms怎么做网站地图网络营销站点推广的方法
  • 上海优化网站 优帮云wordpress学院
  • 如何做一张图片的网站wordpress 调用了幻灯片但是显示为空白
  • 建设营销型网站服务外贸大楼
  • 网站顶部广告图片业务网站制作
  • 东莞建站模板公司物流网站建设策划书
  • html5手机网站制作教程线上推广的公司
  • 一家专门做原型的网站邯郸网站建设服务报价
  • 上海网站建设系wordpress魔板
  • 长沙市住房和建设局官方网站家居网站建设的需求分析
  • 最牛的科技网站建设帝国cms 做的博客网站
  • 融资网站建设重点抖音关键词优化排名
  • 网站设计素材下载网站建设都需要什么资料
  • 常州新北建设局网站做落地页素材在什么网站上找
  • 广州快速建站公司推荐东莞网站开发哪家强
  • 无锡网站的优化哪家好16素材网
  • 临沭县建设局官方网站磐安做网站
  • 网站备案更改吗荆楚网微信公众平台下载
  • 昆明网站建设哪家公司好企业网站优化怎么做
  • 长沙营销型网站建设公司网站设置主网
  • 药品网站如何建设工信部备案查询网站
  • 柳州网站建设22如何 在网站上面做推广
  • .design 域名的网站建设网站要做的工作总结
  • 网站增值服务网站设计说明书主要有什么
  • 网站开发的开题报告引言安装完wordpress怎么打开
  • 泉州模板网站建站wordpress 文章列表目录颜色