开发技术知识点汇总

1,Web 应用十大安全隐患

1) SQL 注入  2) 跨站脚本攻击XSS (Cross Site Scripting)  3) 遭破坏的认证和会话管理  4) 不安全的对象直接引用  5) 伪造跨站请求(CSRF)

6) 安全误配置(Security Misconfiguration) 7) 限制远程访问失败(Failure to Restrict URL Access)  8) 未验证的重定向和传递

9) 不安全的加密存储   10) 不足的传输层保护

2, Oracle 临时表

事务临时表:

Create global temporary table Temp_user

(ID NUMBER(12) Primary key,name varchar2(10))

ON COMMIT DELETE ROWS ;

会话临时表:

CREATE GLOBAL TEMPOPARY TABLE TEMP_USER

(ID NUMBER(12) Primary key,name varchar2(10))

ON COMMIT PRESERVE ROWS ;

区别:

事务临时表,在提交事务后,表中的数据就消失了,但是会话临时表不会!~

会话临时表,提交事务后,依旧能查询,但是关闭数据后,重新连接时,表中的数据才会消失!~

3,空值查询问题

create table tmp_test

(id int not null primary key,

username varchar2(30),

nickname varchar2(50),

address varchar2(300)

);

commit;

insert into tmp_test

values (1,‘1001‘,‘jack‘,‘shenzhen‘);

insert into tmp_test

values (2,‘1002‘,null,‘shanghai‘);

insert into tmp_test

values (3,‘1003‘,‘‘,‘wuhan‘);

commit;

select * from tmp_test

where nickname not in (‘jack‘);

select * from tmp_test

where nvl(nickname,‘#‘) not in (‘jack‘);

4,Spring 的IOC和AOP

IOC:控制反转也叫依赖注入。利用了工厂模式

将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置文件中配置的bean都初始化好,然后在你需要调用的时候,就把它已经初始化好的那些bean分配给你需要调用这些bean的类(假设这个类名是A),分配的方法就是调用A的setter方法来注入,而不需要你在A里面new这些bean了。

AOP:面向切面编程

OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。

将程序中的交叉业务逻辑(比如安全,日志,事务等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。

5,Spring的事物管理

声明式事务(基于AOP,TransactionManager),编程式事务

http://lzh166.iteye.com/blog/1134146

http://blog.csdn.net/java_min/article/details/4427523

6,过滤器和拦截器

过滤器:Filter对在web.xml中该filter配置的路径进行单向拦截, request匹配Filter的路径时做一次拦截,单向拦截

拦截器:Interceptor是不对request进行处理的, 它只是对action起作用,双向拦截

Filter基于回调函数,我们需要实现的filter接口中doFilter方法就是回调函数,而interceptor则基于java本身的反射机制。

Filter是依赖于servlet容器的,即只能在servlet容器中执行,很显然没有servlet容器就无法来回调doFilter方法。而interceptor与servlet容器无关。

Filter的过滤范围比Interceptor大,Filter除了过滤请求外通过通配符可以保护页面,图片,文件等等,而Interceptor只能过滤请求。

Filter的过滤例外一般是在加载的时候在init方法声明,而Interceptor可以通过在xml声明是guest请求还是user请求来辨别是否过滤

http://blog.csdn.net/x_yp/article/details/6358630

7,Oracle Connect by

select level, count(level)

from employee_lamar e

start with (e.dept_id = ‘101‘ and e.manager_emp_id is null)

connect by prior e.emp_id = e.manager_emp_id

group by level

order by level;

8,Oracle自定义变量

1) type类型  v_name table_name.column_name%type

v_ename emp.ename%type

select ename into v_ename from emp where empno=7900;

2)  rowtype类型 v_name table_name%rowtype

v_row emp%rowtype

select * into v_row from emp where empno=7900;

dbms_output.put_line(‘ename=‘ || v_row.ename);

3)  record类型

自定义类型通常会放到在包中

create or replace package my_package

as

--自定义一个类型

type myType is record(

xm emp.ename%type, --姓名

gzuo emp.job%type, --工作

gzi emp.sal%type --工资

);

end;

然后就可以在程序块中直接使用该类型

declare

--使用包中的自定义类型来定义变量

myValue my_bao.myType;

begin

select ename,job,sal into myValue from emp where empno=7844;

dbms_output.put_line(‘ename=‘||myValue.xm);

dbms_output.put_line(‘job=‘||myValue.gzuo);

dbms_output.put_line(‘sal=‘||myValue.gzi);

end;

4) table类型

语法: type 类型名 is table of 值类型 index by 键类型

值类型:指实际保存的数据的类型   键类型:类型有两种:binary_integer 或者 pls_integer

示例:用字符串做索引

declare

--定义表结构

type myTabType is table of char(2) index by varchar2(5);

sexTab myTabType;

v_sex_code varchar2(5);

