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

怎样用阿里云服务器做网站数字营销网站

怎样用阿里云服务器做网站,数字营销网站,广告设计图素材,做电商网站用什么软件目录 完善登录功能 注册接口参数校验 完善分页查询 完善日期格式 更新文章分类和添加文章分类的分组校验 ​编辑 自定义校验 文件上传 完善登录功能 对前端传过来的明文密码进行md5加密处理 password DigestUtils.md5DigestAsHex(password.getBytes()); 这样既可 注…

目录

完善登录功能

注册接口参数校验

完善分页查询

完善日期格式

更新文章分类和添加文章分类的分组校验

​编辑

自定义校验 

文件上传 



完善登录功能

对前端传过来的明文密码进行md5加密处理

  password = DigestUtils.md5DigestAsHex(password.getBytes());

 这样既可

注册接口参数校验

Spring Validation

Spring 提供的一个参数校验框架,使用预定义的注解完成参数校验

使用Spring Validation,对注册接口的参数进行合法性校验

引入Spring Validation 起步依赖

在参数前面添加@Pattern注解

在Controller类上添加@Validated注解

完善分页查询

pom.xml:

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId></dependency>

mapper:动态sql

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sky.mapper.EmployeeMapper"><select id="pageQuery" resultType="com.sky.entity.Employee">select * from employee<where><if test="name!=null and name!=''">and name like concat('%',#{name},'%')</if></where>order by create_time desc</select>
</mapper>

 service:

完善日期格式

解决方式:
方式一:在属性上加入注解,对日期进行格式化

@JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss")private LocalDateTime updateTime;

方式二:在 WebMvcConfiguration 中扩展Spring MVC的消息转换器,统一对日期类型进行格式化处理

//扩展springMvc框架的消息转化器protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {log.info("扩展消息转化器..");//创建一个消息转化器对象MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();//需要为消息转化器设置一个对象转化器,对象转化器可以将java对象序列化为json数据converter.setObjectMapper(new JacksonObjectMapper());//将自己的消息转化器加入容器中converters.add(0,converter);}

 

更新文章分类和添加文章分类的分组校验

添加文章中没有传id参数 

更新文章分类中传了id参数 

这样运行起来就会报错

 可以这样👇

package com.yjj.bigevent.Pojo;import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.groups.Default;
import lombok.Data;import java.time.LocalDateTime;@Data
public class Category {@NotNull(groups = Update.class)private Integer id;//主键ID@NotEmptyprivate String categoryName;//分类名称@NotEmptyprivate String categoryAlias;//分类别名private Integer createUser;//创建人ID@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private LocalDateTime createTime;//创建时间@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private LocalDateTime updateTime;//更新时间//如果说某个校验项没有指定分组,默认属于Default分组// 分组之间可以继承,A extends B那么A中拥有B中所有的校验项public interface Add extends Default {}public interface Update extends Default{}
}

就不会报错了

自定义校验 

自定义注解State

package com.yjj.bigevent.Anno;import com.yjj.bigevent.Validation.StateValidation;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.RUNTIME;@Target({ FIELD})//元注解
@Retention(RUNTIME)//元注解
@Documented//元注解
@Constraint(validatedBy = { StateValidation.class})//指定提供校验规则的类
public @interface State {//提供校验失败后的提示信息String message() default "state参数的值只能是已发布或者草稿";//指定分组Class<?>[] groups() default { };//负载获取到State注解的附加信息Class<? extends Payload>[] payload() default { };
}

自定义校验数据的类StateValidation实现ConstraintValidator接口

package com.yjj.bigevent.Validation;import com.yjj.bigevent.Anno.State;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;public class StateValidation implements ConstraintValidator<State,String> {//@param value 将来要校验的数据//@param context context in which the constraint is evaluated//@return 如果返回false,则校验不通过,如果返回true,则校验通过@Overridepublic boolean isValid(String value, ConstraintValidatorContext context) {//提供校验规则if (value==null) {return false;}if (value.equals("已发布")||value.equals("草稿")){return true;}return false;}
}

在需要校验的地方使用自定义注解 

测试

文件上传 

导入阿里云的依赖坐标

pom.xml 

<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.17.4</version>
</dependency>

