Cena评测系统,最受欢迎的信息学竞赛离线评测系统. 它是开放源程序的信息学竞赛评测系统,能满足大多数程序设计竞赛的测评需求. 特色功能: 通过局域网自动收取选手程序. 高效率的数据文件配置工具. 自动选用对应的编译器来编译选手程序,也能使用解释器或直接评测可执行文件. 能准确测出选手程序的运行时间和内存使用量,并可加入对运行时间和内存使用的限制. 自动比较选手程序的输出和标准输出的差异,并能将两者出现差异的具体位置告诉评测者. 支持使用自定义校验器,可评测有多解的试题. 可对评测结果进行统计分…
引言 有时我们需要使用CCR测评器(CCR-Plus是一个开源的信息学竞赛测评软件,Github链接https://github.com/sxyzccr/CCR-Plus)进行SpecialJudge(以下简称SPJ).例如判断选手输出与标准输出的差距,大于一定的值就算错,这时就需要用SpecialJudge了. 在CCR测评器中,SPJ是用一项叫做自定义校验器的功能实现的.CCR的文档没有写明校验器的语法,网上也没有这一类的信息.于是,我在CCR的源代码中找到了CCR的默认校验器(全文比较),…
一.自定义校验类 public class PasswordValidator extends FieldValidatorSupport { @Override public void validate(Object object) throws ValidationException { String fieldName = getFieldName(); Object fieldValue = getFieldValue(fieldName, object); if (fieldValue…
每篇一句 没有任何技术方案会是一种银弹,任何东西都是有利弊的 相关阅读 [小家Java]深入了解数据校验:Java Bean Validation 2.0(JSR303.JSR349.JSR380)Hibernate-Validation 6.x使用案例 [小家Spring]Spring方法级别数据校验:@Validated + MethodValidationPostProcessor优雅的完成数据校验动作 [小家Java]深入了解数据校验(Bean Validation):从深处去掌握@Va…
日常工作中写接口时,往往需要校验前端传来的枚举状态码,例如"1","2"等等, 这里使用java 303规范的参数校验框架封装一个自定义参数校验器: /** * @author: yq * @date: 2020/9/22 22:15 * @description 自定义参数校验注解,加在指定的需要校验的字段上 */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD,…
一.Struts2内置拦截器 Struts2中内置类许多的拦截器,它们提供了许多Struts2的核心功能和可选的高级特 性.这些内置的拦截器在struts-default.xml中配置.只有配置了拦截器,拦截器才可以正常的工作和运行.Struts 2已经为您提供丰富多样的,功能齐全的拦截器实现.大家可以至struts2的jar包内的struts-default.xml查看关于默认的拦截器与 拦截器链的配置.内置拦截器虽然在struts2中都定义了,但是并不是都起作用的.因为并不是所有拦截器都被加…
一 前言 系统执行业务逻辑之前,会对输入数据进行校验,检测数据是否有效合法的.所以我们可能会写大量的if else等判断逻辑,特别是在不同方法出现相同的数据时,校验的逻辑代码会反复出现,导致代码冗余,阅读性和可维护性极差. 鉴于通用性和普遍性,Spring框架提供了validator组件,通过一些校验器,可以对一些数据进行统一的完整性和有效性等校验,即简单又好用. JSR-303是Java为Bean数据合法性校验提供的标准框架,它定义了一整套校验注解,可以标注在成员变量,属性方法等之上. hib…
1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证:Struts2 提供了一些基于 XWork Validation Framework 的内建验证程序. 使用这些验证程序不需要编程, 只要在一个 XML 文件里对验证程序应该如何工作作出声明就可以了. 需要声明的内容包括: 哪些字段需要进行验证 使用什么验证规则 在验证失败时应该把什么样的出错消息发…
背景:为什么要自定义,如何自定义,实现过程 转载:http://blog.csdn.net/SEU_Calvin/article/details/52315125 0. 为什么需要自定义类加载器 网上的大部分自定义类加载器文章,几乎都是贴一段实现代码,然后分析一两句自定义ClassLoader的原理.但是我觉得首先得把为什么需要自定义加载器这个问题搞清楚,因为如果不明白它的作用的情况下,还要去学习它显然是很让人困惑的. 首先介绍自定义类的应用场景: (1)加密:Java代码可以轻易的被反编译,如…
)以上两种情况在实际中的综合运用:比如你的应用需要通过网络来传输 Java 类的字节码,为了安全性,这些字节码经过了加密处理.这个时候你就需要自定义类加载器来从某个网络地址上读取加密后的字节代码,接着进行解密和验证,最后定义出在Java虚拟机中运行的类. 1. 双亲委派模型 在实现自己的ClassLoader之前,我们先了解一下系统是如何加载类的,那么就不得不介绍双亲委派模型的特点和实现过程. 双亲委派模型特点: 该模型要求除了顶层的Bootstrapclassloader启动类加载器外,其余的…
1.小组成员 舒 溢 许嘉荣 唐 浩 黄欣欣 廖帅元 刘洋江 薛思汝 2.最终成果及其代码仓库链接 CCSU评测系统 代码仓库 3.评测系统功能 用户注册 用户可选题目进行提交 用户做题结果 排名功能 后台管理员可进行OJ题目的添加 4.总结 做个OJ是自己上学期的想法,在网上搜索许久之后终于发现有一个开源的HUSTOJ,便从Github上Fork了,研究其源代码开始准备搭建一个属于自己学校的OJ,但是自己的知识有限最终还只了解到了数据表这一块,我最后采用了作者的脚本,进行了一键懒人搭建,放在了…
自定义拦截器 自定义Source 自定义Sink 引入依赖 <dependency> <groupId>org.apache.flume</groupId> <artifactId>flume-ng-core</artifactId> <version>1.7.0</version> </dependency> 代码 /** * @author Michael Fang * @since 2019-12-30…
项目地址 http://code.google.com/p/vakuum-oj/ https://github.com/BYVoid/vakuum 简介 Vakuum是一个基于Linux+PHP的在线评测系统(Online Judge),主要面向信息学竞赛(OI)和ACM/ICPC. 功能 在线评测 用户提交程序代码,在线编译,执行测试数据,对其评判并返回结果.支持自定义检查器(Speciel Judge).支持特殊类型题目(代码检查.交互式.库式.提交答案式). 比赛举办 兼顾OI和ACM,支…
一.struts2文件上传 1.上传文件的时候要求必须使得表单的enctype属性设置为multipart/form-data,把它的method属性设置为post 2.上传单个文件的时候需要在Action类中添加属性并提供每个属性的标准get/set方法: private File uploadImage;//上传的文件 private String uploadImageContentType;//上传的文件类型 private String uploadImageFileName;//上传…
CBV加装饰器 第一种 @method_decorator(装饰器) 加在get上 第二种 @method_decorator(login_auth,name='get') 加在类上 第三种 @method_decorator(login_auth) 加在dispatch上 3.7的要return super().dispatch def login(request): if request.method == 'POST': username = request.POST.get('usern…
参数校验:简单的就逐个手动写代码校验,推荐用Valid,使用hibernate-validator提供的,如果参数不能通过校验,报400错误,请求格式不正确: 步骤1:在参数对象的属性上添加校验注解如@NotBlank 步骤2:用@Valid注解controller方法的参数对象 常用校验注解(通过注解的message属性自定义校验错误的信息): @NotNull值不能为空 @Null值必须为空 @Pattern(regx=)字符串必须匹配正则表达式 @Size(min=,max=)集合元素数量…
如果我只是简单的播放一个视频,而不需要考虑播放器的界面.iOS9.0 之前使用 MPMoviePlayerController, 或者内部自带一个 view 的 MPMoviePlayerViewController.  iOS9.0 之后,可以使用 AVPictureInPictureController, AVPlayerViewController, 或者 WKWebView. 以上系统提供的播放器由于高度的封装性, 使得自定义播放器变的很难. 所以,如果我需要自定义播放器样式的时候,可以…
自定义校验规则:(了解) 在Struts2自定义校验规则: 1.实现一个Validator 接口. 2.一般开发中继承ValidatorSupport 或者 FieldValidatorSupport * ValidatorSupport           :不是针对一个字段校验. 校验确认密码(与密码字段比较) * FieldValidatorSupport :针对一个字段的校验. 步骤: 1.编写一个类继承FieldValidatorSupport public void validate…
Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论 创建用户自定义的类加载器 要创建用户自定义的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的findClass(String name)方法即可,该方法根据参数指定的类的名字,返回对应的Class对象的引用. 自定义类加载器的例子 代码: package com.mengdd.classloader; import java.io.ByteArrayOutputStream; import…
自定义拦截器(权限管理),包含了对ajax和表单请求的拦截 package com.interceptor; import java.io.IOException; import java.io.PrintWriter; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts…
为什么设计拦截器?1.为了在webservice请求过程中,能动态操作请求和响应数据,CXF设计了拦截器 拦截器分类: 1.按所处的位置分:服务器端拦截器,客户端拦截器. 2.按消息的方向分:入拦截器,出拦截器. 3.按定义者分:系统拦截器,自定义拦截器. 客户端添加日志拦截器 package com.client.interceptor; import java.util.List; import javax.xml.namespace.QName; import org.apache.cxf…
转自博客:http://blog.csdn.net/pkgk2013/article/details/51985817 拦截器的作用 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截是AOP的一种实现策略.  拦截器是动态拦截Action调用的对象.它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行.同时也是提供了一种可以提取ac…
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------…
第01步:配置web.xml,启动struts框架 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoca…
一.自定义类加载器的一般步骤 Java的类加载器自从JDK1.2开始便引入了一条机制叫做父类委托机制.一个类需要被加载的时候,JVM先会调用他的父类加载器进行加载,父类调用父类的父类,一直到顶级类加载器.如果父类加载器加载不了,依次再使用其子类进行加载.当然这类所说的父类加载器,不一定他们之间是继承的关系,有可能仅仅是包装的关系. Java之所以出现这条机制,因为是处于安全性考虑.害怕用户自己定义class文件然后自己写一个类加载器来加载原本应该是JVM自己加载的类.这样会是JVM虚拟机混乱或者…
拦截器可谓struts2的核心了,最基本的bean的注入就是通过默认的拦截器实现的,一般在struts2.xml的配置中,package内直接或间接继承了struts-default.xml,这样struts2默认的拦截器就会作用.下面详细的说明一下: Interceptor拦截器类似于过滤器,是可以在action执行前后执行的代码.是我们做web开发时经常用的技术.比如:权限控制.日志等.我们也可以将多个Interceptor连在一起组成Interceptor栈. Struts2拦截器,每个拦…
一.自定义拦截器 1.架构 2.拦截器创建 //拦截器:第一种创建方式 //拦截器生命周期:随项目的启动而创建,随项目关闭而销毁 public class MyInterceptor implements Interceptor{} //创建方式2: 继承AbstractInterceptor -> struts2的体贴 //帮我们空实现了init 和 destory方法. 我们如果不需要实现这两个方法,就可以只实现intercept方法 public class MyInterceptor2…
Struts2拦截器是基于AOP思想实现的,而AOP的实现是基于动态代理.Struts2拦截器会在访问某个Action之前或者之后进行拦截,并且Struts2拦截器是可插拔的:Struts2拦截器栈就是将拦截器按照顺序连接在一起的链,当满足拦截的要求时,则会按照实现声明的顺序依次执行拦截器. 1.Struts2自定义拦截器介绍 Struts2所有拦截器都必须实现Interceptor接口,Interceptor接口主要有3个方法: init():初始化方法,只在拦截器加载时执行一次 interc…
因为自己对于struts2也不是很了解,这章将是struts2的最后一章了.那么这一章主要介绍的是拦截器以及怎么样来自定义一个拦截器. struts2的拦截器位于struts2-core(核心包)->struts-default.xml->interceptor-stack 标签->interceptor-ref 引用具体的类.拦截器的执行顺序:在执行方法之前永远都会先执行拦截器,默认的拦截器在action类实例化以后执行. 默认拦截器原理:1.aop思想(面向切面编程?),特点:存在基…
前言 前面介绍了struts2的输入验证,如果让我自己选的话,肯定是选择xml配置校验的方法,因为,能使用struts2中的一些校验规则,就无需自己编写了, 不过到后面应该都有其他更方便的校验方法,而不会使用struts2内置的这些校验. 参考博文:http://www.cnblogs.com/whgk/p/6593916.html http://www.cnblogs.com/cxyzyh2017/p/6622827.html 一.struts2拦截器概述 1)什么是拦截器? Struts2中…