韩顺平Spring笔记之图解
最新韩顺平java笔记整理幻灯片课件

servlet/jsp开发工具
普通的文本编辑器notepad,uedit32 集成开发工具jcreator,jbuilder,eclipse,editplus,netbean
servlet/jsp运行环境
Tomcat是一个免费的开源的servlet容器,它是Apache基金会的 Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司 及个人共同开发而成。
java.io.OutputStream
javax.servlet.ServletOutput
ng.Throwable
javax.servlet.UnavailableException
ng.Exception javax.servlet.ServletException
servlet中操作数据库
servlet操作数据库注意事项 需要将连接数据库的jar包,拷贝到tomcat服务器 具体有两种方法: 1)将jar包拷贝到tomcat目录下的lib文件夹里 2)在webapps目录的WEB-INF文件下建立一个lib文件夹,然后将 jar包拷贝到该文件夹下
4.因为session的各个属性要占用服务器的内存,因此软件公司都 是在迫不得已的情况下才使用
cookie vs session
1.存在的位置 cookie保存在客户端,session保存在服务器端 2.安全性 比较而言,cookie的安全性比session要弱 3.网络传输量 cookie通过网络在客户端与服务器端传输,而session保存在服务 器端,不需要传输
2.开发servlet(引入Tomcat文件夹下lib文件夹里的servlet-api.jar )
3.部署你的servlet(servlet开发流程)
韩顺平Linux视频教程—笔记(全)

韩顺平Linux视频教程—笔记(全)Linux操作系统学习linux的特点优点:1、免费的/开源的系统2、⽀持多线程/多⽤户的系统3、安全性好4、对内存和⽂件管理优越linux体积最少只需要内存4M,由于⼩所以可以做嵌⼊式开发缺点:操作相对困难Linus于1991年⾄1994年将unix的微型版minis加以开发出linux现在redhat红帽⼦、BSD、SUN等公司进⾏再发⾏在windows环境下可以使⽤(VM等)虚拟机来运⾏linux在linux运⾏startx命令可以进⼊图形操作界⾯root是linux下的系统管理员普通⽤户登陆后可以⽤su- 切换为系统管理员关机命令shutdown -h now ⽴刻进⾏关机shutdown -r now 现在重新启动计算机reboot 现在重新启动计算机logout 注销vi编辑器是linux下最有名的编辑器,也是学习linux必须掌握的⼯具,在unix下也可使⽤vi进⾏程序的开发linux可以做java/c开发在linux的vi编辑器内写⼀下简单的java程序“hello,world”1、Vi Hello.java2、输⼊i[进⼊到插⼊模式]public class hello{public static void main(String []args){System.out.println("hello,world");}}3、输⼊esc键[进⼊命令模式]4、输⼊wq保存退出/q!退出但不保存6、编译javac hello.javajavac Hello.java7、运⾏ java Hello [java运⾏的是class⽂件]ls命令显⽰当前⽂件ls -l命令显⽰详细⽂件列表如何在linux下开发c程序或是c++(cpp)程序建⽴vi hello.cpp#include <stdio.h>int main(){printf("hello!");return 0;}gcc hello.cpp ⽤gcc编译器编译出来未命名会是a.out⽂件gcc -o [⽂件名] [源⽂件名] ⽤gcc编译器编译⽂件命名/a.out 在linux下运⾏c程序只要输⼊/就可以运⾏------------------------------------------------------------linux下的⽂件⽬录linux的⽂件系统是采⽤级层式的树状⽬录结构,在此结构中的最上层是根⽬录“/”,然后在此⽬录下再创建其他的⽬录深刻理解linux⽂件⽬录是⾮常重要的。
2021韩顺平图解Linux课程(全面升级)实操篇

