java前后端Date接收

本文详细介绍Java前后端如何处理日期对象,包括前端传递日期到后端的格式转换,后端返回日期给前端的时间戳处理,以及使用@DateTimeFormat和@JsonFormat注解进行日期格式化的方法。同时,文章还讲解了在MyBatis中如何进行时间比较。

java前后端Date接收


1.前端传Date对象,将其转为“yyyy-MM-dd HH:mm:ss”的字符串,后台用@DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”)格式化Date属性

2.后台返回给前端Date,传的是时间戳,用@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “GMT+8”)对其格式化,

  • timezone是用于调整时区的属性(东八区),不加的话得到的时间会比实际的少8个小时
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;

3.时间比较:
mybaties :
startTime, endTime是经过@DateTimeFormat格式后的Date对象

 <if test="startTime != null">
       and alarm.createTime &gt;= #{startTime}
</if>
<if test="endTime != null">
       and alarm.createTime &lt;= #{endTime}
</if>
### Java 毗业设计前后端开发示例项目结构 对于 Java 的毕业设计,尤其是涉及前后端分离的开发模式,可以采用 Spring Boot 和 Vue.js 或 React.js 这样的组合来构建应用。以下是基于 Java 技术栈的一个典型项目结构及其组成部分: #### 1. 后端部分 (Spring Boot) 后端主要负责业务逻辑处理、数据存储以及 API 接口提供。 - **模块划分** - `common`:通用工具类和常量定义。 - `dao`/`repository`:数据库访问层,通常使用 JPA 或 MyBatis 实现[^2]。 - `service`:服务层,封装核心业务逻辑。 - `controller`:控制器层,用于接收前端请求并返回 JSON 数据给前端。 - **依赖管理** 使用 Maven 或 Gradle 来管理项目的依赖项。常见的依赖库包括但不限于: ```xml <!-- Spring Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MySQL Connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- Spring Data JPA --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> ``` - **配置文件** 配置文件一般位于 `src/main/resources/application.properties` 中,包含数据库连接信息和其他环境变量设置。 #### 2. 前端部分 (Vue.js / React.js) 前端专注于用户体验界面的设计与交互功能实现。 ##### Vue.js 示例目录结构 ```plaintext ├── public/ │ └── index.html # 主页面入口 ├── src/ │ ├── assets/ # 存放静态资源如图片样式表等 │ ├── components/ # 可重用组件存放位置 │ │ └── HelloWorld.vue │ ├── views/ # 页面级视图组件 │ │ └── HomeView.vue │ ├── router/ # 路由配置 │ │ └── index.js │ ├── store/ # Vuex状态管理仓库(如果需要的话) │ │ └── index.js │ ├── App.vue # 应用根实例 │ └── main.js # 入口 JavaScript 文件加载全局插件初始化路由等操作 └── package.json # Node.js包描述器记录项目所需的所有npm/yarn包版本号以及其他元数据信息 ``` #### 3. RESTful API 设计 RESTful 是一种软件架构风格,它规定了一组约束条件和原则。通过遵循这些约束条件和原则,开发者可以获得更一致性的Web应用程序接口(API)[^3]。 例如,在用户登录验证过程中可能涉及到如下几个API路径: | HTTP Method | URL Pattern | Description | |-------------|---------------------|--------------------------------| | POST | `/api/auth/login` | 用户提交用户名密码尝试登陆 | | GET | `/api/users/{id}` | 获取指定ID用户的个人信息 | #### 4. 安全性和认证机制 为了保护敏感的数据输过程中的安全性,应该引入JWT(JSON Web Token)作为身份令牌来进行授权控制[^4]. ```java // JWTUtil.java 示例代码片段 public class JwtUtil { private static final String SECRET_KEY = "your_secret_key"; public static String generateToken(String username){ return Jwts.builder() .setSubject(username) .setIssuedAt(new Date()) .setExpiration(new Date(System.currentTimeMillis()+1000*60*60)) // 设置过期时间为一小时 .signWith(SignatureAlgorithm.HS512,SECRET_KEY.getBytes()).compact(); } } ``` --- ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值