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

河南企业网站排名优化各类郑州网站建设

河南企业网站排名优化,各类郑州网站建设,产品推广软文200字,wordpress的简单应用1.1 由于返回数据都是以下这种格式#xff0c;那么久再编写一个result实体类 报错了#xff0c;原因是没有构造方法 可以使用lombok的注解自动生成#xff0c;添加无参的构造器和全参的构造器 package com.geji.pojo;import lombok.AllArgsConstructor; import lombok.NoArg…1.1 由于返回数据都是以下这种格式那么久再编写一个result实体类 报错了原因是没有构造方法 可以使用lombok的注解自动生成添加无参的构造器和全参的构造器 package com.geji.pojo;import lombok.AllArgsConstructor; import lombok.NoArgsConstructor;//统一响应结果 NoArgsConstructor AllArgsConstructor Data public class ResultT {private Integer code;//业务状态码 0-成功 1-失败private String message;//提示信息private T data;//响应数据//快速返回操作成功响应结果(带响应数据)public static E ResultE success(E data) {return new Result(0, 操作成功, data);}//快速返回操作成功响应结果public static Result success() {return new Result(0, 操作成功, null);}public static Result error(String message) {return new Result(1, message, null);} }接口开发的流程 Controller接收路由--Service执行和数据库的逻辑操作--Mapper映射到真实的数据库操作 1.1 注册 1.1.1 创建相应的类和接口impl实体类实现impl接口 1.1.2 编写UserControl package com.geji.controller;import com.geji.pojo.Result; import com.geji.pojo.User; import com.geji.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController RequestMapping(/user) public class UserController {Autowiredprivate UserService userService;PostMapping(/register)public Result register(String username, String password) {//查询用户User u userService.findByUserName(username);if (u null) {//没有占用//注册userService.register(username, password);return Result.success();} else {//占用return Result.error(用户名已被占用);}} }1.1.3 编写UserService package com.geji.service;import com.geji.pojo.User;public interface UserService {//根据用户名查找用户User findByUserName(String username);//根据用户名和密码注册void register(String username, String password); }1.1.4 编写UserServiceImpl package com.geji.service.impl;import com.geji.mapper.UserMapper; import com.geji.pojo.User; import com.geji.service.UserService; import com.geji.utils.Md5Util; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;Service public class UserServiceImpl implements UserService {Autowiredprivate UserMapper userMapper;Overridepublic User findByUserName(String username) {User u userMapper.findByUserName(username);return u;}Overridepublic void register(String username, String password) {//加密String md5String Md5Util.getMD5String(password);//添加userMapper.add(username,md5String);} }1.1.4 MD5加密算法 package com.geji.utils;import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;public class Md5Util {/*** 默认的密码字符串组合用来将字节转换成 16 进制表示的字符,apache校验下载的文件的正确性用的就是默认的这个组合*/protected static char hexDigits[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f};protected static MessageDigest messagedigest null;static {try {messagedigest MessageDigest.getInstance(MD5);} catch (NoSuchAlgorithmException nsaex) {System.err.println(Md5Util.class.getName() 初始化失败MessageDigest不支持MD5Util。);nsaex.printStackTrace();}}/*** 生成字符串的md5校验值** param s* return*/public static String getMD5String(String s) {return getMD5String(s.getBytes());}/*** 判断字符串的md5校验码是否与一个已知的md5码相匹配** param password 要校验的字符串* param md5PwdStr 已知的md5校验码* return*/public static boolean checkPassword(String password, String md5PwdStr) {String s getMD5String(password);return s.equals(md5PwdStr);}public static String getMD5String(byte[] bytes) {messagedigest.update(bytes);return bufferToHex(messagedigest.digest());}private static String bufferToHex(byte bytes[]) {return bufferToHex(bytes, 0, bytes.length);}private static String bufferToHex(byte bytes[], int m, int n) {StringBuffer stringbuffer new StringBuffer(2 * n);int k m n;for (int l m; l k; l) {appendHexPair(bytes[l], stringbuffer);}return stringbuffer.toString();}private static void appendHexPair(byte bt, StringBuffer stringbuffer) {char c0 hexDigits[(bt 0xf0) 4];// 取字节中高 4 位的数字转换, // 为逻辑右移将符号位一起右移,此处未发现两种符号有何不同char c1 hexDigits[bt 0xf];// 取字节中低 4 位的数字转换stringbuffer.append(c0);stringbuffer.append(c1);}}1.1.5 编写UserMapper package com.geji.mapper;import com.geji.pojo.User; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select;Mapper public interface UserMapper {//根据用户名查询用户Select(select * from user where username#{username})User findByUserName(String username);//添加Insert(insert into user(username,password,create_time,update_time) values(#{username},#{password},now(),now()))void add(String username, String password); }1.1.6 postman接口测试 1.1.6.1 下载安装postman Download Postman | Get Started for Free 1.1.6.2 创建workspaces 1.1.6.3 创建collections测试用例 1.1.6.3.1 注册接口postbodyurlencoded 成功 1.1.7 以上Controller类中没有对username和password做参数校验Spring中提供了注解 1.1.7.1 引入spring validation起步依赖 1.1.7.2 在参数前加上Pattern注解 1.1.7.3 在Controller类上添加Validated注解 package com.geji.controller;import com.geji.pojo.Result; import com.geji.pojo.User; import com.geji.service.UserService; import jakarta.validation.constraints.Pattern; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController RequestMapping(/user) Validated public class UserController {Autowiredprivate UserService userService;PostMapping(/register)public Result register(Pattern(regexp ^\\S{5,16}$) String username, Pattern(regexp ^\\S{5,16}$) String password) {//查询用户User u userService.findByUserName(username);if (u null) {//没有占用//注册userService.register(username, password);return Result.success();} else {//占用return Result.error(用户名已被占用);}} }1.1.7.4 编写全局异常处理器添加exception包添加注释RestControllerAdvice package com.geji.exception;import com.geji.pojo.Result; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice;RestControllerAdvice public class GlobalExceptionHandler {ExceptionHandler(Exception.class)public Result handleException(Exception e){e.printStackTrace();return Result.error(StringUtils.hasLength(e.getMessage())? e.getMessage() : 操作失败);} }
http://www.zqtcl.cn/news/397417/