2021韩顺平图解Linux课程(全⾯升级)实操篇第5章 Linux 实操篇-远程登录到 Linux 服务器远程登录 Linux-Xshell6Xshell6:在 Linux 服务器上,使⽤ ipconfig 命令查看 IP 地址。
远程上传下载⽂件-Xftp6Xftp:在 Linux 服务器上,使⽤ ipconfig 命令查看 IP 地址。
第6章 Linux 实操篇-Vi 和 Vim 编辑器Vi 和 Vim 常⽤的三种模式正常模式/⼀般模式:⽤ Vim 打开⼀个⽂件就直接进⼊正常模式(默认模式)。
在这个模式中,可以上下左右移动光标、删除整⾏、复制、粘贴等等。
插⼊模式/编辑模式:在正常模式下,键⼊ i,I,o,O,a,A,r,R 任何⼀个字母之后才会进⼊插⼊模式。
命令⾏模式/末⾏模式:在插⼊模式下,键⼊ Esc 进⼊正常模式,再输⼊ : 进⼊命令⾏模式。
在此模式下,可以查询、替换、保存、退出、显⽰⾏号等等。
Vi 和 Vim 的快捷键拷贝当前⾏:yy,拷贝当前⾏向下的5⾏:5yy,粘贴:p。
删除当前⾏:dd,删除当前⾏向下的6⾏:5dd。
在⽂件中查找某个单词:命令⾏模式下输⼊ /关键词,回车查找,再键⼊ n 查找下⼀个。
设置⽂件的⾏号:set nu;取消⽂件的⾏号:set nonu。
⼀般模式下,使⽤快捷键 G 到该⽂件的最末⾏,使⽤ gg 到⽂件的最⾸⾏。
⼀般模式下,使⽤快捷键 u 撤销上次执⾏的操作。
⼀般模式下,将光标移动到指定⾏,键⼊⾏号 G,如20G。
、第7章 Linux 实操篇-开机、重启和⽤户登录注销开机、重启命令不管是重启系统还是关闭系统,⾸先要运⾏ sync 命令,把内存中的数据写到磁盘中。
shutdown -h now:⽴即进⾏关机shutdown -h 1:1分钟后⾃动关机(和 shutdown 命令效果⼀样)shutdown -r now:现在重新启动计算机halt:关机(上⾯的 -h 就是指 halt)reboot:现在重新启动计算机sync:把内存的数据同步到磁盘⽤户登录和注销登录时尽量少⽤ root 账号登录。
Hibernate韩顺平讲课笔记

1. hibernate 是个框架framework是orm框架,orm(object relation mapping)对象关系映射框架。
hibenate处于我们项目的持久层位置(所以又称为持久层框架);2. hibernate实际上是对jdbc进行轻量级的封装。
hibernate 定义:是对jdbc进行轻量级的orm框架封装,充当项目的持久层。
3. hibernate的学习的内容:A: hibernate apiB:hibernate.cfg.xml(这个是hibernate的核心配置文件)、C:对象关系映射文件4. 使用hibernate的好处5. hibernate的基础还是JAVA的反射机制。
注意:在把hibernate的jar包粘贴到lib文件下后,要引入到项目中去,引入成功后,在Referenced Librares中能看到引入的这些jar包。
6 hibernate的开发方式有三种:注意:什么是pojo (plan old/ordinary java object 简单的java 对象)注意:hibernate基本原理图使用先建数据库的方式开发hibernante,下面是开发流程1 创建一个项目 javaProject2 创建一个简单项目框架示意图3.在Myeclipse中引入hibernate开发包。
4.创建employe表5. 创建一个domain对象和对象关系映射文件注意:对象关系映射文件作用是用于指定domain对象和表的映射关系,该文件的取名是哟规定:domain对象.hbm.xml。
一般我们放在和domain对象同一个文件夹(包)下。
A:创建domain对象B:创建对象关系映射文件。
domain对象.hbm.xml6.手动配置我们的hibernate.cfg.xml配置文件,该文件用于配置连接数据库的类型、diver、用户名、密码、url、该文件的名称。
我们一般不修改。
韩顺平jsp学习笔记

