实体类

[笔记]Struts2的服务器端验证框架的使用

旧城冷巷雨未停 提交于 2019-12-04 00:34:14
更详细的内容请参考Struts2的官方文档和源代码... 注:1.对于Action类中的简单属性,可直接使用单独的、与action同层的XXXAction-validation.xml配置文件即可!(简单属性包括基本类型和String等等) 2.对于Action类中的复杂属性,采用visitor验证方式,需要同时编写与action同层的XXXAction-validation.xml文件 和 与该属性对应的model层的实体类同层的XXX-validation.xml文件! ------------------------无聊的分隔线------------------------ 这里只讲述复杂属性的visitor验证方式。 1. XXXAction类中的复杂属性必须要有getter访问器方法。 2. XXXAction-validation.xml必须在项目编译后与对应的Action类在同一目录中。 3. XXXAction类的复杂属性对应的实体类的验证文件必须在项目编译后与实体类在同一目录中,并且实体类验证 文件的命名要符合:实体类名-validation.xml。 4. 要在struts.xml配置文件中使用validation拦截器和workflow拦截器(使用workflow拦截器是为了在validation 拦截器中出现验证失败后流程不再继续往下走

SpringBoot属性配置

感情迁移 提交于 2019-12-03 20:40:59
SpringBoot属性配置   创建Spring Boot项目时,会默认生成一个全局配置文件application.properties(可以修改后缀为.yml),在src/main/resources目录下或者类路径的/config下。   我们可以通过修改该配置文件来对一些默认配置的配置值进行修改。 一、项目默认属性配置文件 1.修改tomcat端口号   spring boot 开发web应用的时候,默认tomcat的启动端口为8080,如果需要修改默认的端口,则需要在application.yml添加以下记录: server:   port: 8888   重启项目,启动日志可以看到:Tomcat started on port(s): 8888 (http) 启动端口为8888,   浏览器中访问 http://localhost:8888 能正常访问。 2.修改访问路径   spring boot 开发web应用的时候,访问路径为/,如果需要修改访问路径,则需要在application.yml添加以下记录: server: port: 8888 servlet: context-path: /springboot    重启项目,启动日志就可以看到:Tomcat started on port(s): 8888 (http) with context path '

@RequestBody的使用

余生颓废 提交于 2019-12-03 20:20:52
基础知识介绍: @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。 注:一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam。 注:当同时使用@RequestParam()和@RequestBody时,@RequestParam()指定的参数可以是普通元素、 数组、集合、对象等等(即:当,@RequestBody 与@RequestParam()可以同时使用时,原SpringMVC接收 参数的机制不变,只不过RequestBody 接收的是请求体里面的数据;而RequestParam接收的是key-value 里面的参数,所以它会被切面进行处理从而可以用普通元素、数组、集合、对象等接收)。 即:如果参数时放在请求体中,传入后台的话,那么后台要用@RequestBody才能接收到;如果不是放在 请求体中的话,那么后台接收前台传过来的参数时,要用@RequestParam来接收,或则形参前

android studio: 快捷键生成getter/setter方法时自动加m的问题

一个人想着一个人 提交于 2019-12-03 17:33:20
平时使用Android Studio 在写实体类的时候,习惯给实体类的成员变量前面加上一个"m" 修饰符表示这是一个成员变量,这也是搞java的一种约定俗成的写法,本来这是没有问题的,可是在默认情况下使用快捷键生成getter()/setter()方法时,生成的getter()/setter()方法名居然也加了“m” ,成员变量的个数少了也就罢了,自己一个一个手改,成员变量的个数一多,改的人头都大了! 比如我要给一个名为Person的实体类生成getter()/setter()方法 使用快捷键生成后: 今天实在是受不了了,找到一个办法,可以修正这个问题,打开“File”-"Settings"-"Editor"-"Code Style"-"Java"-"Code Generation 选项卡",在Name prefix 的Field 输入框中输入“m”, 在Static Field的输入框中输入“s”, 点击OK保存。 删掉之前的getter/setter方法,再用快捷键生成一次: 瞬间世界清静了不少,看来IDEA这个IDE确实如传说中的那样还是挺智能的,还真有不少东西需要我们去挖掘 :)。 来源: https://www.cnblogs.com/yongdaimi/p/11805059.html

全栈项目|小书架|服务器开发-NodeJS 项目分包

北城余情 提交于 2019-12-03 15:36:31
唠嗑 参考的是 慕课网七月老师的课程 ,七月的课质量真的挺高的,推荐一波。这次的小书架项目源码不会全部公开,因为用了七月老师课程的绝大部分代码。虽然代码不全,但是只要思路看得懂,代码实现就很简单了。 小书架项目不是我个人完整的项目,UI 使用的是【 9小时搞定微信小程序开发 】,这位老师的界面效果,当时(去年吧)由于已经学了一段时间小程序,正好看到极客时间有这个课程,看着目录讲的挺详细的就买了,后来没啥时间看,就搁置了。今年看到七月老师的课【 Node.js+KOA2 从0到1打造超好用Web框架 一步到位 掌握KOA2服务端开发 】,果断学了。最近正好也在弄小程序,捡起了当时的极客时间课程,课程的最后是实现一个前后端的项目利用【小书架】,于是想着二者结合再加以改动就可以把小书架项目做得更完善一些。所以就开始干吧! 技术包 假设 npm ,NodeJS ,koa ,mysql 已经安装好了 服务器开发: NodeJS + KOA2+MySQL 开发工具: vscode NodeJS 项目只要新建一个文件夹,然后使用命令 npm init 即可创建成功,然后把常用的包名创建好即可,可参考下方的项目分包。 项目分包 上图可以看得不是很清楚,那么重新整理一份吧 app api:接口 v1:第一版本的接口 lib:辅助 models:实体类 services:微信相关 validators

