ÃüÃû¹æ·¶
ÏîÄ¿Ãû£º¸÷µ¥´ÊÊ××Öĸ´óд£¬ÆäËü×ÖĸСд
°üÃû£ºÈ«²¿×ÖĸСдÇÒΨһ£¬Í¨³£Îª¹«Ë¾ÓòÃûµÄµ¹Ðò
Ô´ÎļþÃû£º¸÷µ¥´ÊÊ××Öĸ´óд£¬ÆäËü×ÖĸСд
·½·¨Ãû£ºµÚÒ»¸öµ¥´ÊÈ«²¿Ð¡Ð´£¬ÆäÓ൥´ÊÊ××Öĸ´óд£¬ÆäËü×ÖĸСд£¬Ò»°ãӦΪ¶¯´Ê
³ÉÔ±±äÁ¿Ãû£ºµÚÒ»¸öµ¥´ÊÈ«²¿Ð¡Ð´£¬ÆäÓ൥´ÊÊ××Öĸ´óд£¬ÆäËü×ÖĸСд
³ÉÔ±³£Á¿Ãû£ºËùÓе¥´Ê´óд£¬µ¥´ÊÖ®¼äÓÃÏ»®Ïß(_)Á¬½Ó
Ô´Îļþ´óС
¾¡Á¿²»³¬¹ý2000ÐÐ(ÒÔÿÐг¤¶È²»³¬¹ý80¸ö×Ö·û¼Æ)£¬·ñÔòÓÐÀàÓ·Ö×Ö®ÏÓ£¬ÔÚÀàÉè¼ÆÊ±Ó¦¾¡Á¿±ÜÃâ
Ô´Îļþ½á¹¹
Îļþ×¢ÊÍÍ·£ºÓÃÀ´ÃèÊö¸ÃÀàµÄ¹¦Äܼ°Ìص㣬ÒÔ¼°Ïà¹Ø¿ª·¢Î¬»¤ÐÅÏ¢£¬ÈçÀ๦ÄܸÅÊö¡¢¹ØÁªÀà(@see)(²»°üÀ¨ÏµÍ³Àà)¡¢¸ÃÀàËùÖ§³ÖµÄJDK°æ±¾(@since)¡¢×÷Õß(@author)¡¢´´½¨ÈÕÆÚ(@date)¡¢ÐÞ¸ÄÀúÊ·(°üÀ¨ÐÞ¸ÄÈË¡¢ÐÞ¸ÄÈÕÆÚ¡¢Éó²éÈË)¡¢¸ÃÀà°æ±¾(@version)¡¢°æÈ¨ÐÅÏ¢¡£
°üÃû(package)
µ¼ÈëÉùÃ÷(import)
ÀàºÍ½Ó¿ÚµÄÉùÃ÷²¿·Ö
×¢ÊÍ
Êý¾Ý½á¹¹ºÍ·½·¨Ç°Ó¦Óÿé×¢ÊÍ
µ±×¢ÊÍÐйý¶àÇÒ¸ü¸ÄƵ·±Ê±£¬Ò²Ó¦¿¼ÂÇʹÓÿé×¢ÊÍ ......
Ïß³Ì×é
ÔÚJavaÖÐÿһ¸öÏ̶߳¼¹éÊôÓÚij¸öÏß³Ì×é¹ÜÀíµÄÒ»Ô±£¬ÀýÈçÔÚÖ÷º¯Êýmain()Ö÷¹¤×÷Á÷³ÌÖвúÉúÒ»¸öỊ̈߳¬Ôò²úÉúµÄÏß³ÌÊôÓÚmainÕâ¸öÏß³Ì×é¹ÜÀíµÄÒ»Ô±¡£¼òµ¥µØËµ£¬Ïß³Ì×é¾ÍÊÇÓÉÏß³Ì×é³ÉµÄ¹ÜÀíÏ̵߳ÄÀ࣬Õâ¸öÀàÊÇjava.lang.ThreadGroupÀà¡£
¿ÉÒÔͨ¹ýʹÓÃÈçÏ´úÂë»ñÈ¡´ËÏß³ÌËùÊôÏß³Ì×éµÄÃû³Æ¡£
Thread.currentThread().getThreadGroup().getName();
currentThread()£ºÈ¡µÃµ±Ç°Ï̡߳£
getThreadGroup()£ºÈ¡µÃµ±Ç°Ïß³ÌËùÔÚµÄ×é¡£
getName()£ºÈ¡µÃ×éµÄÃû³Æ¡£
¶¨ÒåÒ»¸öÏß³Ì×飬ͨ¹ýÒÔÏ´úÂë¿ÉÒÔʵÏÖ¡£
ThreadGroup group=new
ThreadGroup("group");
Thread thread=new Thread(group,"the first
thread of group");
ThreadGroupÀàÖеÄijЩ·½·¨£¬¿ÉÒÔ¶ÔÏß³Ì×éÖеÄÏ̲߳úÉú×÷Óá£ÀýÈ磬setMaxPriority()·½·¨¿ÉÒÔÉ趨Ïß³Ì×éÖеÄËùÓÐÏß³ÌÓµÓÐ×î´óµÄÓÅÏÈȨ¡£
ËùÓÐÏ̶߳¼Á¥ÊôÓÚÒ»¸öÏß³Ì×é¡£ÄÇ¿ÉÒÔÊÇÒ»¸öĬÈÏÏß³Ì×飬Òà¿ÉÊÇÒ»¸ö´´½¨Ïß³ÌʱÃ÷È·Ö¸¶¨µÄ×é¡£ÔÚ´´½¨Ö®³õ£¬Ï̱߳»ÏÞÖÆµ½Ò»¸ö×éÀ¶øÇÒ²»Äܸı䵽һ¸ö²»Í¬µÄ×顣ÿ¸öÓ¦Óö¼ÖÁÉÙÓÐÒ»¸öÏ̴߳ÓÊôÓÚϵͳÏß³Ì×é¡£Èô´´½¨¶à¸öÏ̶߳ø²»Ö¸¶¨Ò»¸ö×飬ËüÃǾͻá×Ô¶¯¹éÊôÓÚϵͳÏß³Ì×é¡£
¡¡¡¡Ïß³Ì×éÒ²±ØÐë´ÓÊôÓÚÆäËûÏß³Ì×é¡£±ØÐëÔÚ¹ ......
ʲôÊÇÐòÁл¯
javaÖеÄÐòÁл¯(serialization)»úÖÆÄܹ»½«Ò»¸öʵÀý¶ÔÏóµÄ״̬ÐÅϢдÈëµ½Ò»¸ö×Ö½ÚÁ÷ÖУ¬Ê¹Æä¿ÉÒÔͨ¹ýsocket½øÐд«Êä¡¢»òÕ߳־û¯´æ´¢µ½Êý¾Ý¿â»òÎļþϵͳÖУ»È»ºóÔÚÐèÒªµÄʱºò£¬¿ÉÒÔ¸ù¾Ý×Ö½ÚÁ÷ÖеÄÐÅÏ¢À´Öع¹Ò»¸öÏàͬµÄ¶ÔÏó¡£ÐòÁл¯»úÖÆÔÚjavaÖÐÓÐ׏㷺µÄÓ¦Óã¬EJB¡¢RMIµÈ¼¼Êõ¶¼ÊÇÒÔ´ËΪ»ù´¡µÄ¡£
ÕýȷʹÓÃÐòÁл¯»úÖÆ
Ò»°ã¶øÑÔ£¬ÒªÊ¹µÃÒ»¸öÀà¿ÉÒÔÐòÁл¯£¬Ö»Ðè¼òµ¥ÊµÏÖjava.io.Serializable½Ó¿Ú¼´¿É¡£¸Ã½Ó¿ÚÊÇÒ»¸ö±ê¼Çʽ½Ó¿Ú£¬Ëü±¾Éí²»°üº¬ÈκÎÄÚÈÝ£¬ÊµÏÖÁ˸ýӿÚÔò±íʾÕâ¸öÀà×¼±¸Ö§³ÖÐòÁл¯µÄ¹¦ÄÜ¡£ÈçÏÂÀý¶¨ÒåÁËÀàPerson£¬²¢ÉùÃ÷Æä¿ÉÒÔÐòÁл¯¡£
Java´úÂë
1.
public class Person implements java.io.Serializable {}
ÐòÁл¯»úÖÆÊÇͨ¹ýjava.io.ObjectOutputStreamÀàºÍjava.io.ObjectInputStreamÀàÀ´ÊµÏֵġ£ÔÚÐòÁл¯(serialize)Ò»¸ö¶ÔÏóµÄʱºò£¬»áÏÈʵÀý»¯Ò»¸öObjectOutputStream¶ÔÏó£¬È»ºóµ÷ÓÃÆäwriteObject()·½·¨£»ÔÚ·´ÐòÁл¯(deserialize)µÄʱºò£¬Ôò»áʵÀý»¯Ò»¸öObjectInputStream¶ÔÏó£¬È»ºóµ÷ÓÃÆäreadObject()·½·¨¡£ÏÂÀý˵Ã÷ÁËÕâÒ»¹ý³ ......
½â¾ö·½·¨Ò»:(×îÖØÒªµÄÒ»ÖÖ·½·¨)
Äã¿´ÏÂmy.ini£¬ÓÐÎÞ
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
È»ºó½¨Á¢±íʱ£¬Ò²ÒªÓ㨱ÈÈ磩
DROP TABLE IF EXISTS `Company`;
CREATE TABLE IF NOT EXISTS `Company`
(
`Cname` VARCHAR(10) NOT NULL,
`Caddr` VARCHAR(100),
`Ctel` VARCHAR(16)
)ENGINE=InnoDB DEFAULT CHARSET=UTF8;
ÕâÑù¾ÍûÎÊÌâ¡£
Èç¹ûÊÇjspÒªÉùÃ÷£º
contentType="text/html;charset=gb2312"
½â¾ö·½·¨¶þ£º
Á¬½Ómysqlʱ(ÎÞÂÛÔÚ´Ómysql¶Á»¹ÊÇÈ¡Êý¾ÝµÄÇé¿ö)£¬Ö¸¶¨Ê¹ÓõıàÂ뷽ʽΪutf-8£¬¾ßÌå´úÂëÈçÏÂ
//×°ÔØmysql-jdbcÇý¶¯
Class.forName("com.mysql.jdbc.Driver").newInstance();
//Á¬½ÓÊý¾Ý¿â
Connection sqlCon = DriverManager.getConnection( "jdbc:mysql://local ......
½â¾ö·½·¨Ò»:(×îÖØÒªµÄÒ»ÖÖ·½·¨)
Äã¿´ÏÂmy.ini£¬ÓÐÎÞ
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
È»ºó½¨Á¢±íʱ£¬Ò²ÒªÓ㨱ÈÈ磩
DROP TABLE IF EXISTS `Company`;
CREATE TABLE IF NOT EXISTS `Company`
(
`Cname` VARCHAR(10) NOT NULL,
`Caddr` VARCHAR(100),
`Ctel` VARCHAR(16)
)ENGINE=InnoDB DEFAULT CHARSET=UTF8;
ÕâÑù¾ÍûÎÊÌâ¡£
Èç¹ûÊÇjspÒªÉùÃ÷£º
contentType="text/html;charset=gb2312"
½â¾ö·½·¨¶þ£º
Á¬½Ómysqlʱ(ÎÞÂÛÔÚ´Ómysql¶Á»¹ÊÇÈ¡Êý¾ÝµÄÇé¿ö)£¬Ö¸¶¨Ê¹ÓõıàÂ뷽ʽΪutf-8£¬¾ßÌå´úÂëÈçÏÂ
//×°ÔØmysql-jdbcÇý¶¯
Class.forName("com.mysql.jdbc.Driver").newInstance();
//Á¬½ÓÊý¾Ý¿â
Connection sqlCon = DriverManager.getConnection( "jdbc:mysql://local ......
×é¼þ
¹¦ÄÜ
Com.guipei.listener. SessionListener
¼àÌý×é¼þ£¬Íê³ÉHttpSessionContextµÄ¹¦ÄÜ
index.jsp
ʵÏÖÓû§µÇ½£¬´´½¨ÐµÄsession
logout.jsp
ʵÏÖÓû§Í˳ö£¬Óû§×Ô¶¯É¾³ýsession
display.jsp
ÏÔʾÓû§µÇ½ÐÅÏ¢£¬ÔÚÓû§µÇ½ºó×Ô¶¯×ªÈë
session.jsp
Áгöµ±Ç°ËùÓеÄsession
kill.jsp
ɱµôÖ¸¶¨µÄ»á»°£¬Ê¹Õâ¸öÓû§Á¬½ÓÎÞЧ
¼àÌýÀàcom.guipei.listener.SessionListener ʵÏÖweb applicationµÄ¼àÌý¹¦ÄÜ£¬ËüʵÏÖÁËHttpSessionListener½Ó¿Ú£¬¿ÉÒÔ¼àÌýsessionCreated(HttpSessionEvent se)ºÍsessionDestroyed(HttpSessionEvent se) ·½·¨£¬Òò´ËÎÒÃÇ¿ÉÒÔºÜÈÝÒ×µÄÔÚsessionµÄ´´½¨ºÍÏú»Ùʼþ¹ý³ÌÖд¦ÀísessionµÄ¿ØÖÆ¡£
ÔÚ´ËÀàÖУ¬ÎÒÃÇ´´½¨Ò»¸ö¾²Ì¬ÊµÀý±äÁ¿Hashtable ht£¬²ÉÓÃHashtableµÄÒ»¸öºÃ´¦ÊÇËüÊÇḬ̈߳²È«µÄ¼¯ºÏÀ࣬ÎÞÐëÎÒÃÇÔÙ¶à×öÏ̴߳¦Àí¡£²ÉÓÃÕâ¸öcollectionÀà±£´æÎÒÃÇËùÒª¿ØÖƵÄsession¶ÔÏó¡£ÔÚ¼àÌýʼþÖÐÈÝÒ׵Ĵ¦ÀíÏà¹ØÈÎÎñ¡£
²Î¿´È«²¿´úÂ룺
package com.guipei.listener;
import java.util.Hashtable;
import java.util.Iterator;
import javax.servlet.http.HttpSession;
import javax.servlet.http.Http ......
ºÜÔç֮ǰд¹ýÀûÓ÷ºÐͺͷ´Éä»úÖÆ³éÏóDAO £¬¶ÔÆäÖлñÈ¡×ÓÀà·ºÐ͵ÄclassÒ»Ö±²»ÊǺÜÀí½â¡£¹Ø¼üµÄµØ·½ÊÇHibernateBaseDaoµÄ¹¹Ôì·½·¨ÖеÄ
Type genType = getClass().getGenericSuperclass();
Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
entityClass = (Class)params[0];
µ«ÊÇÕâ¸öÏà¶Ô×ÓÀà²Å»áÓÐÓ㬶øÇÒÄÇÆªÎÄÕµÄHibernateBaseDao»¹²»ÊÇabstract£¬Èç¹ûÒ»²»Ð¡ÐÄʵÀý»¯µÄ»°¾Í»á±¨Òì³£¡£¸Ð¾õjavaÖÐͨ¹ý·´ÉäÈ¡·ºÐ͵Äclass»¹ÊÇͦ¸´Ôӵ쬲»¹ýÒ»µ©È¡µ½µÄ»°¾Í¿ÉÒÔ×öºÜ¶àÊÂÇéÁË¡£
¸Ä½øµÄÀý×ӺͲâÊÔ£º
1.Ïȶ¨Òå½Ó¿Ú£¨ÕâÀïдµÄ±È½Ï¼òµ¥¾ÍÒ»¸ö·½·¨£¬¾ßÌå¿ÉÒÔÔÙÔö¼Ó£©
public interface BaseDao<T> {
T get(String id);
}
2.¶¨Òå³éÏóÀàʵÏÖ½Ó¿Ú
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public abstract class HibernateBaseDao<T> implements BaseDao<T> {
private Class<T> entityClass;
/**
* Õâ¸öͨ³£Ò²ÊÇhibernateµÄÈ¡µÃ×ÓÀàclassµÄ·½·¨
*
* @author "yangk"
* @date 2010-4-11 ÏÂÎç01:51:28
*/
public HibernateBaseDao() ......