实习周记(附):学习笔记

因为本人自己有一个存笔记的文件体系,这些知识比较散,整理后就进入自己的体系了,这里就放出未整理(实习期间的笔记)。

本人是javaweb,如果有同样方向的同学,看到下面的不了解的名词时尽量能够查一下看一看,应该在工作中会接触到。谢谢大家!

1.rewriteBatchedStatements = true 驱动才会帮你批量执行SQL

需要注意的是,即使rewriteBatchedStatements=true, batchDelete()和batchUpdate()也不一定会走批量: 当batchSize <= 3时,驱动会宁愿一条一条地执行SQL。

所以,如果你想验证rewriteBatchedStatements在你的系统里是否已经生效,记得要使用较大的batch.

2.Maven一个项目管理工具 通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

3.消息树 包含真正的消息头和用户数据,结构是树状,消息树的根为Root,当消息被输入节点接收并解析时,将生成消息树

4.主从数据库 为了提高性能,写操作都交给主数据库,读操作交给从数据库

5.SSH (全称 Secure Shell)是一种加密的网络协议。使用该协议的数据将被加密,如果在传输中间数据泄漏,也可以确保没有人能读取出有用信息。要使用 SSH,目标机器应该安装 SSH 服务端应用程序,因为 SSH 是基于客户-服务模式的。

当你想安全的远程连接到主机,可中间的网络(比如因特网)并不安全,通常这种情况下就会使用 SSH。

Xshell 和 Xftp 都是 NetSarang 出品的优秀网络管理、安全传输工具。

Xshell 是一个免费的安全终端仿真器,可以作为 SSH、TELNET 或 RLOGIN 的终端模拟,能够从 Windows 平台安全连接 Linux 服务器;

Xftp 则是安全传输客户端,支持 FTP 和 SFTP 协议,两者都支持标签化的会话窗口。

6.Intellij idea

7.谷歌搜索 云帆翻墙工具 设置-扩展程序-拖拽 (不稳定)
老D http://laod.cn/

8.英文阅读习惯

9.ProcessOn 建立在并行计算和分布式存储架构之上 一个面向垂直专业领域的作图工具和社交网络

10.Spring boot 项目旨在帮助开发者更容易地创建基于Spring的应用程序和服务,使得现有的和新的Spring开发者能够最快速地获得所需要的Spring功能。

11.ssm  Spring+SpringMVC+mybatis Spring来将各层进行整合,管理持久层(mybatis)管理handler

12.loh4j Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;

我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

13.Druid 通过长期在极高负载的生产环境中实际使用、修改和完善,让Druid逐步发展成最好的数据库连接池。Druid在监控、可扩展性、稳定性和性能方面都有明显的优势。

14.公钥(Public Key)与私钥(Private Key) 私有的钥匙,仅有用户才拥有.公开的钥匙,可公开发行配送,只要有要求即取得.

git的公钥和密钥可以 $ cat ~/.ssh/id_rsa.pub 和 $ cat ~/.ssh/id_rsa 来查看

15.把别人修改的分支 更新到 自己的分支上

可通过例如 $ git checkout master  $ git pull 来完成

16.关于pull项目  建议步骤  1.在一个合适的地方建文件夹projectName 2.进入文件夹新建仓库 3.再进行pull

17. Spring的Controller和struts的Action

dao(数据访问对象):持久层,主要负责与数据库打交道

dto(数据传输对象):层间传递参数的对象

service(BO) -  服务层,又叫业务层

controller(action)  位于view与service层之间

SpringMVC @Controller
负责注册一个bean 到spring 上下文中

@RequestMapping
注解为控制器指定可以处理哪些 URL 请求

@Component
把普通pojo实例化到spring容器中

@Autowired
可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。

18.Hosts C:\Windows\System32\drivers\etc\hosts  是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,

当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,

一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析,

如果发现是被屏蔽的IP或域名,就会禁止打开此网页!

19.$ git reset --hard 返回最新的一次提交的版本

20.能够有自己的作品集 包括其他不常用的框架,不一定全是自己开发,但是要能够熟悉,能够对项目作出优化,有足够多自己的注释。

如当前我需要有的 struts项目 springMVC项目