v_sex_name char(2);

begin

--往表中添加内容

sexTab(‘nan‘):=‘男‘;

sexTab(‘nv‘):=‘女‘;

--用户输入

v_sex_code:=‘&性别编号‘;

v_sex_name:=sexTab(v_sex_code);

dbms_output.put_line(‘您的性别是 = ‘||v_sex_name);

end;

时间: 2024-11-10 00:47:09

开发技术知识点汇总的相关文章

python全栈开发 * 10知识点汇总 * 180612

10 函数进阶 知识点汇总 一.动态参数 形参的第三种1.动态接收位置传参 表达:*args (在参数位置编写 * 表?接收任意内容) (1)动态位置参数def eat(*args): print(args)eat("水果","蔬菜","肉",)# # 结果以元祖的形式呈现. : ('水果', '蔬菜', '肉') (2) 位置参数,动态位置参数: 动态参数必须在位置参数后?def eat(a,b,*args): print(a,b,args)e

python全栈开发* 02 知识点汇总 * 180531

运算符和编码 一  格式化输出 1  .输入  name ,age , job , hobby. 输出  :   ---------------  info of Mary  ------------------ Name  : Mary Age   : 18 Job  : Teacher Hobbie  :sing ----------------------end------------------------- eg:   name = input ("Name  : ") ag

python全栈开发 * 22 知识点汇总 * 180703

22 面向对象 --- 属性,类方法,静态方法,反射一.属性1.属性的定义:将方法伪装成属性,虽然在代码层面上没有任何高深之处,但让其看起来更合理. (类似于属性的方法)class Person: def __init__(self,name,weight,height): self.name=name self.weight=weight self.height=height @property def bmi(self): return self.weight/self.height**2p

python全栈开发 * 26知识点汇总 * 180709

26 logging collections random 模块 一.logging低配:日志不能写入文件与显示同时进行 1.只写入文件:import logginglogger=logging.getLogger() #创建一个对象fn=logging.FileHandler("高配.log",encoding="utf-8",mode="w")logger.addHandler(fn)logging.debug("debug mes

python全栈开发 * 30知识点汇总 * 180713

30 re模块2一.正则表达式在线测试 在线测试工具 http://tool.chinaz.com/regex/(一).*?的用法: . 是任意字符 * 是取 0 至 无限长度 ? 是非贪婪模式.合在一起就是 取尽量少的任意字符,一般不会这么单独写,他大多用在:.*?x就是取前面任意长度的字符,直到一个x出现(二).问号"?"的四种用法 1.量词,重复零次或一次 2.非贪婪匹配(惰性匹配)的象征( .*? ) 3.?: 分组一开始加?:表示取消分组优先. 4.?p: 分组命名 html

开发技术文档汇总

开发技术文档汇总:(持续更新) 1 Underscore 中文文档    github地址   英文文档 2 Express中文文档   github地址 3 Backbone中文文档 Backbone英文文档   github地址 4 Jquery中文文档(适合1.0--2,0) 5 Bootstrap中文 6 Less中文 7 NodeJs中文API 8 node.js相关的中文文档及教程 9 ECMAScript262中文兼容库 10 浏览器hacks 11 Rapheal中文   相关文

VC++/MFC(VC6)开发技术精品学习资料下载汇总

工欲善其事,必先利其器,VC开发MFC Windows程序,Visual C++或Visual Studio是必须的,恩,这里都给你总结好了,拿去吧:VC/MFC开发必备Visual C++.Visual Studio.MSDN等下载汇总,甭客气~  啊?还没有开始学C++?那你先学习C++语言基础吧,C/C++语言基础学习资料及视频教程请看这里. 史无前例的网络最全最强C/C++资料索引: C/C++编程语言学习资料尽收眼底 电子书+视频教程 VC++/MFC(VC6)开发技术精品学习资料下载

移动平台开发技术所需技能汇总

精通Java(Scala).C.C++ 熟悉常用的数据结构和算法 一门脚本语言 Python等: 理解面向对象设计的基本原则,熟悉常用的设计模式: 精通 NDK 编程 JNI 开发: 插件式App开发:熟练使用git版本控制工具: 熟悉常用第三方Android Library的使用:熟悉机型适配:熟悉Android缓存.内存优化: 熟练掌握Java高级特性编程; 了解HTML5,JS等前端技术: 熟悉 Android SDK, Android知名开源项目源码 ,研究阅读过 Android 系统的

【Android应用开发技术:用户界面】界面设计中易混淆的概念汇总

作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells Github:https://github.com/AllenWells [Android应用开发技术:用户界面]章节列表 一 px.dp.sp px:即像素,每个px对应屏幕上的一个点. dp:即设备独立像素,一种基于屏幕密度的抽象单位,在每英寸160点的显示器上:1 dp = 1 px. sp:即比例像素,主要用来处理字体大小,可以根据用户字体