韩顺平jsp学习笔记jspu j2ee核心13种技术:程序员必须掌握的技术:java,servlet,jsp。
13种技术规范.u j2ee程序员修炼成精法门u jsp 版本的用户管理系统:将servlet版本改为jsp版本,只使用jsp技术完成(modle1模式开发)并且在后面可通过jsp版的用户管理系统的改写,非常自然过渡到mv设计模式,更进一步到mvc设计模式开发工具:myeclipseu jsp概述:jsp是servlet技术的补充,访问jsp的过程:如果是第一次访问,jsp文件被服务器翻译成一个对应的java文件(servlet),然后,再被编译成.class文件并加载到内存中。
如果是以后访问jsp,那就直接调用内存中的jsp实例,所以,第一次访问jsp慢,后面访问jsp的速度就会变快了。
(hello.jsp来说明运行原理:tomcat下的work下有将jsp转换为servlet的代码)1. 为什么出现:程序员在开发过程中,发现servlet做界面非常不好,jsp对servlet的补充(对界面的补充,jsp界面好做)2. jsp=html+java片段+jsp标签(语法)+javascript(css):综合3. jsp功能的强大是因为可以与javabean结合使用(即:jsp作前台(界面),javabean作后台(逻辑层))。
4. Jsp是什么:1.jsp运行在服务器,2.jsp(java server page)3。
Jsp基础是servlet(相当于对servlet的包装)4.jsp 是综合技术:一个公式:jsp=html+java代码+jsp标签+javascript(css) 比较综合5.jsp无需配置,直接使用,如果你修改了jsp文件,不需要重新reloadweb应用6.jsp如何访问:http://ip:8088/web应用名.jsp路径u jsp的概述:元素1. 指令元素2. 脚本元素3. 动作元素u jsp与servlet的关系:1. jsp与servlet是对应关系2. jsp是以servlet为基础的u 编写一个计算器的实例:1. 表单提交处理的jsp页面为:<form action=”chuli.jsp”>2. 接受用户传来的数据的函数为request函数,方法为getParameter(“name”),返回类型为String3. 对于jsp页面报错的行数为tomcat中work里的对应的java代码中的错误行数4. jsp可以通过javascript代码,对数据合法性进行验证,防止用户空提交5. 可以通过Math.round(num) != num判断一个变量是否是一个数,当经过math.round处理后不相等,则num不是一个数u 在同一jsp页面提交和接受数据1.jsp中表达式标签:<%= %>u 迅速上手myeclipse工具-----》完成一个小案例:建立一个web工程(站点),创建一个jsp文件myHello.jsp,文件输出hello,配置tomcat,jdk,并发布工程(将站点放在tomcat 上),在浏览器中访问myHello.jspu Model1模式1. javaee开发有几个重要模式:Model1模式,Model2模式,mvc模式2. model1模式基础是jsp文件,由一些相互独立的jsp 文件,和其他的一些java class组成(不是必须的),jsp从httprequest中获得所需要数据,处理业务逻辑,然后通过response返回前段浏览器3. model1模式可分为model1(纯jsp)和model1(jsp+java class)4. model1缺点:表现层和业务逻辑层混合在一起(乱);开发中不利于多人开发协同;不利于后期维护,不好查看。
传智 韩顺平 html+css+javascrtpt 课程笔记2(吐血整理)

