首页 文章 精选 留言 我的

精选列表

搜索[Web安全],共10000篇文章
优秀的个人博客,低调大师

Python全栈 Web(前端三剑客之JavaScript 从小白鼠到武林盟主)

// HTML嵌套: // 元素标签中绑定JS代码: // "<p onclick="js操作">文本</p>" // 文档嵌套: // "<script type="text/javascript"> js操作 </script>" // 外部链接: // "<script src="外部.js文件""> js操作 </script>" // href:边加载边执行 src:加载完毕后执行 JS常用操作: alert("hello wotld!"); 普通网页弹窗 pormpt("please input"); 接受用户输入的弹窗 console.log("hello wotld"); 输出到控制台 docu

优秀的个人博客,低调大师

第5章—构建Spring Web应用程序—关于spring中的validate注解后台校验的解析

关于spring中的validate注解后台校验的解析 在后台开发过程中,对参数的校验成为开发环境不可缺少的一个环节。比如参数不能为null,email那么必须符合email的格式,如果手动进行if判断或者写正则表达式判断无意开发效率太慢,在时间、成本、质量的博弈中必然会落后。所以把校验层抽象出来是必然的结果,下面说下几种解决方案。 1.简单的校验Demo 依赖: <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.1.0.Final</version> </dependency> Student: import javax.validation.constraints.*; import java.math.BigDecimal; import java.util.Date; public class Student { @NotNull(message = "名字不能为空") private String name; @Size(min = 6, max = 30, message = "地址应该在6-30字符之间") private String address; @DecimalMax(value = "100.00", message = "体重有些超标哦") @DecimalMin(value = "60.00", message = "多吃点饭吧") private BigDecimal weight; private String friendName; @AssertTrue private Boolean isHaveFriend() { return friendName != null ? true : false; } @Future(message = "生日必须在当前实践之前") private Date birthday; @Pattern(regexp = "^(.+)@(.+)$", message = "邮箱的格式不合法") private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public BigDecimal getWeight() { return weight; } public void setWeight(BigDecimal weight) { this.weight = weight; } public String getFriendName() { return friendName; } public void setFriendName(String friendName) { this.friendName = friendName; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } DemoTest: import javax.validation.*; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Set; public class DemoTest { public static void main(String[] args) { Student xiaoming = getBean(); List<String> validate = validate(xiaoming); validate.forEach(row -> { System.out.println(row.toString()); }); } private static Student getBean() { Student bean = new Student(); bean.setName(null); bean.setAddress("北京"); bean.setBirthday(new Date()); bean.setFriendName(null); bean.setWeight(new BigDecimal(30)); bean.setEmail("xiaogangfan163.com"); return bean; } private static ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); public static <T> List<String> validate(T t) { Validator validator = factory.getValidator(); Set<ConstraintViolation<T>> constraintViolations = validator.validate(t); List<String> messageList = new ArrayList<>(); for (ConstraintViolation<T> constraintViolation : constraintViolations) { messageList.add(constraintViolation.getMessage()); } return messageList; } } 2.SpringMVC中的应用: 实体类的注解还是和Student类一样,只是controller接值的时候需要做点改动如下: // 使用@Valid 表明获取到的数据模型需要验证,传入的Errors对象就是验证出错之后的数据对象,包括校验错误的个数,具体的信息等 @RequestMapping(value="/register", method=RequestMethod.POST) public String registerForm( @Valid @ModelAttribute Student stu, Errors error){ logger.info("注册新用户"); if ( error.hasErrors()) { logger.error("出错啦"); } stuList.add(stu); logger.info("注册的用户信息:/n" + stu); return "login"; }

优秀的个人博客,低调大师

外部网络通过端口映射访问部署在虚拟机里的docker中的web应用

前文说明: Windows主机IP:10.100.70.135 Linux虚拟机 IP:192.168.233.129 Docker容器 IP:172.17.0.11 为方便测试使用,通常我们选择在windows主机中安装虚拟机这(这里选的是VMware workstation),在虚拟机中部署docker容器。而我们部署在docker中的容器外部网络(和windows同一层的网络)是无法访问的。 为了解决这个问题,可以采用一下这种方案。 一、创建容器时可以选择docker自带的端口映射功能能够跨网络实现172.17.0.11与192.168.233.129的通信。参考命令如下,docker的其他使用方法这里不再赘述 docker run -it -p 8003:80 --name nginx1 cariden/centos6.7 /bin/bash 这里我们可以通过访问192.168.233.129的8003端口映射到172.17.0.11的80端口,也就是可以直接访问nginx服务 在docker中部署一个外部服务以供访问,并创建一个简单索引页 二、采用vmware自带的虚拟网络编辑器实现外部网络访问虚拟机内的服务 1.点击”编辑“->”虚拟网络编辑器“,如图 2.选择”NAT“,然后点击”NAT设置“,如图。 3.接下来点击”添加“,让访问主机的8004端口映射到虚拟机里8003端口。 4.在弹出来的界面中分别填入主机端口,虚拟机IP,虚拟机端口,如图 5.确定后,我们就将虚拟机中的80号端口映射到宿主机的8086号端口了。可以外部网络测试了,选择和主机同一层的其他机器做测试就可以了。 6.测试通过! 注:如果以上步骤操作还是不能访问,考虑一下防火墙的问题,可以在防火墙入口规则里开放8004端口,这里为了便于测试我把防火墙关掉了。 本文转自 青苗飞扬 51CTO博客,原文链接:http://blog.51cto.com/qingmiao/1876077

优秀的个人博客,低调大师

政府安全资讯精选 2017年第十一期 英国未来可能向社交媒体网站征收网络安全税;“一法一决定”网络安全执法检查深入深圳、重庆、黑龙江等地

【国内政策分析】 “一法一决定”网络安全执法检查深入深圳、重庆、黑龙江等地点击查看原文 概要:过去一周,人大常委会牵头的全国范围内的“一法一决定”(《网络安全法》和《全国人大常委会关于加强网络信息保护的决定

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册