21.serialVersionUID 相当于java类的身份证。主要用于版本控制。

serialVersionUID作用是序列化时保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性。

有两种生成方式: 一个是默认的1L,比如:private static final long serialVersionUID = 1L;

一个是根据类名、接口名、成员方法及属性等来生成一个64位的哈希字段,比如:private static final long serialVersionUID = xxxxL;

22.在线激活 idea15 http://blog.csdn.net/xiao_jun_0820/article/details/50261137

里的连接http://www.iteblog.com/idea/key.php

23.Spring Quartz  Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz

Spring中使用Quartz有两种方式实现:第一种是任务类继承QuartzJobBean,第二种则是在配置文件里定义任务类和要执行的方法,类和方法仍然是普通类。

很显然,第二种方式远比第一种方式来的灵活。

24.cron表达式

7个字段 允许值 允许的特殊字符
触发器利用一系列特殊字符

秒 0-59 , - * /
反斜线(/)字符表示增量值。例如,在秒字段中“5/15”代表从第 5 秒开始,每 15 秒一次。


0-59 , - * / 星号(*)字符是通配字符,表示该字段可以接受任何可能的值。

小时
0-23 , - * / 井号(#)字符为给定月份指定具体的工作日实例。把“MON#2”放在周内日期字段中,表示把任务安排在当月的第二个星期一。

月内日期 1-31 , - * ? / L W C
在月内日期字段中的字母(W)字符把执行安排在最靠近指定值的工作日。把“1W”放在月内日期字段中,表示把执行安排在当月的第一个工作日内。

月 1-12 或者 JAN-DEC , - * /
问号(?)字符和字母 L 字符只有在月内日期和周内日期字段中可用。问号表示这个字段不包含具体值。所以,如果指定月内日期,可以在周内日期字段中插入“?”,表示周内日期值无关紧要。字母 L 字符是 last 的缩写。放在月内日期字段中,表示安排在当月最后一天执行。在周内日期字段中,如果“L”单独存在,就等于“7”,否则代表当月内周内日期的最后一个实例。所以“0L”表示安排在当月的最后一个星期日执行。

周内日期 1-7 或者 SUN-SAT , - * ? / L C #

年(可选字段)  留空, 1970-2099 , - * /

表达式示例

"0 0 12 * * ?" 每天中午12点触发

"0 15 10 ? * *" 每天上午10:15触发

"0 15 10 * * ?" 每天上午10:15触发

"0 15 10 * * ? *" 每天上午10:15触发

"0 15 10 * * ? 2005" 2005年的每天上午10:15触发

"0 * 14 * * ?" 每天下午2点到下午2:59期间的每1分钟触发

"0 0/5 14 * * ?" 每天下午2点到下午2:55期间的每5分钟触发

"0 0/5 14,18 * * ?" 每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

"0 0-5 14 * * ?" 在 每天下午2点到下午2:05期间的每1分钟触发

"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发

"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发

"0 15 10 15 * ?" 每月15日上午10:15触发

"0 15 10 L * ?" 每月最后一日的上午10:15触发

"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发

"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发

"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发

0 6 * * * 每天早上6点

0 */2 * * * 每两个小时

0 23-7/2,8 * * * 晚上11点到早上8点之间每两个小时,早上八点

0 11 4 * 1-3   每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 4 1 1 * 1月1日早上4点

25.mvc:view-controller

两种用法

1、重定向

<mvc:view-controller path="/" view-name="redirect:/admin/index"/>

即如果当前路径是/ 则重定向到/admin/index

2、view name

<mvc:view-controller path="/" view-name=admin/index"/>

如果当前路径是/ 则交给相应的视图解析器直接解析为视图

<bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="2">

<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>

<property name="contentType" value="text/html"/>

<property name="prefix" value="/WEB-INF/jsp/"/>

<property name="suffix" value=".jsp"/>

</bean>

则得到的视图时 /WEB-INF/jsp/admin/index.jsp

mvc:resources 这个标签来帮你分类完成获取静态资源的责任。

26.Spring MVC集成Tiles使用方法

<%@taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles"%>

<html>

<head>

<title><tiles:getAsString name="title"/></title>

</head>

<body>

the title is:<tiles:getAsString name="title"/><br>

<tiles:insert name="header"/><br>

<tiles:insert name="content"/><br>

<tiles:insert name="footer"/><br>

</body>

</html>

<!DOCTYPE tiles-definitions PUBLIC

"-//Apache Software Foundation//DTD Tiles Configuration//EN"

"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">

<tiles-definitions>

<definition name="template" page="/tiles/mainTemplate.jsp">

<put name="title" value="default title"/>

<put name="header" value=".header"/>

<put name="content" value="/tiles/content.jsp"/>

<put name="footer" value="/tiles/footer.jsp"/>

</definition>

<definition name="courseDetail" extends="template">

<put name="title" value="courseDetail title"/>

<put name="content" value="/tiles/courseContent.jsp"/>

</definition>

<definition name=".header" page="/tiles/header.jsp" controllerClass="Action.HeaderTilesController">

</definition>

</tiles-definitions>

27.   markdown .md 文档 在线编辑器http://mahua.jser.me/

# 标题

* 列表

*** 分割线

*words*
斜体

**words**
粗体

`codes`
代码

> 引用

![](){ImgCap}{/ImgCap}
图片

[]() 链接

    
首行缩进

表格

| Tables        | Are           | Cool  |

| ------------- |:-------------:| -----:|

| col 3 is      | right-aligned | $1600 |

| col 2 is      | centered      |   $12 |

| zebra stripes | are neat      |    $1 |

28.客户端工具插入中文是没问题的,但是用Java程序就变成问号了。

遇到这种问题肯定是字符集造成的,先检查数据库,表的字符集,没问题,

然后将连接字符串改为jdbc:MySQL://xxxxx:3306/dbname?useUnicode=true&characterEncoding=utf-8解决问题了。

如果你的连接串是在xml文件中,请将&改为&amp;客户端连接的时候默认似乎是GBK的,所以指定为utf8.

29.Linux 指令

ls -la 看当前目录下的文件

cd .. 上级目录

cd /home 切换到home目录下

scp -P 58422  ../target/gamedatasync.jar [email protected]:/home/sync/
复制文件到远程

sz rz 下载 上传 注意先配置路径

rm -rf 目录名字
删除

mkdir 新建文件夹

tar  -zcvf   压缩文件名.tar.gz
tar  -zxvf   压缩文件名.tar.gz 压缩 解压

./startup.sh
启动Tomcat

vi  i Esc 查看编辑文件
ZZ退出

netstat –apn 查看端口情况

30.idea project Structure Artifacts配置  build make project打包

31.ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8; 从10001开始

COMMENT ‘注释‘

DEFAULT 如果不插入给默认值

32. log4j

log4j.logger.operationrecord=INFO,operationrecord

log4j.appender.operationrecord=org.apache.log4j.FileAppender

log4j.appender.operationrecord.File=operationRecord.log

log4j.appender.operationrecord.layout=org.apache.log4j.PatternLayout

log4j.appender.test2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c.%M(%L) - %m%n

log4j.appender.operationrecord.Encoding=UTF-8

33. 数据库加密 md5 salt

所谓加Salt,就是加点“佐料”。当用户首次提供密码时(通常是注册时),由系统自动往这个密码里加一些“Salt值”,

这个值是由系统随机生成的,并且只有系统知道。然后再散列。而当用户登录时,系统为用户提供的代码撒上同样的“Salt值”,

然后散列,再比较散列值,已确定密码是否正确。  

这样,即便两个用户使用了同一个密码,由于系统为它们生成的salt值不同,他们的散列值也是不同的。

即便黑客可以通过自己的密码和自己生成的散列值来找具有特定密码的用户,但这个几率太小了(密码和salt值都得和黑客使用的一样才行。

34. 多封装常用的自写的工具类

35. Java加密与解密的艺术

36. Java Archive file class、properties文件,是文件封装的最小单元;包含Java类的普通库、资源(resources)、辅助文件(auxiliary files)等

Web Archive file  Servlet、JSP页面、JSP标记库、JAR库文件、HTML/XML文档和其他公用资源文件,如图片、音频文件等

37. Tomcat的conf文件夹里有个server.xml文件 端口号修改

bin目录主要是用来存放tomcat的命令 修改catalina可以设置tomcat的内存

conf目录主要是用来存放tomcat的一些配置文件

lib目录主要用来存放tomcat运行需要加载的jar包

logs目录用来存放tomcat在运行过程中产生的日志文件,非常重要的是在控制台输出的日志

temp目录用户存放tomcat在运行过程中产生的临时文件。

webapps目录用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包、jar包的形式发布应用。

work目录用来存放tomcat在运行时的编译后文件,例如JSP编译后的文件。

38. disabled会使文本框变灰,而且通过request.getParameter("name")得不到文本框中的内容(如果有的话),

readonly只是使文本框不能输入,外观没有变化,而且通过request.getParameter("name")可以得到内容。

Readonly只针对input(text / password)和textarea有效,而disabled对于所有的表单元素都有效,包括select, radio, checkbox, button等。

从"true" 改成 "" 即可解除

39. 持续集成

持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

40. EntityManager update

OperUser operUser = commonDAO.getEntityManager().find(OperUser.class, userId);

operUser.setOperPassword(newPassword); //方法执行完后即可更新数据

41 .value="";
.innerHTML = ‘修改后的文字内容‘;

42. dump (备份文件系统)

(1)在特定时刻,将整个储存装置或储存装置之某部分的内容记录在另一储存装置中。存储的目的通常是为了防止发生错误。

(2) 将具备可读格式的数据从主要或辅助储存体复制至外部媒体,如磁带、磁盘或打印机等媒体。

(3) 为收集错误信息而复制整个虚拟储存体或虚拟储存体之某部分的内容。

43. 文件的md5 文件签名。
Message-Digest Algorithm 5.

MD5将任意长度的[字节串"变换成一个128bit的大整数.并且它是一个不可逆的字符串变换算法.

换句话说就是.即使你看到源程序和算法描述.也无法将一个MD5的值变换回原始的字符串.

从数学原理上说.是因为原始的字符串有无穷多个.这有点象不存在反函数的数学函数.

MD5在论坛上、软件发布时经常用,是为了保证文件的正确性,防止一些人盗用程序,加些木马或者篡改版权,设计的一套验证系统。

每个文件都可以用MD5验证程序算出一个固定的MD5码来。软件作者往往会事先计算出他的程序的MD5码并帖在网上。

因此,在网上看到某个程序下载旁注明了MD5码时,可以把它记下来,下载了这个程序后用MD5验证程序计算你所下载的文件的MD5码,和你之前记下MD5码比较,就知道你下的是不是原版了。

44.

overflow:scroll; /*任何时候都强制显示滚动条*/

overflow:auto; /*需要的时候会出现滚动条*/

overflow-x:auto; /*控制X方向的滚动条*/

overflow-y:auto; /*控制Y方向的滚动条*/

45. 获取一个指定数据库的指定表的表结构
select COLUMN_NAME from information_schema.COLUMNS where table_name = ‘your_table_name‘ and table_schema = ‘your_db_name‘;

46. 对一个东西一无所知的时候最好是能够看一下基础文档或者教程 再进行开发

否则后期浪费的时间将远超过节省下来没看的时间

47.   <dependencies>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.18</version>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.4</version>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>jstl</groupId>

<artifactId>jstl</artifactId>

<version>1.1.2</version>

</dependency>

<dependency>

<groupId>taglibs</groupId>

<artifactId>standard</artifactId>

<version>1.1.0</version>

</dependency>

</dependencies>

时间: 2024-07-30 13:53:02

实习周记(附):学习笔记的相关文章

Android学习笔记(十四)——在运行时添加碎片(附源码)

在运行时添加碎片 点击获取源码 将UI分割为多个可配置的部分是碎片的优势之一,但其真正强大之处在于可在运行时动态地把它们添加到活动中. 1.使用上一篇创建的Fragments项目,在main.xml文件中注释掉两个<fragment>元素: 2.在FragmentActivity.java中添加下面的代码: FragmentManager fragmentManager = getSupportFragmentManager();//向活动添加碎片 FragmentTransaction fr

Android学习笔记(十五)——碎片的生命周期(附源码)

碎片的生命周期 点击下载源码 与活动类似,碎片具有自己的生命周期.理解了碎片的生命周期后,我们可以在碎片被销毁时正确地保存其实例,在碎片被重建时将其还原到前一个状态. 1.使用上一篇的项目Fragments,在Fragment1.java文件中添加如下代码: package net.zenail.Fragments; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragm

Android学习笔记(十六)——碎片之间进行交互(附源码)

碎片之间进行交互 点击下载源码 很多时候,一个活动中包含一个或者多个碎片,它们彼此协作,向用户展示一个一致的UI.在这种情况下,碎片之间能进行通信并交换数据十分重要. 1.使用上一篇中创建的同一个项目,在fragment.xml中添加TextView的标识id: android:id="@+id/lblFragment1" 2.在fragment2.xml中添加一个Button,用于与fragment1进行交互: <Button android:id="@+id/btn

Android学习笔记(十八)——使用意图筛选器和实现浏览网页(附源码)

使用意图筛选器 点击下载源码 1.创建一个Intents项目,给该项目添加一个新类,命名为MyBrowserActivity,在res/layout文件夹下新增一个browser.xml: 2.在AndroidManifest.xml文件中添加如下代码: 添加权限: <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="a

angular学习笔记(二十八-附2)-$resource中的promise对象

下面这种promise的用法,我从第一篇$http笔记到$resource笔记中,一直都有用到: HttpREST.factory('cardResource',function($resource){ return $resource('/card/user/:userID/:id',{userID:123,id:'@id'},{charge:{method:'POST',params:{charge:true},isArray:false}}) }); HttpREST.factory('h

angular学习笔记(二十八-附1)-$resource中的资源的方法

通过$resource获取到的资源,或者是通过$resource实例化的资源,资源本身就拥有了一些方法,比如$save,可以直接调用来保存该资源: 比如有一个$resource创建的服务: var service = angular.module('myRecipe.service',['ngResource']); service.factory('Recipe',['$resource',function($resource){ return $resource('/recipe/:id',

STM32学习笔记1—实习回顾1

一.四步设置GPIO串口 RCC->APB2ENR|=1<<3;    //使能PORTB时钟 GPIOB->CRL&=0XFF0FFFFF;  //位初始化 GPIOB->CRL|=0X00300000;//PB.5  推挽输出 GPIOB->ODR|=1<<5;      //PB.5  输出高 二.三种方法设置io口电平 1.宏定义方式:#define BEEP PBout(8)  BEEP=0; 2.GPIOB->ODR|=1<&

雨痕 的《Python学习笔记》--附脑图(转)

原文:http://www.pythoner.com/148.html 近日,在某微博上看到有人推荐了 雨痕 的<Python学习笔记>,从github上下载下来看了下,确实很不错. 注意,这本学习笔记不适合Python新手学习. 从目录上看,并不能看出这本笔记有何特别之处,但看到里面的内容,感到非常惊喜.这本书更多的是关注一些底层的实现细节,以及更多的考虑性能方面(讲解内容很多会涉及到内存管理.缓存.垃圾回收.堆栈帧等方面的内容). 目前本笔记的最近更新时间为2013.03.30.大家可以到

mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)

文章介绍结构一览 一.使用maven创建web项目 1.新建maven项目 2.修改jre版本 3.修改Project Facts,生成WebContent文件夾 4.将WebContent下的两个文件复制到src/main/webapp下,删掉WebContent 5.修改Deployment Assembly 6.测试 二.mybatis访问mysql 1.数据库准备 2.修改pom.xml 3.创建实体类 4.创建访问接口 5.添加映射文件 6.添加MyBatisCfg.xml配置文件,注

Unity3D学习笔记之七创建自己的游戏场景

到现在为止我们已经拥有了比较完备的Prefab,已经可以创建宏大的游戏场景,并以第一人称视角在场景中漫游了.这里给大家做个小的示范,建一个小场景大家在创建场景的时候需要自由发挥,做个尽量大的场景出来. 这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程<Unity游戏引擎的基础入门视频教程>,下载链接附在第二篇学习笔记中. 我们以最初的添加了First Person Controller的PFB_Straight为整个场景的中心点来展开.我们先从Project中Prefabs文件夹拖出来