javascript 2===============================================================================1.js面向/基于对象编程-----类(原型对象)与对象(实例)(1)js面向/基于对象特征介绍Javascript是一种基于对象(object-based)的动态脚本语言,你遇到的所有东西都是对象。
js的面向对象技术广泛应用于AJAX等优秀框架。
☞特别说明:基于对象也好,面向对象也好,实际上都是以对象的概念来编写程序。
从本质上并无区别,所以这两个概念在课程中是一样的。
因为javascript中没有class(类),所以有人把类也称为原型对象。
其实这两个概念在编程中发挥的作用都看成一个意思。
(2)为什么需要原型对象(类)?例子:张老太养了两只猫猫:一只猫叫小白,今年3岁,白色;还有一只叫小花,今年5岁,花色。
(3)类(原型对象)————如何自定义类(原型对象)和对象创建类的方式有5中方法:工厂方法——使用new Object创建对象并添加相关属性使用构造函数来定义类(原型对象):上面的Cat类就是用此种方法基本语法:function 类名/原型对象名(){}创建对象:var 对象名=new 类名/原型对象名();使用prototype构造函数及原型混合方式动态原型方式2.如何判断一个对象实例是不是Cat类型?✧if(a instanceof Cat){window.alert(“a是Cat的实例”)}✧if(a.constructor== Cat){window.alert(“a是Cat的实例”)}3.带var和不带var的区别var abc=89;function test(){abc=900;//在函数里,如果不带var,则表示使用全局的abc变量89。
//如果带var,则表示在函数中,定义一个新的私有的abc变量。
韩顺平轻松搞定网页设计htmlcssjs之javascript现场授课笔记完整版

2011顺平轻松搞定网页设计(html+css+js)之javascript现场授课笔记(完整版)视频18整和19的前半部分不用看Javascript的基本介绍•JS是用于WEB开发的脚本语言:•脚本语言是什么:•脚本语言不能独立使用,它和HTML/JSP/PHP/配合使用•脚本语言也有自己的变量,函数,控制语句(顺序,分支,循环)•脚本语言实际上是解释性语言(即在执行时直接对源码进行执行)•Java程序.java→.class→jvm , js→浏览器(js引擎来解释执行)•Js在客户端(浏览器)执行•因为js是由浏览器来执行的,因此这里有个问题,不同类型的浏览器可能对js的支持不一样。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><script language="javascript">function test(){window.alert("hello world!");}</script><title> New Document </title></head><body><input type="button" onclick="test()" value="点击一下吧"/></body></html>案例1要求:打开网页后,显示hello 1<html><head><!----js代码一般是放在head标签间,但实际上也可以放在别的位置--><script language="javascript">window.alert警告("hello!");</script><title> New Document </title></head><body><input type="button" onclick="test()" value="点击一下吧"/></body></html>问题:•js的位置可以随意放•js必须使用 <script language="javascript"> 代码</script>•在一个html文件中(JSP/PHP/)可以出现多对(script)片段,浏览器会按照先后顺序一次执行2:Hello world程序改进•如何定义变量:•如何运算:<html><head><title> New Document </title></head><body><!----js代码是放在head标签间,但实际上也可以放在别的位置--><script language="javascript">//js中变量的定义(js中变量用var表示,无论什么类型)var num1=1;var num2=60;var result=num1+num2;window.alert("结果是"+result); //alert函数window.alert表示弹出一个对话框</script></body></html>•Js的变量类型是怎样决定的1)Js是弱数据类型语言,即:在定义变量时候,统一使用var表示,甚至可以去点var这个关键字2)Js中的变量的数据类型是由js引擎决定的Var name=”shunping”; //name是字符串Var kk=2 //kk是数字Name=234; //这事name自动变成数(可以变化)•Js的命名规(函数/变量):1)使用大小写字母,数字,$可以命名2)不能以数字打头3)不能使用js保留字和关键字(即java里的关键字)4)区分大小写5)单行注释://6)多行注释:/*…….*/顺平JS第三讲•Js的数据类型:•基本数据类型•数值类型(number)•字符串类型(string)•布尔类型通过typeof可以看到变量的具体数据类型举例:<html><head><title> New Document </title><script language="javascript">var vi="abc";var v2=890;window.alert("v1是"+typeof v1);window.alert("v2是"+typeof v2);vi=456; //体现js是动态语言:即数据类型可以任意变化window.alert("v1是"+typeof v1);//体现js是动态语言</script></head><body></body></html>•复合数据类型•数组•对象•特殊数据类型•Null(空)即:var=null空值•Undefined即:如下代码<script language="javascript">window.alert(tt ); //直接报错:未定义var tt; //未给值</script>Nan:不是一个数 infinity:无穷大 isNaN:对“不是一个数的识别”(不是一个数true/是数fault)•Js定义变量,初始化,赋值•定义变量:即var=a•初始化:即在定义变量时就给值•赋值:即:比如你先定义一个变量 var=tt ,然后再给值:tt=780;例子:编写一个程序,判断两个数是否能够整除<script language="javascript">var a=90;var b=8;if(a%b==0){window.alert("能整除");}else{window.alert("不能整除");}</script>•++,运算符a++ = a=a+1a-- = b=b-1++a 表示先把自己加1再赋值--a 表示先把自己减1再赋值例子:Var a=56;Var b=++a; //b=++a等同于[a=a+1;b=a] b=a++等同于[b=a; a=a+1;] Window.alert(b);Window.alert(a);•--运算符•Var a=56;•Var b=--a; //b=--a等同于[a=a-1;b=a] b=a--等同于[b=a; a=a-1;] •Window.alert(b);•Window.alert(a);错误案例:更正:重要输出:myfuns.js代码:调用myfuns.js案例一:Js文件:调用:案例2:Js文件:调用:abc(5);输出:3 3 4Js文件:调用:数组在存中的存在形式:存数据调用案例:输出:900存数据分析:输出:35 90 900 存数据调用分析:输出: hello world abc 顺平输出: h e l l o w o r l d a b c 顺平输出: hello world输出:0=451=902=0gg=9000二维数组的遍历:输出:shunping 123 4.5a b c优化排序:输出:输出:找到下标为4数组转置:输出:该javascript笔记是传智播客顺平老师2011年的培训随堂笔记完整版,写的深入浅出,突出重点,案例丰富,通俗易懂,适合要求快速入门并不遗漏细节的同学参考学习。
韩顺平老师oracle教程听课笔记_整理

韩顺平老师 oracle教程笔记1.Oracle认证,与其它数据库比较,安装Oracle安装会自动的生成sys用户和system用户:(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install (2)system用户是管理操作员,权限也很大。
具有sysoper角色,没有create database的权限,默认的密码是manager (3)一般讲,对数据库维护,使用system用户登录就可以拉也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
2.Oracle的基本使用--基本命令sql*plus的常用命令连接命令1.conn[ect]用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper 2.disc[onnect]说明: 该命令用来断开与当前数据库的连接3.psssw[ord]说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
4.show user说明: 显示当前用户名5.exit说明: 该命令会断开与数据库的连接,同时会退出sql*plus文件操作命令1.start和@说明: 运行sql脚本案例: sql>@ d:\a.sql或是sql>start d:\a.sql2.edit说明: 该命令可以编辑指定的sql脚本案例: sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开3.spool说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b.sql 并输入 sql>spool off交互式命令1.&说明:可以替代变量,而该变量在执行时,需要用户输入。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习各个配置.
税务,证券, 石油, 财务,政务系 ,编程粒度变大( 汇编 指令,c 语句 组件)
icationConTexte.xml
Context ac=new lApplicationContext("com/hsp/ioc/beans.xml");
反射
beans.xml/applicationcontext.xml
配置bean ,
ApplicationContext ac=new ClassPathXmlApplicationContext
applicationContext上下文容器 创建 student
bean工厂.
bean工厂.
我们理解 BeanPostProcessor ,有点类似我们的web filter
Employee.java
EmployeeServiceInt er
实现
@Transactional EmployeeService.j va[业务操作
hibernate
事情管理器
sessionfactory
struts-config.xml <action path="/login" parameter="fla type="com.hsp.web.action.LoginAction
☞ 学习框架,最重要的就是学习各个配置.
☞ 学习框架,最重要的就是学习各个配置.
bean bean bean
大的项目(税务,证券, 统,oa,erp,。。),编程粒度变大 java对象,spring,组件
applicationConTexte.xml 自己bean <bean>
<REF /> </bean>
自动装配的原理
// TODO Auto-generated method stub
ApplicationContext ac=new ClassPathXmlApplicationContext( "com/hsp/autowire/beans.xml");
//获取 Master master=(Master) ac.getBean("master"); System.out.println(master.getNa me()+" 养 "+master.getDog().getName());
spring框架原理图(sping框架什么被加载,spring中配置的bean,怎样 被创建,bean与bean之间的关系怎样被维护)
<bean id="user class="com.ser
spring框架原理图(sping框架什么被加载,spring中配置的bean,怎样 被创建,bean与bean之间的关系怎样被维护)
器对象) ApplicationContext ac=new
ClassPathXmlApplicationContext("applicationCo ntext.xml");
UserService us=(UserService) ac.getBean("userService");
us.sayHello();
<param-name>contextConfigLocation</param-name> <paramvalue>classpath:applicationContext.xml</param-value> </context-param> <!-- 对Spring容器进行实例化 --> <listener>
ie
实例化bean1 bean2 bean3
配置 MyBeanPostProcess or
MyBeanPostProcessor i BeanPostProcessor{
before(){} after(){} }
aop初探..
beans.xml 配置 MyBeanPostProcessor
魔法师
A
实现
BasisService.jav 基础抽象类
hibernate持久层
数据库
rvice.java
ok.jsp V
web层,struts
业务层
sping框架.它可以管理 web层,业务层.dao层 持久层,该sping可以配置各个层 的组件(bean),并且维护各个 bean之间的关系.
配置各种bean <bean id>< <property value="hello"></propery> </bean>
yBeanPostProcessor MyBeanPostProcessor
魔法师
需求: 1.记录每个对象,被实例化得实 际 2. 过滤每个调用对象ip 3. 给所有对象添加属性,或者函 数.=>aop(面向切面编程.针对所 有对象编程.)
对上面案例总结: spring实际上是一个容器框架,可以配置各种 bean与bean的关系,当我们需要使用某个bean的时候,
ioc是什么? 答 :ioc(inverse of controll ) 控制反转: (bean)的关系的权利从程序中转移到spring的容器 护.
DI是什么? 答: di(dependency injection) 依赖注入: 实际上 准确表示spring核心技术
目标对象
spring的层次图
ActionFrom.java
login.jsp V struts充当 web, 接管jsp / action / 表单 主要体现出mvc 的数据输入、数据的处理,数 据的显示分离
Users.java[domain对 象/javabean/pojo]
这里强调一下,在一个项目中 不一定全部有,可以根据实际 情况选择.
bybService=Class.forName("com.service.BybService" bybSerice.setName("小明"); userService.setByeService(bybService); applictonContext=new HashMap(); applictonContext.put("userService",userService) applictionContext.put("byeService",bybService)
项目 初步理解
UserService
DepartmentService
引入通知 //传统方法
环绕通知
ac.getBean("??") .say()..
OrderServicer begingTransacton() ....
aop原理+案例(aop 先不说,当我们讲完案 概念)
后置通知 完成资源关闭
<listenerclass>org.springframework.web.context.ContextLoaderLi stener</listener-class>
501号 雇员薪资管理系统的框图
表单 属性
login.jsp 提交: <form>xxx</form>
失败
LoginAction.j ava
内存(applictonC id userService(ox1 byeService(ox23
1.当ClassPathXmlApplicationContext("applicationContext.xm spring容器对象被创建,同时 applicaionContext.xml中配置 bean就会被创建(内存[Hashmap/H erService us=(UserService) ac.getBean("userService");
浏览器: http://xxxxx/login.do
action
ie
ie
ie浏览器
web服务器
公共评论板的框架
login.jsp
Login.java
Type.java domain对象
TypeServiceIn BasicServiceInt ter.java 继承 .java 基础接口
实现
TypeService .java
<bean id>< <property ref=""></propery> </bean>
sDao/Hiber
dao层
关系模型和对象模型之间的阻抗.
web 层 actห้องสมุดไป่ตู้on[解决action单例
问题] 业务层 service/domain/dao 持久层: 数据 源,localSessionFactory
交叉功能(切面)
织入(过程)
类(可以完成写日志的功能 [术语通知,spring 了五种通知.] 前置通知before函数 ...写日志代码
代理对象(spring提供了 ProxyFactoryBean).该对象只需配置 而不要写.使用到动态代理技术
代理接口,完成代理任务. 连接点->切入点 sayHello(){
spring本身提供的特殊 bean 1.实现了 BeanPostProcessor的后 置处理器 2.PropertyPlaceholderC onfigurer
自己写出bean Dog, Master
张三写好的bean
xx.properties. xx=xxx