享元模式

微笑、不失礼 提交于 2019-12-03 13:26:12
享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。 享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 20 个分布于不同位置的圆来演示这种模式。由于只有 5 种可用的颜色,所以 color 属性被用来检查现有的 Circle 对象。 介绍 意图: 运用共享技术有效地支持大量细粒度的对象。 主要解决: 在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。 何时使用: 1、系统中有大量对象。 2、这些对象消耗大量内存。 3、这些对象的状态大部分可以外部化。 4、这些对象可以按照内蕴状态分为很多组,当把外蕴对象从对象中剔除出来时,每一组对象都可以用一个对象来代替。 5、系统不依赖于这些对象身份,这些对象是不可分辨的。 如何解决: 用唯一标识码判断,如果在内存中有,则返回这个唯一标识码所标识的对象。 关键代码: 用 HashMap 存储这些对象。 应用实例: 1、JAVA 中的 String,如果有则返回,如果没有则创建一个字符串保存在字符串缓存池里面。 2、数据库的数据池。 优点: 大大减少对象的创建,降低系统的内存

答题小程序服务器端后台代码实现

╄→гoц情女王★ 提交于 2019-12-03 11:51:52
答题小程序服务器端后台代码实现 最近小伙伴们实现了一个方言类答题的小程序。写点东西做个记录。 首先是环境:服务器系统是centos+tomcat8.5,大致流程是在本地写好代码,生成可编译的class文件,测试后把项目发布到服务器上。数据库使用的是Mysql8.0,踩过一点点小坑,之后会把踩过的坑也放上来。访问数据库用的是mybaits,比较方便修改。 关于小程序前期调试 建议先在微信开发者工具先将不校验合法域名去掉,测试本地编写的代码 数据库创建,建议直接在脚本里写好语句执行,这样利于复用 代码编写部分:(这次没用到什么框架,下次会学一些框架然后再写些项目) 1,定义实体类,比如用户类,尽量和数据库里的顺序,字段保持一致,利于后期代码编写。 2,写好接口类和实现类,这部分主要是处理业务逻辑和与数据库的交互。 3,利用mybaits写好sql语句。 4,编写servlet类,既处理http传来的参数,也处理返回结果。 下面是踩过的一些坑的记录 mybaits的坑: <!-- 启用别名 --> <typeAliases> <!-- 指定包下面的所有类自动启用别名,默认别名为类名 --> <package name="entity"/> </typeAliases> 1,启用别名的坑 一般不想写一大串包名会使用这个,然后我这的例子是我要传入一个实体类

Mybatis配置文件

我的未来我决定 提交于 2019-12-03 07:05:49
一、映射文件 1.#{}和${}的区别  #{}:Sql语句使用占位符预编译,可以防止Sql注入  ${}:Sql语句使用字符串拼接,无法防止Sql注入 2.映射文件中语句标签的参数  1.id属性:   映射文件对应的接口中的方法名  2.parameterType:   参数类型,可以是基本类型,也可以是实体类。当类型是基本类型且只有一个的时候,Sql语句只需要一个占位符,参数名可随意,如select * from user where id=#{随意参数名}  3.resultType:   返回类型,可以是基本类型,也可以是实体类。实体类中的属性名必须和数据库中表的字段名一一对应,否则无法完成封装。当不对应的时候,可以采取查询时取别名或resultMap进行封装  4.resultMap:   返回值列表 <resultMap id="userMap" type="com.itheima.domain.UserTest"> <!--property对应实体类的属性名,,column对应表的字段名--> <result property="userName" column="username"></result> <result property="userId" column="id"></result> <result property="userAddress"

Mybatis查询数据

一个人想着一个人 提交于 2019-12-03 05:28:29
查询一条数据返回一个对象 查询的时候数据库表的列名与实体类的属性名的关系: 当数据库的列名和实体类的属性名不一致的时候,会出现对象的属性没有赋值的问题,解决方式是在sql语句中的查询语句中,为查询的列取别名,别名跟实体类的属性名一致。 当数据库的列名和实体类的属性名是一致的时候,不需要额外的处理 查询的 sql语句中的返回值的写法 方式 1:使用 resultType,完整的包名 +类名 方式 2:使用 resultType,先在主配置文件中定义别名,查询的 sql中只需要用别名 方式 3:使用 resultMap 查询多条数据返回一个 List集合 查询返回 Map集合 模糊查询 方式 1:利用 mysql里面的 concat(a,b,c…)字符串拼接函数 方式 2:同方式 1 方式 3:不推荐,会出现 sql注入问题 这种方式运行的sql语句是: 不是用的占位符,会因为传输的值而随时可能改变sql语句的结构, 造成sql注入的问题。 来源: https://www.cnblogs.com/Tunan-Ki/p/11780035.html