相关文章:

  • 建设网站怎么收费标准网站和自媒体都可以做
  • 网站自己怎么做无锡常规网络营销是什么
  • 活泼风格的网站crm免费客户管理系统
  • 网站系统发生错误百度seo灰色词排名代发
  • 免费做名片儿的网站wordpress grace6
  • 有关网站开发的创意四川工程造价信息网官网
  • 网站目录结构北京注册公司地址可以是住宅吗
  • 龙信建设集团网站傻瓜式建站软件下载
  • 在360做网站和百度做网站的区别什么是网站地址
  • 营销型的物流网站模板下载长江设计公司
  • 网站程序制作购买网站域名
  • 网站建设中html下载如何用社交网站开发客户
  • 开设购物网站的方案政务公开和网站建设情况
  • 一台云服务器做多个网站营销型网站的建设重点是什么
  • 泉港网站建设推广服务公司电子商务好就业吗
  • 自己做网站开发如何找客户wordpress 显示 子分类
  • 腾讯邮箱网页版登录宿迁seo公司
  • 网站建设找盖亚科技WordPress 百度 主动
  • 中国最受欢迎的网站杭州做电商网站
  • 百度招聘 网站开发全网营销实战培训
  • 备案网站内容说明广州哪个区封了
  • 大足建网站的软件开发者模式怎么打开
  • 中国有什么网站做跨境零售农商1号的网站建设费
  • 用宝塔给远程网站做备份购买一个网站需要多少钱
  • 百度蜘蛛不爬取网站做汽车新闻哪个网站好
  • 三维建设项目管理网站免费下载网站模板
  • 淘客联盟做任务网站页面设计所遵循的原则有哪些
  • 怎么建设收费网站行业网站建站
  • 织梦园模板网站自适应网站建设服务哪家好
  • 优秀专题网站恩施北京网站建设