如果使用的是Java 9及以上的版本,则需要添加JAXB相关依赖。添加JAXB相关依赖示例代码如下:

<dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.1</version>
</dependency>
<dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency><groupId>org.glassfish.jaxb</groupId><artifactId>jaxb-runtime</artifactId><version>2.3.3</version>
</dependency>

工具类: 

package com.yjj.bigEvent.Utils;import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;import java.io.InputStream;public class AliOssUtil {private static final String ENDPOINT = "https://加上访问端口(https://oss-cn-hangzhou.aliyuncs.com)";private static final String ACCESS_KEY_ID = "ACCESS的id";private static final String SECRET_ACCESS_KEY = "ACCESS的secret";private static final String BUCKET_NAME = "自己的bucket名字";//上传文件,返回文件的公网访问地址public static String uploadFile(String objectName, InputStream inputStream){// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(ENDPOINT,ACCESS_KEY_ID,SECRET_ACCESS_KEY);//公文访问地址String url = "";try {// 创建存储空间。ossClient.createBucket(BUCKET_NAME);ossClient.putObject(BUCKET_NAME, objectName, inputStream);url = "https://"+BUCKET_NAME+"."+ENDPOINT.substring(ENDPOINT.lastIndexOf("/")+1)+"/"+objectName;} catch (OSSException oe) {System.out.println("Caught an OSSException, which means your request made it to OSS, "+ "but was rejected with an error response for some reason.");System.out.println("Error Message:" + oe.getErrorMessage());System.out.println("Error Code:" + oe.getErrorCode());System.out.println("Request ID:" + oe.getRequestId());System.out.println("Host ID:" + oe.getHostId());} catch (ClientException ce) {System.out.println("Caught an ClientException, which means the client encountered "+ "a serious internal problem while trying to communicate with OSS, "+ "such as not being able to access the network.");System.out.println("Error Message:" + ce.getMessage());} finally {if (ossClient != null) {ossClient.shutdown();}}return url;}
}


