1 什么是数据库
1)SQL(结构化[查询]语言)
2)存储大量数据的容器,且按照一定的规则顺序,叫数据库
3)操作数据库的工具,可以使用SQL命令
2 各种常用数据库简介
Oracle------Java(四天)
SQLServer---C#(Sharp)
IBM---------DB2数据库/WebSphere应用服务器BEA---WebLogic MySQL-------免费/收费版本
*3 MySQL数据库的卸载,安装,设置,进入和退出
卸载
---停止MySQL服务
---删除MySQL程序
---删除d:/上的MySQL文件夹
安装
设置
---参见<
进入
---c:\>mysql -u root(用户名) -p回车
enter password:****回车
mysql>表示你已进入mysql软件提供的客户端程序
退出
---mysql>exit回车
Bye
4 SQL[通用/专用]与数据库的关系
通用SQL:能够在所有数据库中使用,无需任何修改
专用SQL:只能在特定的数据库中使用
5 数据库服务器、数据库和表的关系
1)数据库服务器->多个数据库->多个表->多个数据
2)参见<<服务器_数据库_表的关系.JPG>>
*6 创建/使用/查看/删除数据库
创建:create database if not exists 数据库名;
使用:use 数据库名;
查看所有:show databases;
查看某个:show create database 数据库名;
删除某个:drop database if exists 数据库名;
7 数据在数据库中的存储方式
参见<<对象世界_关系世界.JPG>>
8 修改、备份、恢复数据库中的数据
修改:alter database 数据库名character set gb2312
备份: c:\>mysqldump -u root -p 数据库名> d:\xx.sql回车
enter password:****回车
注意:该命令是mysql专用,必须在winow平台中运行
恢复:mysql:>source d:\xx.sql;
注意:该命令是mysql专用,必须在mysql平台中运行
恢复的是数据库中的表和表的内容
9 MySQL支持的常用数据类型简介
日期/时间:date/datetime/------'yyyy-mm-dd hh:mm:ss'
timestamp-----------'yyyy-mm-dd hh:mm:ss',在插入数据时,要是不指明该列,默认是当前系统时间
字符类型
0-65535字符(中英)-------varchar(变长) 或char(固长)
>65535字符------text类型(mysql特有)
>>tinytext(255B)
>>text(64K)
>>mediumtext(16M)
>>longtext(4G)
二进制类型(多媒体)
------blob类型
>>tinyblob(255B)
>>blob(64K)
>>mediumblob(16M)
>>longblob(4G)
数值:
整数(有符号/无符号)
tinyint/smallint/mediumint/int/bigint-->1B/2B/3B/4B/8B
浮型(有符号/无符号)
float/double/decimal
*10 创建/查看/修改/删除表
创建:create table if not exists 表名;
查看:desc 表名;
修改:alter table 表名;
删除:drop table if exists 表名;
*11 MySQL解决插入中文乱码问题(WindowXP/7平台)
//显示MySQL数据库中字符编码集
show variables like 'character%';
//设置输入编码方式
set character_set_client=gbk;
//设置输出解码方式
set character_set_results=gbk;
//建议修改my.ini配置文件
*12 表的增删改操作
增加:insert into 表名(字段1,字段2) values(字段1的值,字段2的值)
更新:update 表名set 字段1=字段1的值,字段2=字段2的值where 字段=条件
删除:delete from 表名where 条件
truncate table 表名
*13 表的查询操作
select [必选]
from [可选] *
where [可选]
groub by [可选]
having [可选]
order by[最后][可选]
where PK having
----------------------------------------
where:
记录过滤器,只针对每条记录,不针对分组记录
通常出现在from子句后面,可有可无
where不能独立存在,(没有from,不能单独使用where)
没有where是允许的
having:
分组过滤器,只针对分组,不针对每条单独记录
通常出现在groub by子句后面,可有可无,
having不能独立存在,(没有group by,不能单独使用having)
没有having是允许的
----------------------------------------
14 常用复合函数[通用SQL]
>>count() :NULL自动过滤,不参与运算
>>sum():NULL自动过滤,不参与运算
>>avg()
>>max()
>>min()
1 表的完整性
(1)实体完整性:每条记录有一个唯一标识符,通常用无任何业务含义的字段表示
(2)参照完整性:一张表的某个字段必须引用另一张表的某个字段值(外健),主要针对多张表
(3)域完整性:域即单元数据,域中的数值必须符合一定的规则
2 键的概念
(1)单一主键:只有唯一字段(推荐)
(2)组合主键:由多个字段组合起来,形成唯一字段
(3)外键:针对多张表之间的关联
3 主键约束的特点
>>在MySQL中,通过id int(5) primary key来定义主健
>>主键非空,且值唯一
>>在MySQL中,删除主健是alter table customer drop primary key(一个表中只有一个主键) 删除主键后,不能插NULL值,但可插重复值
>>MySQL中可以对主键设置自动从1开始增加,以后就无需对id主键显示设置值,由系统自动产生。
id int(5) primary key auto_increment,
如果显示指明id值,则系统不会取默认值,用显示的id值去覆盖系统默认值
>>主键体现实体完整性,通常用一个没有任何业务含义的单独字段表示
4 唯一约束的特点
>>name varchar(20) unique
>>值不能重复
>>NULL能插入多次,但"NULL"串只能插入一次
5 非空约束特点
>>name varchar(20) not null,默认可插入null值
>>值不能为NULL,而不是"NULL"串
6 外健约束特点
*7 多表关联关系种类
>>一对一双向关系
先删后含有外健的表,再删除无外健的表
对象世界可以是单向或双向关系,但关系世界有且只有单向关系,不能出现双向关系,原因是不能删除某张表的信息
外健放置任意方
>>一对多双关系
外健放置多方
>>多对多
建立中间表,中间表中存放二个单方表的外健,这二个外健同时又是联合主键
8 什么是JDBC?为什么要使用JDBC?
>>JDBC(Java连接数据库的规则,可以理解为接口)
是SUN公司开发出的一套用Java程序连接各种各样关系型数据库的规则
>>如果不使用JDBC的话,在Java领域,程序员就得根据不同的数据库写一个专用的应用程序,代码移植性差。
如果程序是基于JDBC规则去编程,那么只要实现了JDBC规则的数据库驱动,那么Java 应用程序都有做到代码移值性高
>>数据库驱动是免费开源的,只能实现了JDBC规则的数据库厂商,都有对应的数据库驱动程序,项目中,需要访问哪个数据库
就得将哪个数据库的驱动导入到工程中
*9 祥解JDBC连接数据库的各个步骤
1)注册数据库驱动
//通过反射加载"com.mysql.jdbc.Driver"字符串所对应的类[表面]
//向驱动管理注册一个专用于访问MySQL数据库的驱动[本质]
//处好:
//A:只需要向DriverManager注册一次MySQL驱动
//B:无需import导入MySQL驱动类的包,因为以下代码只是一个字符串而以Class.forName("com.mysql.jdbc.Driver");
2)取得数据库连接
//访问数据库的URL(包含主协议名:子协议名://数据库位于的IP地址:数据库端口号/数据库
String url = "jdbc:mysql://127.0.0.1:3306/mydb1";
String username = "root";
String password = "root";
//取得与MySQL数据库的一个连接
Connection conn = DriverManager.getConnection(url,username,password);
3)创建Statement对象,目的是封装发送到数据库的SQL命令
Statement stmt = conn.createStatement();
4)//发送SQL命令到MySQL数据库系统,并将执行的结果收集到Set集合中
ResultSet rs = stmt.executeQuery("select * from user");
5)迭代结果集中的数据
/*
* ResultSet中就是SQL命令执行的结果,此时光标位于第一条记录之前,
* 可以通过ResultSet.next()方法,将光标下移,如果此时光标所在的行
* 有记录存在,则返回true,否则返回false。
*/
//迭代
while(rs.next()){
/*
* 光标位于哪一行,就可以取得哪一行的数据,
* 取数据要以列为单位,一个个取
*/
int id = rs.getInt("id");
String name = rs.getString("name");
String gender = rs.getString("gender");
float salary = rs.getFloat("salary");
System.out.println(id+"-"+name+"-"+gender+"-"+salary);
}
6)在完成业务需要的情况下,尽早关闭用过的连接对象
10 JDBC的六个固定步骤(以查询为例)
>>注册数据库驱动(通过反射)
>>获取数据库连接
>>创建封装SQL命令的对象(Statement或PreparedStatement)
>>执行SQL命令,并返回结果
-----insert/update/delete-----executeUpdate()
-----select-------------------executeQuery()
-----drop/alter/create--------executeUpdate()未完继续。。。
>>处理结果集
>>关闭所过用的连接资源
*11 使用JDBC完成CURD操作
>>在查询操作时,可能在使用Statement对象时,会发生SQL注入问题
>>我们可以使用PreparedStatement对象来解决SQL注入问题
1 Statement和PreparedStatement的区别(理触)
>>Statement对象是封装SQL命令的对象,它是父接口,PreparedStatement也是封装SQL 命令的对象,它是子接口
>>Statement对象无法解决SQL注入问题,PreparedStatement能够解决SQL注入问题>>Statement对象无?号站位符,参数需要通过人工拼接,注意'单号引'问题,
PreparedStatement可以使用?号站位符,无需参数人工拼接,不论什么类型,只需?号替代即可,简化SQL命令的编写(提倡)
>>Statement适合处理结构不同的SQL,PreparedStatement适合处理结构相同的SQL,例如:批量删除
*2 [细粒度]分层结构:Jsp+Servlet+Javabean+Jdbc+Mysql(注册和登录)
表现层register.jsp/jsp/css/js
控制层BankServlet.java/servlet
模型层User.java/狭义javabean或实体&值对象&域对象
--------------------------------------------------------------------------
业务层BankService.java/广义javabean
访问层BankDao.java/jdbc
数据层db.sql/mysql/oracle
*3 MySQL数据库[专用]分页语句
为什么要分页?
>>让用户体会分批显示所有图书(用户体验效果)
>>没必要将所有图书从数据库中一次查询出来,一次进行显示(系统效率)
分页的种类?
>>内存中算法分页
优点:速度快,通用性强
缺点:数据库数据较少,算法决定效率,内存开销大
>>数据库SQL命令分页
优点:内存开销少,只读取适当数据
缺点:使用某种数据库专用的SQL命令,不能通用,
MySQL分页语句?
select * from user limit ?,?
第一个参数:从第几条记录开始显示-1
第二个参数:需要显示几个记录
4 MySQL数据库[专用]存取大对象
>>大对象分为二类
1)大文本对象(CLOB/Text)
超过65535个字符
2)大二进制对象(BLOB/Blob)
多媒体数据
3)常用的API
CLOB:
存:pstmt.setCharacterStream(2,new FileReader(file),(int)file.length());
取:Reader reader = rs.getCharacterStream("content");
BLOB:
存:pstmt.setBinaryStream(2,new FileInputStream(file),(int)file.length());
取:InputStream is = rs.getBinaryStream("content");
5 批处理操作
1)当向数据库一次性发送多条SQL时,可以使用批处理,提交效率
2)Statement:
//将所有的SQL命令加入到批对象中
stmt.addBatch(sqlA);
stmt.addBatch(sqlB);
...
//一次性将批对象发送到数据库端执行
int[] iArray =stmt.executeBatch();
//清空批对象
stmt.clearBatch();
//适合对不同结构(insert/update/delete/)的SQL命令做批对象处理
但并不是说,Statement不能处理相同结构,只是处理相同结构效率底,每次都要对相同结构的
SQL进行编译处理
2)PreparedStatement:
//将所有的SQL命令加入到批对象中
pstmt.addBatch();
//一次性将批对象发送到数据库端执行
int[] iArray =pstmt.executeBatch();
//清空批对象
pstmt.clearBatch();
//适合对相同结构(都是insert/都是update/都是delete/)的SQL命令做批对象处理
但并不是说,PreparedStatement不能处理不同结构,只是处理不同结构效率底,
因为不同结构的SQL每次都要编译。
4)结论:如果处理相同结构的SQL用PreparedStatement;反之用Statement对象。
1 事务的概念
1)在逻辑上几个相关的子操作,看作一个整体,要么都成功,要么都失败,不存在一个成功,一个失败的情况。
可以将这二个子操作看作一个原子。叫事务(transaction)
2)任何一个数据库都有事务的支持,只是事务支持的强若程度不同
3)任何一个使用JDBC操作数据库的SQL命令,在默认情况下,隐式的开始和提交事务
4)MySQL专用的显示处理事务的命令:
开始:start transaction
提交:commit;
回滚:rollback;
5)一旦显示使用start transaction事务命令,就必须显示使用commit事务命令
6)在事务期间的所有操作,都有可能被回滚,在默认情况下,回滚到事务开始的地方,
一旦事务提交后,在事务期间的所有操作,就确定了。
7)JDBC的操作事务API
开始://设置显示事务开始[start transaction]
conn.setAutoCommit(false);
提交://设置显示事务提交[commit]
https://www.doczj.com/doc/7a5693010.html,mit();
回滚://事务回滚[commit]
conn.rollback();
conn.rollback(回滚点);
回滚后,记得提交
2 事务的特性(ACID vs CURD)
>>原子性(A)
事务中的各个子操作,看作一个整体,结果要么成功,要么失败。
*>>一致性(C)
转帐前后,salary总额是不变的,即由一个一致的状态变到了另外一个一致的状态。
>>持久性(D)
事务一旦提交,数据就应永久的存在于数据库中,不会修改。除非自行修改。
**>>隔离性(I)
当多个线程并发访问数据库表时,每个线程应该有独立的事务,不应该相互干扰。
3 三个缺点(违背隔离性)
>>脏读(轻)
一个线程看到了另一个线程[尚未提交]的事务
强调:读"尚未提交",记录数未变
*>>不可重复读(中)
一个线程多次查询同一张表记录,多次查询的结果不相同。
强调:读"已提交",记录数未变
**>>虚读/幻读[insert /delete/trancate](严重)
一个线程多次查询同一张表记录,多次查询的结果不相同。
强调:数量的增减
4 事务的隔离级别(解决方案)
>>事务隔离级别只针对当前线程
>>解决三个缺点的方案是:隔离级别
>>read committed-----------------------解决脏读
>>repeatabled read---------------------解决脏读/不可重复读(MySQL默认)
>>serializable-------------------------解决脏读/不可重复读/幻读
>>JDBC设置事务隔离级别的API
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
*5 <<银行业务>>-->"转帐"功能
表现层
控制层
模型层[实体]
业务层[广义JavaBean]
访问层[jdbc]
数据层[mysql]
一个线程在垮越多层的情况下,必须始终使用同一个connection对象,
*6 连接池
1)传统做法是找driverManager取连接对象,每个线程用完就丢掉,
2)将用完后的Connection对象,暂存起来,以备其它线程再次重用
3)为了优化JDBC获取Connection对象,我们使用连接池完供DAO获取Connection对象,
连接池具且管理其中所有Connection对象的功能,自动找DriverManager要连接
4)传统获取连接的数量有限,close()后只是释放资源,并不是将连接交还给DriverManager。
5)使用DBCP连接池(开源)
>>导入DBCP相关的3个jar包
>>导入DBCP相关的属性文件,dbcp.properties文件
>>DBCP默认一次找DriverManager要8个连接,当关闭Connection对象后,其是将该Connection对象
还回DBCP连接池,至于每次取8个中的哪个连接,不是由程序员说了算,而是由DBCP连接内部说了算
6)使用C3P0连接池(开源,项目中提倡使用)
>>导入C3P0相关的1个jar包
>>导入C3P0相关的XML文件,c3p0-config.xml文件
>>C3P0默认一次找DriverManager要15个连接,当关闭Connection对象后,其是将该Connection对象
还回C3P0连接池,至于每次取哪一个连接,是由C3P0连接内部说了算
1 元数据
>>什么是元数据
描述数据库/参数/结果集相关的信息,例如:数据库厂商,版本,等等
>>常用的API
DatabaseMetaData dbmd = conn.getMetaData();数据库元数据
ParameterMetaData psmd = pstmt.getParameterMetaData();参数元数据
ResultSetMetaData rsmd = rs.getMetaData();结果集元数据
>>对于结果集元数据返回的代码,是javax.sql.Types类的中间类型,它是连接Java类型和数据库类型的桥梁
*2 自己动手写一个JDBC简单框架
>>增/删/改操作------------------针对的是executeUpdate()方法,MyDbUtil.update(...)
>>查询操作----------------------针对的是executeQuery()方法,MyDbUtil.query(...)
--------查询某个用户,
--------查询所有用户,
*3 使用Apache—DBUtils框架
>>DBUtils框架/工具是对JDBC的简单封装,目的是简化传统JDBC代码的开发,提高编程效率
>>创建DBUtils框架/工具的常用API
1)QueryRunner()
2)QueryRunner(DataSource)
3)增/删/改------QueryRunner.update(),及重载
runner.update(conn,sql,params);
自动关闭PreparedStatement对象,Connection对象需要程序员关闭
runner.update(sql,param);
自动关闭PreparedStatement对象和Connection对象
思考:为什么会在update/query(conn)中重载带有conn的方法呢?
在不使用ThreadLocale
4)查------QueryRunner.query(...),及重载
>>测试查询需要使用的各种实现类
ResultSetHandler是接口:
*BeanHandler:封装第一条记录到JavaBean
*BeanListHandler:封装每一条记录到JavaBean,以List方式返回
*ArrayHandler:封装第一条记录到数组,通过索引号访问每列的值,下标从0开始
ArrayListHandler:封装每一条记录到数组,以List方式返回
MapHandler:封装第一条记录到Map中,key是字段名(String类型),value是记录值(Object类型)
MapListHandler:封装每一条记录到Map中,以List方式返回
*ScalarHandler:当最终结果是有一行一列的情况下使用
结果如果是整型,返回类型是Long,例如select count(*) from account
结果如果是浮型,返回类型是Double,例如select sum(salary) from account
结果如果是浮型,该字段在表中存在,返回类型是Float,例如select salary from account
Ctrl + Shift + T:快速查询某个类的源码
4 银行业务+ 事务+ 隔离级别
-------开户(姓名唯一)
-------存款
-------退出
5 总结:ThreadLocale
项目中,每个线程应该独享各自的对象,互不干扰,此时可以使用ThreadLocale
项目中,在不使用数据库本身特有的设置情况下,当几个线程同时访问同一条记录时,可以"Serializable",
但速度较慢。
1 为什么需要使用自定义标签
1)为了替换在JSP页面中的脚本符号(<%%>)
2)补充JSP内置标签的不足
3)使用自定义标签的好处如下:
>>整个JSP页面中,都是由标签成组,达到整体统一
>>自定义标签和普通标签不同,它底层是一个类,含义业务逻辑功能
*2 如何创建自定义标签
参见<<自定义标签的开发步骤.txt>>
开发方式一:实现SimpleTag接口
开发方式二:继承SimpleTagSupport类,重写doTag()方法(提倡)
3 标签处理原理
>>空参构造(每次请求标签所在的页面,都会创建标签对象,它是非单例的)
>>setJspContext(JspContext pc) Web容器会将当前JSP页面封装成JspContext对象,通过该方法传给标签处理类
通常都要转成PageContext子类
>>doTag() 该方法是最重要的方法,标签的执行,底层都是执行该方法
>>setParent(JspTag parent) 如果某个标签有父标签,Web容器会调用setParent()将父标签
传入到子标签对应的标签处理类中
如果某个标签无父标签,Web容器不会调用。
>>setJspBody(JspFragment jspBody) 如果标签中有内容存在,Web容器会调用setJspBody()方法,将内容封装成JspFragment对象传入到标签处理类中。
如果标签中无内容存在,Web容器会不调用setJspBody()方法
我的实验结论:setJspContext执行在属性赋值和doTag()之前
4 标签的应用
1)执行标签体,输出到浏览器
JspFragment.invoke(null)
2)不执行标签体,不输出到浏览器
//JspFragment.invoke(null)
3)不执行标签体后的内容
throw new SkipPageException()
4)将内容输出到缓存
jspFragment.invoke(java.io.Writer字符输出流);
5)输出到浏览器的二种方式:
>>JspFragment.invoke(null)
>>PageContext.getOut().writer()
*5 标签案例
1)开发一个防盗链标签
>>Servlet版本
>>JSP自定义标签版本
2)开发一个仿if标签
3)开发一个仿if-else标签
4)开发一个转义标签
5)打包所有标签
*6 常用JSTL标签库
>>JSTL全称(Java Standard Taglib Language)
>>JSTL一共有五类标签
(1)核心标签c:
(2)函数:fn:
(3)国际化:fmt:
>>常用核心标签:
(1)
(2)
(3)
(4)
(5)
1 常用JSTL核心标签
1)Java Standard Taglib Language
2)核心标签库
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
2 EL的作用
1)Expression Language
2)和JSTL一起替代JSP页面中的脚本,
在某些情况下,EL可以简化JSTL的操作
EL补充了JSTL的在运算上,和逻辑上的不足
3)EL作用(JSTL不能够做到的)
>>获取数据
普通变量/JavaBean变量/集合/数组
>>执行运算
算法/关系/逻辑
三元运算符:?:
空运算符:empty 判断变量是否为null或""
>>获取web开发常用对象
回顾JSP9个内置对象:
page/request/session/appliction(域对象)
out/response
config/exception
pageContext
>>调用Java方法
${el:filter("")}
3 EL的11个内置对象
EL的11个内置对象(直接使用)
*pageContext:例如${pageContext.request.contextPath},获取当前web应用的虚拟路径,即/day18
又是JSP9个内置对象之一
pageScope:
requestScope:
sessionScope:
applicationScope:
以上四个EL内置对象,不是域对象,只能绑定到域对象中的Map集合。
param:
paramValues:
以上二个EL内置对象,专用于获取请求参数的值,包括表单参数。
header:
headerValues:
以上二个EL内置对象,专用于获取请求头的值,例如:referer/host/accept/user-agent/connection/..
cookie:
以上一个EL内置对象,专用于获取浏览器存储的cookie值
initParam:
以上一个EL内置对象,专用于获取在web.xml文件中配置的Web初始化参数
4 自定义函数和自定义标签有何不同?适合于什么样的场景?
1)参见<<自定义函数和标签的区别.JPG>>
2)自定义函数[比较适合]处理与字符串相关的操作,例如:大小写转义,字符串截取,确保自定义函数类,不要含义其它API
自定义标签[比较适合]处理与Web应用相关的操作,例如:获取客户端IP,向浏览器输出内容
5 EL内置函数
>>导入Jstl.jar和Standard.jar
>>在JSP页面中声明:<%@ taglib uri="https://www.doczj.com/doc/7a5693010.html,/jsp/jstl/functions" prefix="fn" %> >>EL内置函数都是字符串的操作
>>常用函数如下:
${fn:toUpperCase()}
${fn:toLowerCase()}
${fn:trim()}
${fn:length()}
${fn:split()}
${fn:join()}
${fn:indexOf()}
${fn:contains()}
${fn:startsWith()}
${fn:endsWith()}
${fn:replace()}
${fn:substring()}
${fn:substringAfter()}
${fn:substringBefore()}
6 静态数据国际化
1)什么是国际化
根据不同区域,不同国家,不同用户,在同一个网页上显示不同的结果
结果包括:文字/颜色/样式等等
2)常用的标签
1 日期时间格式化[Calendar和DateFormat]
1)国际化需要解决二项内容
>>静态数据
>>动态数据(日期/时间/数值)
2)DateFormat类
中国
short格式:12-10-8
default格式:2012-10-8
medium格式:2012-10-8
long格式:2012年10月8日
full格式:2012年10月8日星期一
2012年10月8日星期一9:57:11[date是full格式(+) time是default格式或medium 格式]
美国
short格式:10/8/12
default格式:Oct 8, 2012
medium格式:Oct 8, 2012
long格式:October 8, 2012
full格式:Monday, October 8, 2012
Monday, October 8, 2012 9:58:17 AM[date是full格式(+) time是default格式或medium格式]
3)format方法
将Date转成String
4)parse方法
将String转成Date
项目中,不要使用parser方法来验证日期是否正确,
而应使用BeanUtils工具来判断
5)日期时间国际化标签
type="date或time或both(日期和时间一起显示)"
2 根据星期几改变背景色[background-color:指定的颜色]
3 数值格式化[NumberFormat]
1)数值转字符串
format()
2)字符串转数值
parse()
3)数值标签
4 字符串格式化[MessageFormat]
1)${0}
2)${0,date或time}
3)${0,date或time,full或long}
4)占位符从0开始,原理上不限个数
5)
*5 文件上传表单
1)上传本质上是一个复制的过程
2)上传表单的要素:
>>表单以POST方式上传
>>表单项的每个元素取一个名字
>>选择项使用file类型
*>>enctype="multipart/form-data"
加上enctype以后,就可以将上传的文件,经编码后,随机请求体,一起传到服务端如果没有enctype,那么上传的文件,不会随机请求体,一起传到服务端
*6 上传文件的细节
(1)中文乱码的问题
解决普通字段的中文:fileItem.getString("UTF-8");
解决上传字段的中文:upload.setHeaderEncoding("UTF-8");
(2)上传单个文件的大小的问题
long size = fileItem.getSize();
if(size > 5 * 1024 * 1024){
throw new FileSizeException();
}
(3)只能上传JPG或jpg文件
String contentType = fileItem.getContentType();
image/pjpeg----JPG
(4)在上传成功情部下,将临时文件的删除的问题
fileItem.delete();
注意:一定在要关闭流后删除
(5)为安全将上传的文件放入客户端无法直接访问的目录中的问题
将upload和temp目录放置在/WEB-INF/目录下
(6)在同一个目录下上传相同文件名的问题
在真实文件名前面拼接UUID字符串。
(7)单个目录下文件过多的问题
采用算法在upload目录下,产生0-15共16个文件夹,
在每个子文件夹中存在上传的文件
想一想,其它的算法?
(8)上传多个文件的问题
在每个文件上传成功后,再显示上传成功提示
(9)上传多个文件的界面问题
通过JS解决
(10)限制上传的文件数量,参见<<限制上传文件数量.JPG>>
通过JS解决
//创建DiskFileItemFactory
DiskFileItemFactory factory = new DiskFileItemFactory();
//人工设置缓存大小为100K,默认10K
factory.setSizeThreshold(100*1024);
//人工设置临时文件的目录
ServletContext context = this.getServletContext();
String tempPath = context.getRealPath("/WEB-INF/temp");
String uploadPath = context.getRealPath("/WEB-INF/upload");
factory.setRepository(new File(tempPath));
//创建ServletFileUpload
ServletFileUpload upload = new ServletFileUpload(factory);
//设置编码方式为UTF-8
upload.setHeaderEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
try {
//解析上传文件表单,将表单中的每一个表单项,封装成FileItem对象
List
//迭代
for(FileItem fileItem : fileItemList){
//如果是普通字段
if(fileItem.isFormField()){
//取得表单项名字
String fieldName = fileItem.getFieldName();
//取得表单项值
String fieldValue = fileItem.getString("UTF-8");
}else if(!fileItem.isFormField()){
//取得上传文件的大小
long size = fileItem.getSize();
if(size > 5 * 1024 * 1024){
throw new FileSizeException();
}
//取得上传文件的类型
String contentType = fileItem.getContentType();
if(!"image/pjpeg".equals(contentType)){
throw new FileTypeException();
}
//取得上传文件名
String fileName = fileItem.getName();
//取得取得真实文件名
String realFileName = FileUtil.getRealFileName(fileName);
//将真实文件拼接UUID
String uuidRealFileName =
FileUtil.makeUuidRealFileName(realFileName);
//取得上传输入流
FileUtil.copy(uploadPath,fileItem,uuidRealFileName);
//将上传成功的临时文件删除
fileItem.delete();
}
}//end of for loop
Filter链的执行顺序和filter-mapping的位置有关
如果Filter没有了空参的构造方法,那么就不会创建出Filter实例
Web初始化的时候就调用init方法
特别注意chain.doFilter()方法和request,response的位置问题
禁止缓存:
response.setDateHeader("expires",-1);
response.setDateHeader("cache-control","no-cache");
response.setDateHeader("pragram","no-cache");
设置缓存:
response.setDateHeader("expires",存储时间);
response.setDateHeader("cache-control",存储时间);
response.setDateHeader("pragram",存储时间);
《工作分析报告》 工作分析报告(一): 培训工作总结分析报告 一、所规划培训的课程及部门安排 1、已提交的培训规划表及签字确认的部门共有8个。 2、因部门内部任务规划及相关原因确认本年度不开展内部培训的中心部门共有2个。 3、20xx年度确认开展的培训中心及部门共有8个。 二、培训工作成绩概述 1、总部主要成果: (1)编制20xx年度《新员工入职培训课程》 人资中心打破以往只有培训专责人员独立完成新员工入职培训课程工作,实现人力资源模块负责人独立宣导模块课程的专业局面,重新编制模块培训课件,深入为新员工讲解公司管理细则,使新员工感受到公司的规范性、归属感。 (2)完成了公司20xx年度培训规划的统筹汇总工作 鉴于过去中基层培训工作一向是人力资源培训工作的薄弱环节,人力资源中心在20xx年始便开展各中心部门关于内部培训需求调查分析工作,搜集各部门的实际培训要求,综合分析构成最终的《20xx年培训规划总表》,明确培训方向和具体培训资料。 (3)监督及支持各中心部门的内部培训工作人力部门主动跟进业务部门的培训工作促使培训目标的实现。 (4)各中心部门按部门任务规划编制培训课程,提高部门人员的岗位技能及内部沟通。 2、事业部 由于事业部培训规划刚终审不久,暂时只完成展新员工入职培训工作。人资中心将会加强对基地培训工作的监督。 三、存在的问题 1、授课方式方法有待改善。 部分课程专业性强、资料较枯燥,且授课方式单一,员工在上课时无法充分理解讲师所授资料,培训效果差。3、管理力度不足。 培训与考勤、转正、晋升等一系列考核工作不挂钩,促使培训的重要性及管理力度大大降低,相应的配套措施、考核机制也相对缺乏,处罚不及时导致处罚威慑力不足。
第一章 物理化学的定义,相变化(物质在熔点沸点间的转化) 物理化学的基本组成:1化学热力学(方向限度)2化学动力学(速率与机理)3结构化学 物理化学的研究方法、热力学方法、动力学方法、量子力学方法 系统、环境的定义。系统的分类:开放系统,封闭系统,隔离系统 系统的性质:强度性(不可加),广延性(可加)。系统的状态 状态函数及其性质:1单值函数2仅取决于始末态3全微分性质。 热力学能、热和功的定义 热分:潜热,显热。功分:膨胀功、非膨胀功。 热力学第一定律的两类表述:1第一类永动机不可制成。2封闭体系:能量可从一种形式转变为另一种形式,但转变过程中能量保持不变。、 恒容热、恒压热,焓的定义。PV U H def +≡ 恒容热:①封闭系统② W f =0 ③W e =0 恒压热:①封闭系统②W f =0 ③d p =0 理想气体的热力学能和焓是温度的函数。 C, C V , C V ,m , C P , C P,m 的定义。 △u =n C V ,m (T 2-T 1) △H=n C P,m (T 2-T 1) C V ,m =a+bT+cT 2+…/ a+bT -1+cT -2 +… 单原子分子C V ,m = 23R C P ,m =25R 双原子分子C V ,m =25R C P ,m =2 7R γ单= 35 γ双=5 7 C P,m - C V ,m =R R=8.3145J ·mol -1·k -1 可逆过程定义及特点:①阻力与动力相差很小量②完成一个循环无任何功和热交换③膨胀过程系统对环境做最大功,压缩过程环境对系统做最小功 可逆过程完成一个循环 △u=0 ∑=0W ∑=0Q W 、 Q 、△u 、△H 的计算 ①等容过程:W =0 Q =△u △u=n C V ,m (T 2-T 1) △H=n C P,m (T 2-T 1) ②等压过程:W =-Pe(V 2-V 1) Q=△H △u=n C V ,m (T 2-T 1) △H=n C P ,m (T 2-T 1) ③等温过程:W=-nRTln 1 2V V Q=-W △u=△H=0 ④绝热可逆过程:W=n C V ,m (T 2-T 1) /?? ? ???? ?-??? ? ??--1112111γγv v v p Q=0 △u=n C V ,m (T 2-T 1) △H=n C P ,m (T 2-T 1) 21p p =(12v v )γ 21T T =(12v v )1-γ 21T T =(2 1p p ) γ γ1 - 相变化过程中△H 及△u 的计算△u=△H-P △V=△H-nRT 见书1-10 化学计量系数ν 化学反应进度??= B νB n ?(必与指定的化学反应方程对应) 化学反应热效应定义, 盖斯定律:一个化学反应,不管是一步完成或是经数步完成,反应的总标准摩尔焓变是相同的,即盖斯定律。 标准摩尔反应焓变:)(H m T r θ ?= ∑B B θν m H (B ,,β T ) 化学反应θ m H r ?的计算:1 )(H m T r θ ?= ∑?B B θν m f H (B ,,β T ) θ m f H ?:在温度为T ,
struts1开发学习笔记 使用一个简单的例子记录struts1开发过程。 0、 描述 主要功能描述: index 界面上只有两个超链接,分别可以打开录入产品界面和显示产品列表界面。 newProduct.jsp 是录入的界面,searchProduct.jsp 是查询列表的界面。 ProductAction.java 是处理逻辑的action 简单描述流程图: 1、 构建环境 在Myeclipse 中,新建一个工程StrutsTest ,选择该工程,右键Myeclipse->add sruts capapibality ,弹出界面,选择struts1.2支持。如下图所示: 添加完struts 支持后,lib 目录下会增添struts 的jar 包、增添struts 的配置文件: /WEB-INF/struts-config.xml 、同时在web.xml 中增添了struts 的配置。 2、 代码编写
2)创建工具类Util.java,从数据库连接池中获得连接。需要两个步骤 第一步:在WebRoot/META-INF/下新建一个context文件,通过jndi方式配置数据源, 第二步:在util类中读取配置获得连接,util.java如下:
3)创建工具类EncodingFilter.java,自定义过滤器,并在web.xml中配置,参考web.xml 配置中内容。EncodingFilter.java的内容如下:
4)修改web.xml,指定首页为index.jsp。文件内容如下:最后定义了一个fileld 的过滤器,是用来过滤字符编码的,后面会提到。
《工作分析》精讲七官方笔记目录 一、本节课知识点结构图 二、本节课知识点总结 三、配套练习题 一、本节课知识点结构图本节课内容包括:(1)第七章;(2)第八章8.1
二、本节课知识点总结 1、岗位评价【名词解释、填空】 (1)狭义的岗位评价是指通过设计评价指标、评价标准,对组织中所需的岗位数量进行设计,进而逐一对岗位进行分析,确定岗位的价值量高低的一系列方法和技术的总称。 (2)岗位是组织的最小构成单位。 (3)岗位名称是区分某一岗位与其他岗位的首要因素,是一种身份的象征。(4)岗位职责是指一个岗位所要求的需要去完成的工作内容以及应当承担的责 任范围。
2、岗位评价的特点【简答题】 (1)对岗不对人 (2)岗位评价不考虑该岗位上任职者个人的工作能力或在工作中的表现(3)岗位评价衡量各岗位在企业内部的相对价值 (4)所选定的评价要素应该是共同的、容易理解的、普遍适用于所有被评价岗位的 (5)岗位评价不是一种标准,而是一种方法论,是可以评定岗位价值的人力资源管理工具 3、岗位评价的原则【简答、选择】 (1)评价因素针对性——针对不同企业实际情况 (2)评价因素互斥性 (3)统一性——不同岗位评价方法统一 (4)及时反馈纠偏性 (5)保密性 4、岗位评价的作用【简答题】 (1)岗位评价能够对岗位进行科学定量测评,便于比较岗位之间的相对价值的高低。 (2)确定公平合理的薪资结构。 (3)岗位评价可以使各个工作与企业对应的报酬相适应,从而使员工能够明确自己的职业发展和晋升途径,便于员工理解企业的价值标准。
5、岗位评价包括四项基本指标【选择、填空】 (1)责任指标 (2)岗位性质指标 (3)知识技能指标 (4)工作环境指标 6、岗位评价指标确定的原则【简答题】 (1)评价指标应反映公司的价值观。 (2)评价指标应普遍适用于所有岗位。 (3)评价指标不应在含义上有覆盖。 (4)评价指标应该获得管理层与员工的共同认可。 7、排序法【名词解释】 排序法是指由评价人员按照自己的判断,根据一些特定的标准进行整体比较,从而将岗位按照相对价值进行排列的一种方法。 排序法是使用较早、操作最简单、非定量的岗位分析方法。 8、分类法【名词解释】 分类法是指建立一个具有不同级别标准的岗位级别体系,然后将每一个岗位与标准进行比较,进而将其纳入合适等级的岗位评价方法。
Struts2项目的构建与配置 1.配置struts.xml (1)配置struts.xml可以参考下载的struts-2.3.14.1-all.zip解压后的apps文件夹下的 参考项目的struts.xml文件。 (2)主要的配置如下:
工作分析笔记 第一章工作岗位分析(是人力资源的管理的基础工作)的 起源与发展 1 工作岗位分析在人力资源管理中的重要性(即作用) 1)增强人力资源规划的准确性和有效性 2)确保组织中的所有任务得到明确的安排 3)有助于主管和员工明确员工的职责和相关工作任务 4)有助于工作再设计和员工职业生涯发展 5)为员工的绩效考核提供了客观的工作标准 6)为有效性,低成本的培训指导方向 7)为工作岗位招聘提供了有效的工作信息 8)明确管理者和下属的汇报关系 补充 A 统一指挥:每个雇员应当只接受来自一位上级的命令,有助于组织目标统一性 B 统一领导:每组具有同一目标的组织活动,应当在一位管理者一个计划的指导下进行 9)明确工作岗位在组织中的相对价值,保持内部公平性 薪酬公平分包括: A 外部公平性:将组织内的薪酬水平与外部市场同等劳动力价格进行比较而确定 B 内部公平性:通过员工所在的工作岗位与其他工作岗位所承担的工作和所需投入进行比较而确定 C 投入公平性 2 工作岗位分析在人力资源管理中的应用 (一)员工招聘,选拔方面 通过工作分析确定组织空缺职位所需承担的工作任务,进而确定所需招聘员工基本条件的选拔标准,为组织招聘,筛选新员工提供客观基础,通过工作岗位分析选择有效的测试方式和内容组织测试,能让组织预测招聘者的工作能力,避免招聘盲目性,减少组织新进员工因知识,技能极端不足造成不必要的高培训成本,降低因招聘不当引发的高流动性 (二)岗位定编方面(岗位定编定义:合理确定某种类型的岗位人员配备数量,定编的依据是客观的组织任务量和现职员工的平均绩效) 通过客观科学的进行工作分析,科学的衡量组织岗位的配备数量 (三)培训方面 需要通过工作分析明确培训目标,培训内容,培训方法及培训效果,将培训与日常生活结合起来以提高工作效率,降低成本 (四)绩效考核方面 通过工作分析明确衡量岗位工作绩效的方法和标准,以及任职者是否达到期望的绩效标准,通过绩效改进计划提高绩效产出 (五)任职资格方面 通过工作岗位分析,准确确定任职者应具备的知识,能力,对应聘者和现任任职者执行工作任务能力的分析得出有关改进绩效,所需提供相应培训的相关信息,从而提高任职者的工作适应性与工作产出能力,为组织更好的利用人力资源做好准备 (六)职业生涯发展方面 通过工作岗位分析寻找最适合员工发展的方法,从而尽力为员工提供有吸引力的工作,提高员工对工作的兴趣,从而增加工作投入,为组织提供更多产出 (七)薪酬管理方面 通过工作分析,工作评价,能对组织内部和岗位的相对价值进行确定,将组织中的相关岗位工作内容,任职者资格与外部劳动力市场的薪酬水平进行比较,从而确定组织中的纵横薪酬体系,建立内部公平,外部具有相对竞争力的薪酬水平,有助于提高员工的工作满意感和投入度 3 工作岗位分析的内容(从工作分析中直接产生的结果是工作说明书和岗位规范) 1)工作职责与工作活动 2)工作上下关系 3)工具,机器,仪器和工作辅助设备 4)工作如何完成 5)对工作岗位任职者的要求 6)工作关系 7)与工作相关的事物 泰勒的科学管理原理方法确定了: A 工作的标准作业方法B 选择标准的作业工具 C 确定标准作业时间 D 制定单位时间的标准工作量 员工职级制---以工作分析为基础 系统工作分析起源于19世纪末到20世纪初 泰勒--科学管理之父 工作分析发展: A 起源 19C末-20C初 B 创始 1911 管理学原理《科学管理原理》C 兴盛1964 民权法案反歧视运动 D 目前主流定量化与个性化 E 工作分析成就:管理的规范化与职业化要求 美国公民权利法实施---工作分析开始得到重视 工作分析、工作评价首先应用于--工商企业 20C 30年代,工作分析与评价方法在欧美企业产生、推行4 工作分析(岗位分析)定义:是指以工作岗位为研究对象,收集有关工作岗位的职责、任务、活动、标准,对履 行工作的任职者的资格要求、工作流程、工作完成的环境 信息,进行整理、分析、服务于某一特定目的的过程。 5 工作分析的层次 1 要素:指工作活动中除单个动作外的最小划分单位 2 任务:指为达到某一特定目标而进行的一系列相关的活 动或要素 3 职责:指特定的工作岗位所负责承担的某类工作任务的 集合 4 工作:a 工作任务b 一系列相互联系、职能类似或所需 水平相似的任务所组成的工作岗位,一个工作对应一项职 责或多项职责 5 职务和职位:职务指在某一组织中具有同等垂直位置的 一组工作岗位的集合,这一组工作岗位所承担的工作任务 和职责虽然不同,但具有可比的重要性 职务强调一个工作岗位所承担的任务,而职位更强调岗位 在工作组织中的上下位置和关系 6 职业:指某类具有相似特征的,人们赖以为生的工作类 型,指在不同的组织中存在的类似的工作类型 7 职系:指工作性质大体类似,但工作责任、难易程度不 同的一系列职位 8 职级:指职系中职责要求、工作任务有所区别的一系列 职位所组成的级别或指其中的某一个级别 9 职组:若干工作性质相似的职系组成的集合 6 工作岗位分析的流程 (一)工作岗位分析的准备阶段 包括:A 明确工作岗位分析的目的 B 选择 和培训工作岗位分析人员 C 选择工作岗位分析的方法和工具 D 与组织中的 相关成员沟通工作分析的目的和意义以及所需要的相关配 合工 (二)工作岗位分析的执行阶段 包括:A 选择工作岗位分析信息的来源( 1 任职者 2 任 职者群体 3 任职者同级相关岗位任职者 4 任职者上级) B 收集工作的有关信息 C 制定工作岗位分析文件 D 与相 关人员确认信息的准确性 (三)工作岗位信息的分析、整理阶段 最常见的工作分析结果为工作说明书(岗位说明书)和岗 位规范 (四)工作分析结果的运用和修订阶段(半年至1年内可 对工作分析结果检查、回顾将工作分析结果形成标准文件, 形成正式的工作说明书和岗位规范) 补: 工作分析可能遇到的阻力 A 组织成员不配合,调查工作不能及时按要求进行,影响 工作分析进度甚至造成整个计划的流产 B 由于组织成员在工作信息收集阶段配合不好,影响工作 分析质量,信息收集不全面,导致工作分析结果不准确和 可接受度较差 C 由于员工对工作分析目的不了解,提供不准确信息或者 不配合,使工作分析所获信息被人为的扭曲。 7 工作岗位分析的时机 1)组织环境的变化需要对组织结构进行调整 2)组织内部高层管理人员的变化可能需要对组织中工作进 行重新界定 3)组织业务发生变化后,组织工作流程变化可能引起对工 作分析的需求 4)组织中大规模的招聘需要对工作进行分析后确定所需要 招聘人员的基本要求 5)制定绩效考核标准时需要对工作岗位的职责进行界定, 明确工作产出的标准 6)制订员工培训计划时需要了解工作对员工的要求 7)在衡量工作岗位的相对价值时需要从工作分析中获取有 关工作的全面信息 8 工作岗位分析涉及组织中的人员及其角色 涉及人员:A 组织高层管理者 B 中层管理人员 C 工作岗 位分析人员 D 员工 E 工会 F 工作岗位分析顾问 (一)组织高层管理者的角色 A 建立工作岗位分析的需要,根据组织的发展状况,提出 工作分析的必要性,并在组织内发起工作岗位分析的工作 B 发布政策陈述,指示和进行其他沟通,向组织内传递有 关信息,倡导工作分析过程 C 为执行工作岗位分析的多方面工作授权,在组织内安排 相应的工作人员以协调组织工作分析过程 D 为实施计划建立时间框架,为工作岗位分析过程确定明 确的时间要求 E 密切注视工作岗位分析的全过程,并解决在工作岗位分 析过程中可能出现的各种冲突 F 为工作岗位分析过程提供持续的支持,包括有形的和无 形的 G 任命他人或亲自担任审核和认可工作程序,使工作分析 的结果与实际工作需要相结合 (二)中层管理人员的角色 A 在需要的情况下,协助人力资源管理专家实施工作岗位 分析计划 B 在必要的情况下参加工作岗位分析,为工作岗位分析提 供相关信息 C 在涉及工作岗位分析的员工沟通,增强员工对工作分析 过程的认可度 D 需要审核和认可工作岗位分析过程中有关工作岗位的职 责,任务,工作内容,活动以及工作流程的初期结果 (三)工作岗位分析人员的角色 A 根据工作分析的目的和预期结果开发信息收集方法,以 最有效方法获得所需信息 B 在调查阶段中收集数据,信息,分析所获结果 C 根据实际工作的进展,能从人力资源专业人士的角度研 究和开发可达目的因素,提供解决问题方案 D 根据信息收集过程和信息分析过程的结果,准备或参加 工作说明书等工作分析结果文件的编制 E 在团队中,工作分析人员应该能做到相互沟通,交流, 以监督或协调工作委员会的工作 F 在需要时应能参与工会谈判,向工会结实员工对工作分 析的过程和结果中产生的有关问题 (四)组织中员工的角色 A 参加数据收集(填写调查问卷,参加工作分析面谈) B 参与工作说明书草案的制定 C 工作委员会中,需要有员工参与,以获得全体员工对工 作岗位分析公平性的认同,需要普通员工参加审核委员会 对工作分析的结果进行验收。 (五)工会的角色 A 在工作分析过程中,需要获得工会的积极支持,保证资 料收集顺利进行 B 需要工会代表或工会授权的代表参与工作说明书的编制 C 工作岗位分析的最终结果也需要工会成员参与审核和认 可,表明工会对此最终结果的态度,以增强员工对工作岗 位分析结果的认同度 D 若在工作岗位分析过程中,工会代表认为工作岗位分析 的过程或结果有损害工作人员利益的可能,工会可能会代 表员工的利益与管理层谈判 (六)工作岗位分析顾问的角色 A 为管理层提出工作岗位分析的建议,制定有关工作岗位 分析的计划,审核和检查工作流程 B 与分析人员一起工作或在 a 数据收集和分析 b 编制工 作说明书 c 符合法律需要 d 建立系统的工作程序等方 面进行建议 C 参与工资,薪酬管理的其他开发阶段的工作 D 监控工作岗位分析的全过程,使之能按预定计划进行 第二章工作分析的方法 1 工作分析方法的分类 (1)传统的工作分析方法:主要是通过对任职者的观察、 访谈等形式收集工作中的相关信息,以文字的形式准备工 作岗位说明文件。(该方法以工作活动为工作描述指标,将 工作分析重点集中在工作活动的内容与任务完成方面)信 度,效度难以衡量,因其结果是非量化、描述性的。 传统的工作分析方法是主观性的分析过程,工作分析结果 的质量依赖于 A 工作分析人员客观分析的过程 B 对工作 进行分析的能力 C 任职者和信息来源所提供工作信息的 准确程度 (2)标准化工具和方法:最著名量化分析方法:麦克米 克职位分析问卷(PAQ)及职位分析清单方法等 (3)任务清单方法:最著名的任务清单法:综合职位分 析方法(CODAP)雷蒙德.克里斯托为美国空军开发的的 任务清单库 任务清单法:(量化方法)强调工作活动,使用这种方法, 需要建立与一组工作相关的任务清单,由工作任职者及其 上级对此任务清单中的任务进行分级评定,然后用计算机 对分级评定的结果进行统计处理,开发出量化的工作分析 方法 实际所有的工作分析方法都能用任务清单法表述,即使是 描述性的工作说明书也可能转化为量化的任务清单方法 (4)结构化的方法。如范纳开发的功能性工作分析方法, 以任职者处理“数据”、“人员”、“事物”三种对象的任务 为基础,建立结构化的等级图,对工作的功能程度进行分 类 2 收集工作分析所需信息的方法 1)观察法:指由工作分析者通过对任职者现场工作直接或 间接的观察和记录,了解任职者工作内容,收集有关工作 信息的方法。 A 在主要是由身体操作的活动所组成的工作岗位中,观察 法比较有效 B 也可用于行为化的工作分析,以便了解工作任职者在工 作中的实际表现和实际工作困难 C 观察法只适合外显操作、行为性工作的分析,而不适合 单独用于抽象的智力活动、心理素质的分析,脑力劳动较 多的工作岗位中,仅用观察法难以达到预期效果,还需要 其他方法配合才能收集必需信息进行工作分析的目的。 D 对复杂工作难以全面观察。 2)访谈法:工作分析人员通过访谈的方式获取需要收集的 信息 因访谈对象不同将访谈分为三大类: A 对任职者单独访谈(任职者本对工作岗位最有发言权) B 对承担同类工作的任职者进行群体访谈(也称专家座谈 法) C 与熟悉该工作的任职者的上级进行访谈 使用访谈法的注意事项:1 选择适当的时间地点 2 选择 适当的访谈对象 3向被访谈者介绍访谈的目的,建立信任 4 多采用开放式问题,了解更多的信息,鼓励被访谈者发 表更多的观点 5 每次只提一个问题 6 所提问的问题按 逻辑顺序排序,每个问题最好有一个主题 7进行记录8 针 对工作分析目的,使用结构化分析方法9 客观的收集信息 3)问卷法:是通过让任职者和相关人员填写问卷收集工作 分析所需信息的方法。 分类 A 采用开放性问卷:收集有关工作的所有信息,请填 写问卷者全面的描述其工作。简单,但收集到的工作信息 无规律性,整理困难 B 在对工作已彻底了解的基础上,编制出完善的结构化问 卷,只需要填写问卷者在所提供的工作任务中进行选择。 前期编制问卷难度相当大,但一旦编制完成,所收集的工 作信息就易于整理、归纳。 4)现场工作日志法:要求任职者在一段时间内实时记录自 己每天发生的工作,按工作日的时间顺序记录下自己工作 的实际内容,形成某一工作岗位一段时间以来发生的工作 活动的全景描述,使工作分析者能根据工作日志的内容对 工作进行分析 现场工作日志法不足: A 现场日志法需任职者全面配合,任职者需要即时记录工 作活动及消耗的时间,这项工作对任职者在进行自愿记录 这段时间要求较高 B 现场日志中提供的信息失真,包括遗忘,不能及时填写 及刻意隐瞒等原因 C 即使得到了完整的工作日志,在一般的工作日志的信息 中也只能了解到各项活动及在每项活动上消耗的时间,不 能完全了解各项工作活动的目的和重要性 D 工作日志法也记录任职者在一段时间内工作活动的情 况,却不能了解长期的周期性的变化的工作活动 3 量化的工作分析方法: (1)职位分析问卷PAQ:应用最广泛的量化工作分析方法, 包括194项问题 (2)美国劳工部工作分析程度DOL (3)职能性工作分析FJA:在美国劳工部工作分析基础 上产生 职能性工作分析标度表 A 资料职能标度表 B 人员职能标 度 C 事物职能标度 (4)管理职位描述问卷调查法MPDQ:用来决定那些被提 名进入管理职位的人员是否需要培训,也被用来评价和确 定管理工作的报酬率,并用于对工作进行分类。 确定工作分析问卷每个问题是否适用于被分析的工作的6 个维度:A 应用范围 B 时间长短 C 对工作的重要性 D 发生的可能性 E 适用性F 特种代码 4 任务清单法:(核心在于拟订某一类工作有关所有任务清 单)定义:需要开发一组与工作有关的任务清单列表,然 后由工作任职者及其上级以次为据对工作中的各项任务进 行评价,最后,这些评价信息用计算机进行统计处理,形 成量化的工作分析结果 (1)综合职位数据分析方法CODAP 应用最多 (2)工作信息矩阵系统JIMS 核心仍是任务清单 5 工作分析的内容 A工作职责与任务分析 工作职责与任务分析从哪几方面进行: 1)工作职责与任务的完整性:将组织目标层层分解,确保 组织所有任务得到明确安排 2)工作职责与任务的合理性:组织内职员与任务的 分派根据组织的实际情况予以安排设计,可根据需要灵活 变动、调整,合理安排 3)工作职责与任务的系统性:本组织中各项工作任 务具备各种与工作流程相关的系统性,职责与任务按权限 分配控制完成 B 工作流程与工作过程分析 工作流程:工作任务从组织外部开始,在组织间各部门进 行传递,最终得到产出的过程 工作过程:组织中的成员为了完成某一特定的任务,需要
第一章绪论 一、生物化学的的概念: 生物化学(biochemistry)是利用化学的原理与方法去探讨生命的一门科学,它是介于化学、生物学及物理学之间的一门边缘学科。 二、生物化学的发展: 1.叙述生物化学阶段:是生物化学发展的萌芽阶段,其主要的工作是分析和研究生物体的组成成分以及生物体的分泌物和排泄物。 2.动态生物化学阶段:是生物化学蓬勃发展的时期。就在这一时期,人们基本上弄清了生物体内各种主要化学物质的代谢途径。 3.分子生物学阶段:这一阶段的主要研究工作就是探讨各种生物大分子的结构与其功能之间的关系。 三、生物化学研究的主要方面: 1.生物体的物质组成:高等生物体主要由蛋白质、核酸、糖类、脂类以及水、无机盐等组成,此外还含有一些低分子物质。 2.物质代谢:物质代谢的基本过程主要包括三大步骤:消化、吸收→中间代谢→排泄。其中,中间代谢过程是在细胞内进行的,最为复杂的化学变化过程,它包括合成代谢,分解代谢,物质互变,代谢调控,能量代谢几方面的内容。 3.细胞信号转导:细胞内存在多条信号转导途径,而这些途径之间通过一定的方式方式相互交织在一起,从而构成了非常复杂的信号转导网络,调控细胞的代谢、生理活动及生长分化。 4.生物分子的结构与功能:通过对生物大分子结构的理解,揭示结构与功能之间的关系。 5.遗传与繁殖:对生物体遗传与繁殖的分子机制的研究,也是现代生物化学与分子生物学研究的一个重要内容。 第二章蛋白质的结构与功能 一、氨基酸: 1.结构特点:氨基酸(amino acid)是蛋白质分子的基本组成单位。构成天然蛋白质分子的氨基酸约有20种,除脯氨酸为α-亚氨基酸、甘氨酸不含手性碳原子外,其余氨基酸均为L-α-氨基酸。 2.分类:根据氨基酸的R基团的极性大小可将氨基酸分为四类:①非极性中性氨基酸(8种);②极性中性氨基酸(7种);③酸性氨基酸(Glu和Asp);④碱性氨基酸(Lys、Arg和His)。 二、肽键与肽链: 肽键(peptide bond)是指由一分子氨基酸的α-羧基与另一分子氨基酸的α-氨基经脱水而形成的共价键(-CO -NH-)。氨基酸分子在参与形成肽键之后,由于脱水而结构不完整,称为氨基酸残基。每条多肽链都有两端:即自由氨基端(N端)与自由羧基端(C端),肽链的方向是N端→C端。 三、肽键平面(肽单位): 肽键具有部分双键的性质,不能自由旋转;组成肽键的四个原子及其相邻的两个α碳原子处在同一个平面上,为刚性平面结构,称为肽键平面。 四、蛋白质的分子结构:
Struts2 + Hibernate开发笔记(一) 由于开发任务紧张,因为这里的开发笔记,仅用于记录遇到的几个struts2和hibernate结合开发的现象.不对其做分析. 1. 在使用struts2时,页面和action之间的传值 这是struts2和struts1最大的区别. Struts2中,action和jsp页面之间的信息交互,是通过action中定义的成员变量来实现的. 例如,我在一个名为EstateAction的类中有如下定义 public class CityAction extends BaseAction { private MthCity mthCity ; private String cityName; private Long cityId private int couter; public String loadCity() throws DataAccessException, BaseException{ counter ++; return "city"; } } 然后,这里上面的类中的成员类MthCity的定义如下 public class MthCity implements java.io.Serializable { private Long cityId private String cityName; public MthCity() { public Long getCityId() { return this.cityId; } public void setCityId(Long cityId) { this.cityId = cityId; public String getCityName() { return this.cityName; } public void setCityName(String cityName) { this.cityName = cityName; } } 这是一个Hibatenate使用的数据对象POJO类. 有了这两个类后,我们来看看Struts2的Action和JSP页面之间是如何交互的 一. JSP -> Action Jsp页面 以下是一个jsp页面submit.jsp.这个页面只有一个功能,就是向struts提交申请 <%@ page language="java" contentType="text/html; charset=gbk"%> <%@ include file="/common/taglibs.jsp"%>
岗位工作分析报告范文 Job analysis report model 编订:JinTai College
岗位工作分析报告范文 小泰温馨提示:工作报告是指党的机关、行政机关、企事业单位和社会团体,按照有关规定,定期或不定期地向上级机关或法定对象汇报工作,汇报的内容包括近一段的工作情况和下一段工作部署。本文档根据工作报告内容要求展开说明,具有实践指导意义,便于学习和使用,本文下载后内容可随意修改调整及打印。 这几年的教学工作,有一点我感到欣慰,就是不管社会多么纷繁、复杂,我始终没有放弃做为一名教师的基本原则:以诚待人,以诚感人,以诚育人,在自己力所能及的范围内,努力做好每件事,教好每一位学生。但同时,我深知自己在教书育人以及工作方面存在的种种问题,经过这段时间自我的深刻反思,我对自已在工作、生活等方面存在的问题剖析如下: 一、在政治思想方面: 本人高度自觉,长期坚持政治学习,写读书笔记,努力提高自身的思想政治素质,学习>、>、>,按照各种法律法规严格要求自己,从不违法乱纪,遵守社会公德,实践社会主义荣辱观,忠诚党的教育事业,为人师表。 存在问题:学习很是不够深入。
改进方向:提高认识,加强学习。 1、在热爱学生方面:热爱学生是教师处理与学生之间关系的准则,是全部教师职业道德的精髓。爱是教育的万金油,当教育之爱成为普照的春晖,师生之间爱的能量就会在交换与互动中不断裂变,释放能量,产生一个个教育的奇迹。如何激发爱心、永保爱心,我尚待努力。 2、在爱岗敬业方:,我基本上能够做到热爱教育、热爱学校,教书育人,注意培养学生具有良好的思想品德,传播有益学生身心健康思想。爱是教师职业的基础,爱岗敬业是教师处理与教育事业之间关系的准则,是全部教师职业道德的基础前提。但有时候我对待工作还不够尽职尽责;在备课、上课、批改作业等方面,偶尔有敷衍塞责现象。 3、在严谨治学方面:探索教育教学规律缺乏长期性,教育教学方法还缺灵活性和改进力度,提高教育、教学和科研水平还不够快。教师自身的学识与道德水平即师德,在潜移默化中直接或间接的影响着学生,也影响着学生对我的看法,进而影响着师生关系,所以我必须不断学习。 4、尊重家长是教师处理与学生家长之间关系的准则:是促进教育合力的形成,提高育人效果的重要环节。在尊重家长
热力学第一定律 功:δW =δW e +δW f (1) 膨胀功 δW e =p 外dV 膨胀功为正,压缩功为负。 (2) 非膨胀功δW f =xdy 非膨胀功为广义力乘以广义位移。 如δW (机械功)=fdL ,δW (电功)=EdQ ,δW (表面功)=rdA 。 热 Q :体系吸热为正,放热为负。 热力学第一定律: △U =Q +W =Q —W e =Q —p 外dV (δW f =0) 焓 H =U +pV 理想气体的内能和焓只是温度的单值函数。 热容 C =δQ/dT (1) 等压热容:C p =δQ p /dT = (?H/?T )p (2) 等容热容:C v =δQ v /dT = (?U/?T )v 理想气体ΔU,ΔH 的计算: 对理想气体的简单状态变化过程:定温过程:Δ U =0; Δ H =0 变温过程: 对理想气体, 状态变化时 dH=dU+d(PV) 若理想气体的摩尔热容没有给出,常温下有: 理想气体绝热可逆过程方程式: 标准态: 气体的标准态:在任一温度T 、标准压力 P 下的纯理想气体状态; 液体(或固体)的标准态:在任一温度T 、标准压力下的纯液体或纯固体状态。 标准态不规定温度,每个温度都有一个标准态。 摩尔反应焓:单位反应进度(ξ=1mol)的反应焓变Δr H m 。 标准摩尔生成焓:一定温度下由热力学稳定单质生成化学计量数 νB=1的物质B 的标准摩尔反应焓,称为物质B 在该温度下的标准摩尔生成焓。用 表示 (没有规定温度,一般298.15 K 时的数据有表可查) 标准摩尔燃烧焓:一定温度下, 1mol 物质 B 与氧气进行完全燃烧反应,生成规定的燃烧产物时的标准摩尔反应焓,称为B 在该温度下的标准摩尔燃烧焓。用 表示.单位:J mol-1 为可逆过程中体积功的基本计算公式,只能适用于可逆过程。计算可逆过程的体积功时,须先求出体系的 p~V 关系式,然后代入积分。 ? -=21d V V V p W 2 112ln ln p p nRT V V nRT W -=-=适用于理想气体定温可逆过程。 V V dU C dT nC dT V,m ==p p p dH C dT nC dT ,m ==体系的热力学能、焓的变化可由该二式求得 2,2 ,'p p C a bT cT C a bT c T -=++=++m m 热容与温度的关系: a,b,c.c ′是经验常数,可在物化手册上查到, 使用这些公式时要注意适用的温度范围。 适用于:理想气体的任何变温过程(无化学反应、无相变化、只是单纯的PVT 变化)。 ??==?1212d d m ,T T T T V V T nC T C U ?? ==?121 2 d d m ,T T T T p p T nC T C H T C U T T V d 2 1 ? =?? =?21d T T p T C H p,m V,m nC dT =nC dT +nRdT 0W '=,2112V m R C T V T V ????= ? ? ????m V m p C R C R V V p p T T ,,211212???? ??=???? ??=???? ??,m ,m p V C C R -=()f m ΔH B
1.Struts2在jsp页面中使用
06092 工作分析第一章工作分析概述 一、工作分析的概念 1、识记:工作的概念:个体在组织中所扮演的角色的总和,通常由一系列专门任务组成。 2、领会:工作分析的含义:是全面了解组织中一项工作特征的管理活动,即对该项工作的有关信息进行收集、整理、分析、和综合的一个系统过程。实质是区别组织中一项工作与其他工作的差异。 二、工作分析的作用与意义 领会:工作分析在人力资源管理中的作用: ①工作分析为人力资源规划提供了必要的信息 ②工作分析为人员的招聘录用提供了明确的标准 ③工作分析为人员的培训开发提供了明确的依据 ④工作分析为科学的绩效考核提供了帮助 ⑤工作分析为制定公平合理的薪酬政策奠定了基础 ⑥加强职业生涯管理 三、工作分析的历史沿革及其发展趋势 1、识记:工作分析的历史沿革 ①工作分析思想公元前六世纪产生于古希腊。管仲公元前7世纪四民分业定居论 ②第一次大规模工作分析的人狄德罗 ③一战期间,工作分析这个词开始使用 ④20世纪四五十年代,开始采用定量工具解决管理问题。 1979年罗莫特提出工作分析工效学调查法,公认为工作分析创始人。 2、领会:工作分析的发展趋势 ①从静态的工作分析到动态的工作分析 ②从描述性工作分析到战略性工作分析 ③从以工作描述为重点的分析到以工作规范为重点的分析 ④从使用手工进行分析到使用高科技进行分析 第二章工作分析流程 一、工作分析流程概述 1、识记:工作分析的基本流程: ①立项阶段:发现需求预兆成立筹备小组诊断管理体系形成立项报告 ②准备阶段:成立分析小组制定工作计划进行人员培训做好其他准备 ③调查阶段:收集工作背景资料收集工作相关信息 ④分析阶段:整理资料审查信息分析信息 ⑤完成阶段:编写工作说明书进行工作分析评价应用工作分析成果 二、工作分析的立项阶段 领会:制定工作分析的总体原则: ①系统原则②动态原则③目的原则④经济原则⑤职位原则⑥应用原则 三、工作分析的准备阶段 应用:成立工作分析小组: ①选择工作分析小组成员:企业高层管理者,人力资源部专员,收集工作分析信息的人员 ②确定成员数量:视情况而定,多为单数 ③确定成员的工作职责:有助于避免相互推诿责任的现象产生。工作职责,一方面制定详细计划,另一方面审查与监督计划实施。 四、工作分析的调查阶段