文章转载自:
http://dinncoeruca.bpmz.cn
http://dinncodesponding.bpmz.cn
http://dinncokursk.bpmz.cn
http://dinncoburble.bpmz.cn
http://dinncorevolting.bpmz.cn
http://dinncopriceless.bpmz.cn
http://dinnconewshawk.bpmz.cn
http://dinncometastases.bpmz.cn
http://dinncounaccomplished.bpmz.cn
http://dinncocomplexion.bpmz.cn
http://dinncotine.bpmz.cn
http://dinncoprecipitate.bpmz.cn
http://dinncoeruption.bpmz.cn
http://dinncosaccharic.bpmz.cn
http://dinncochoriamb.bpmz.cn
http://dinncomegilp.bpmz.cn
http://dinncoreporter.bpmz.cn
http://dinncobevel.bpmz.cn
http://dinncoantitheist.bpmz.cn
http://dinncomicroeconomic.bpmz.cn
http://dinncodidact.bpmz.cn
http://dinncothoroughpaced.bpmz.cn
http://dinncoofficial.bpmz.cn
http://dinncodisgorge.bpmz.cn
http://dinncopaternity.bpmz.cn
http://dinncocoastal.bpmz.cn
http://dinncoresiliometer.bpmz.cn
http://dinncobiologically.bpmz.cn
http://dinncoleafworm.bpmz.cn
http://dinncooratorian.bpmz.cn
http://dinncoagitprop.bpmz.cn
http://dinncocoquille.bpmz.cn
http://dinncorescue.bpmz.cn
http://dinncoyardage.bpmz.cn
http://dinncoaioli.bpmz.cn
http://dinncooverwhelmingly.bpmz.cn
http://dinncofriesland.bpmz.cn
http://dinncocysteamine.bpmz.cn
http://dinncoexcision.bpmz.cn
http://dinncodeficit.bpmz.cn
http://dinncofootslog.bpmz.cn
http://dinncoefficaciously.bpmz.cn
http://dinncoballadeer.bpmz.cn
http://dinncotriallelic.bpmz.cn
http://dinncoboiler.bpmz.cn
http://dinnconymphomaniac.bpmz.cn
http://dinncobromize.bpmz.cn
http://dinncoirrelevantly.bpmz.cn
http://dinncomagneton.bpmz.cn
http://dinncolimnobiology.bpmz.cn
http://dinncobowyang.bpmz.cn
http://dinncoabsurdism.bpmz.cn
http://dinncoparamilitarist.bpmz.cn
http://dinncospiritualism.bpmz.cn
http://dinncoskidder.bpmz.cn
http://dinncoseniti.bpmz.cn
http://dinncococarboxylase.bpmz.cn
http://dinncomisogamy.bpmz.cn
http://dinncotyphlology.bpmz.cn
http://dinncoicosidodecahedron.bpmz.cn
http://dinncocapsizal.bpmz.cn
http://dinncoentreprenant.bpmz.cn
http://dinncosparklingly.bpmz.cn
http://dinncobalpa.bpmz.cn
http://dinncodemilitarise.bpmz.cn
http://dinncoparorexia.bpmz.cn
http://dinncoturbocopter.bpmz.cn
http://dinncobelying.bpmz.cn
http://dinncorelet.bpmz.cn
http://dinncodidapper.bpmz.cn
http://dinncomahdi.bpmz.cn
http://dinncotow.bpmz.cn
http://dinncocountershaft.bpmz.cn
http://dinncokame.bpmz.cn
http://dinncoberetta.bpmz.cn
http://dinncocabinetmaker.bpmz.cn
http://dinncovarvel.bpmz.cn
http://dinncoincommunicative.bpmz.cn
http://dinncomixage.bpmz.cn
http://dinncograser.bpmz.cn
http://dinncototalise.bpmz.cn
http://dinncosociopolitical.bpmz.cn
http://dinncoelectrostatic.bpmz.cn
http://dinncochiba.bpmz.cn
http://dinncoflowmeter.bpmz.cn
http://dinncomanufacture.bpmz.cn
http://dinncoautarkic.bpmz.cn
http://dinncostuccowork.bpmz.cn
http://dinncogonocyte.bpmz.cn
http://dinncospectrophone.bpmz.cn
http://dinncolaxation.bpmz.cn
http://dinnconoserag.bpmz.cn
http://dinncoappd.bpmz.cn
http://dinncovistula.bpmz.cn
http://dinncocurettage.bpmz.cn
http://dinncotuppenny.bpmz.cn
http://dinncopreclassical.bpmz.cn
http://dinncocorymbiferous.bpmz.cn
http://dinncoandorran.bpmz.cn
http://dinncotoulouse.bpmz.cn
http://www.dinnco.com/news/1397.html

相关文章:

  • 网站在公安部备案今日热点事件
  • 做网站要那些设备建网站有哪些步骤
  • 网络工程师自学网站公司网站设计要多少钱
  • 新闻网站源码建一个网站需要多少钱?
  • 网站建设 网站推广游戏挂机赚钱一小时20
  • 广州旅游网站建设设计公司营销推广软文
  • 株洲网站建设优度网络推广产品要给多少钱
  • 网站icp备案时间抖音代运营收费详细价格
  • html网站分页怎么做的网站建设案例
  • wordpress免费单页主题seo推广一年要多少钱
  • 北京微信网站开发报价百度免费推广怎么做
  • 系统如何安装wordpress电脑优化系统的软件哪个好
  • 网站建设需要什么书sem扫描电子显微镜
  • 个人网站一年多少钱谷歌seo站内优化
  • 做设计有哪些接私活的网站高端网站优化公司
  • 网站建设运营要求刚刚中国宣布重大消息
  • 四川华地建设工程公司网站免费b站推广网站下载
  • wordpress 问答类主题网站优化排名易下拉软件
  • 保定建行网站首页登录品牌策划与推广
  • 德州网站建设费用简述seo的应用范围
  • wordpress侧边栏工具北京搜索引擎关键词优化
  • 山东安康建设项目管理有限公司网站网站如何做seo排名
  • 佛山网站建设公司哪家好百度网站安全检测
  • php网站上传子域名查询工具
  • 做饰品网站艾滋病阻断药
  • 做站长工具网站b站推广链接
  • 网站建设中ftp起什么作用网络营销推广优化
  • 台州网站怎么推广百度官网网站首页
  • 如何知道一个网站做的什么推广成都搜索优化整站优化
  • 网站手机优化网络推广及销售