ÕªÒª£ºJAVA»·¾³ÅäÖôóÈ«
ת×Ô: www.java-cn.com
ÎÒ¸ÕѧϰjavaµÄʱºòÒ²±»¸÷ÖÖ»·¾³ÅäÖøãµÃÍ·ÔÎÄÔÕÍ£¬ÏÖÔÚ°Ñ×Ô¼ºÆ½Ê±Óõ½µÄÕûÀíһϣ¬Ï£Íû¸ø´ó¼ÒһЩ°ïÖú¡£±È½Ï¼òµ¥£¬Ï£Íû´ó¼ÒÄÜ¿´¶®¡££¨×îºÃ°´ÕÕÎÒµÄ˳Ðò×°£¬Èç¹û´ó¼Ò¾õµÃÍøÉÏ¿´·ÑÊ£¬ÎÒ°ÑÎĵµ´«µ½ÍøÉϹ©´ó¼ÒÏÂÔØ^_^£©
Ò»¸ö¼òµ¥µÄÓ÷¨
ÔÚjsp Ò³ÃæÖпÉÒÔ·âװΪһ±êÇ©
public class xxxxChartTag extends TagSupport
{
private static final long serialVersionUID = 1L;
private int width; //ͼ±í¿í¶È
private int height; //ͼ±í¸ß¶È
private String type; //ͼ±íÀàÐÍ
private DataVO datavo; //ͼ±íÊý¾Ý¶ÔÏó
private static final int EVAL_PAGE = 6;
private String attrbuteName; //request¶ÔÏóÃû×Ö
private String chartType; //ͼ±íÏÔʾ·½Ê½2D»ò3D
/**
*
* <p>Discription:[¹¹ÔìÆ÷·½·¨ÃèÊö]</p>
* @coustructor ·½·¨.
*/
public NtasChartTag()
{
super();
width = 790;
height = 460;
attrbuteName = NtasConst.REQUEST_DATAVO_KEY;
chartType="2D";
}
public int doStartTag() throws JspException
{
StringBuffer stringbuffer = new StringBuffer();
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
HttpSession session = request.getSession(true);
datavo = (DataVO) request.getAttribute(attrbuteName);
NTASChartFactory NChartFactory = new NTASChartFactory(datavo, session);
NChartFactory.setPicWidth(width);
NChartFactory.setPicHeight(height);
NChartFactory.setChartstyle(chartType);
try
{
NChartFactory.createNTASChart(type);
}
catch (Exception e1)
{
e1.printStackTrace();
}
String picFileName = NChartFactory.getFileName();
String getPicURL = NChartFactory.getPicURL();
stringbuffer.append( NChartFactory.getChartMapHtml());
stringbuffer.append("<img border="0" width="" + width + "" height="" + height + "" src="" + request.getContextPath()+getPicURL + "" useMap="#" + picFileName + ""/>");
JspWriter out = pageContext.getOut();
try
{
out.println(stringbuffer.toString());
}
catch (IOException e)
{
e.printStackTrace();
}
return EVAL_PAGE;
}
public int getHeight()
{
return height;
}
public String getType()
{
return type;
}
public int getWidth()
{
return width;
}
/ public void setHeight(int i)
{
height = i;
}
public void setType(String string)
{
type = string;
}
public void setWidth(int i)
{
width = i;
}
public String getAttrbuteName()
{
return attrbuteName;
}
public void setAttrbuteName(String string)
{
attrbuteName = string;
}
public String getChartType()
{
return chartType;
}
public void setChartType(String string)
{
this.chartType = string;
}
ÔÚCMPʵÌåBEANÖÐʹÓÃBLOBÊý¾ÝÀàÐÍ(תÌû)תÌû??ÔÚOracleÕâÑùµÄ¹ØÏµÊý¾Ý¿âÖУ¬CLOBºÍBLOBÀàÐͱ»ÓÃÀ´´æ·Å´ó¶ÔÏó¡£BOLB±íʾ¶þ½øÖÆ´ó¶ÔÏó£¬ÕâÖÖÊý¾ÝÀàÐÍͨ¹ýÓÃÀ´±£´æÍ¼Æ¬£¬Í¼Ïó£¬ÊÓÆµµÈ¡£CLOB±íʾ×Ö·û´ó¶ÔÏó£¬Äܹ»´æ·Å´óÁ¿»ùÓÚ×Ö·ûµÄÊý¾Ý¡£
JDBC¶¨ÒåjavaÀàÐÍjava.sql.Clob ºÍjava.sql.Blob ¶ÔÓ¦Êý¾Ý¿âÖеÄCLOBºÍBLOBÀàÐÍ¡£È»¶øÕâÁ½ÖÖÀàÐͲ¢²»ÄÜÔÚʵÌåBEANÖÐʹÓã¬ÒòΪÕâÁ½¸öÀàûÓб»ÐòÁл¯£¨Serializable£©¡£Òò´ËÎÒÃDz»ÄÜÔÚCMPʵÌåBEANÖж¨Òåjava.sql.Clob»òjava.sql.BlobÕâÁ½ÖÖÊý¾ÝÀàÐÍ¡£
Èç¹ûÎÒÃÇҪʹÓÃÊý¾Ý¿âµÄBLOB×ֶΣ¬ÎÒÃDZØÐëÔÚʵÌåbeanÖÐÉùÃ÷CMP×Ö¶ÎΪ byte[] ²¢Ó³Éä¸Ã×ֶε½Êý¾Ý¿âµÄBLOB×ֶΡ£Èç¹ûҪʹÓÃCLOB×ֶΣ¬ÎÒÃÇÐèҪʹÓö¨ÒåCMP×Ö¶ÎΪ java.lang.String or char[] ¡£
Ò»¸öENTITYµÄ·¶Àý
ÔÚÒ»¸öÆóÒµÀ´¦ÓÚ°²È«¿¼ÂÇ£¬ÎÒÃÇÒ²ÐíÒª½«Ô±¹¤µÄͼƬ±£´æµ½Êý¾Ý¿âÖеıíÀï¡£ÕâÀïÎÒÃÇʹÓÃEmployeePicture ×÷Ϊ·¶ÀýÀ´´ú±íÔ±¹¤µÄͼƬʵÌå¡£Õâ¸öEmployeePictureBean CMPÓÐÁ½¸öÊôÐÔ empno, picture¡£ picture ×ֶα»¶¨Òå³Ébyte[]ÐÍ ¡£
¸ÃEmployeePictureʵÌåBEAN±»Ó³Éäµ½EMPPICÊý¾Ý±í£¬ picture ÊôÐÔ±»Ó³ÉäΪEMPPIC ±íÖеÄpicture ×ֶΣ¬¸Ãpicture×Ö¶ÎÊǶ¨ÒåΪBLOBÀàÐ͵ġ£
ÏÂÃæÊÇEmployeePictureBean.javaµÄ²¿·ÖºËÐÄ´úÂ룺
public abstract class EmployeePictureBean implements EntityBean{ .... public abstract byte[] getPicture(); public abstract void setPicture(byte[] newPicture); public Long ejbCreate(Long empno, byte[] newPicture) { setEmpno(empno); setPicture(newPicture); return empno; } public void ejbPostCreate(Long empno, byte[] newPicture) { } ...}
Èç¹ûÎÒÃÇʹÓÃOC4J 9.0.4 £¬¾ÍÐèÒªÔÚorion-ejb-jar.xmlÖж¨ÒåʵÌåBEANÊôÐÔµ½Êý¾Ý±í×ֶεÄÓ³Éä¡£Èç¹ûʹÓÃÁËÆäËûJ2EEÈÝÆ÷£¬¾ÍÐèÒªÔÚÏà¹Ø³§É̵IJ¿ÊðÃèÊö·ûÖж¨ÒåO-RÓ³Éä¡£ÏÂÃæÑÝʾÔÚOC4JÖеÄÓ³Éä´úÂ룺
<entity-deployment name="EmployeePicture" data-source="jdbc/OracleDS" table="EMPPIC"> <primkey-mapping> <cmp-field-mapping name="empno" persistence-name="EMPNO" persistence-type="NUMBER(8)"/> </primkey-mapping> <cmp-field-mapping name="empno" persistence-name="EMPNO" persistence-type="NUMBER(8)"/> <cmp-field-mapping name="picture" persistence-name="PICTURE" persistence-type="BLOB"/></entity-deployment>
¿Í»§¶Ë:
CMPʵÌåBEANµÄ¿Í»§¶ËûÓÐÊ²Ã´ÌØ±ðµÄ´¦Àí¡£Î¨Ò»ÐèҪעÒâµÄÊÇÔÚupdateÊý¾Ý±íʱҪʹÓÃBufferedInputStream À´¶ÁÈ¡IMAGEÎļþ£¬µ«ÔÚ¼ìË÷Êý¾Ý±íʱʹÓÃOutputStream ¡£
ÏÂÃæÑÝʾÈçºÎ¶Áȡһ¸öIMAGEÎļþ£¬²¢´´½¨Ò»¸öBEANʵÀý:
// Locate and open the file File imgFile = new File(fileName); long imgFileSize= imgFile.length(); // initialize the byte array byte byteValue[] = new byte[(int)imgFileSize]; // Read the file into the byte array InputStream is = new BufferedInputStream(new FileInputStream(imgFile)); int len = is.read(byteValue); //Add the byte to the entity bean field if(len!=imgFileSize) { System.out.println("Read bytes did not equal file size on directory"); } else { EmployeePictureLocal employeePicture = empHome.create(empNo , byteValue);
½áÂÛ
ÎÒÃDz»ÄÜÔÚCMPʵÌåBEANÖÐÖ±½ÓÓ³Éä java.sql.BlobÀàÐ͵½Êý¾Ý¿âÖеÄBLOB×ֶΡ£¶øÊÇҪʹÓÃbyte[]À´²Ù×÷BLOBÊý¾ÝÀàÐÍ¡£µ«ÊÇÎÒÃÇÒªÖµµÃ×¢ÒâµÄÊÇ£¬Èç¹û´æ´¢µÄÊý¾Ý·Ç³£´ó£¨³¬¹ý25M£©£¬ÄÇôÕâÖÖ·½Ê½µÄ´¦ÀíЧÂʽ«·Ç³£µÍ£¬ÄÇʱֻÄÜ¿¼ÂÇÆäËû¿ÉÑ¡µÄ·½°¸×Ó¡£
ÍêÕû´úÂëµØÖ·£ºhttp://www.oracle.com/technology/tech/java/oc4j/904/how_to/how-to-ejb-cmpblob.zip
http://blog.itpub.net/admin.php?op=resourceInfo&resourceId=6344
ÕâЩϸ½Ú°üÀ¨£º
1¡¢µ¼ÈëJDBC°ü
2¡¢×¢²áoracle JDBCÇý¶¯³ÌÐò
3¡¢´ò¿ªÊý¾Ý¿âÁ¬½Ó
4¡¢Ö´ÐÐSQL DMLÓï¾äÔÚÊý¾Ý¿â±íÖлñÈ¡¡¢Ìí¼Ó¡¢Ð޸ĺÍɾ³ýÐÐ
Class.forName( "org.gjt.mm.mysql.Driver" );
cn = DriverManager.getConnection(
"jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd
);
2. PostgreSQL(http://www.de.postgresql.org)pgjdbc2.jar
Class.forName( "org.postgresql.Driver" );
cn = DriverManager.getConnection(
"jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd
);
3.
Oracle(http://www.oracle.com/ip/deploy/database/oracle9i/)classes12.zip
Class.forName( "oracle.jdbc.driver.OracleDriver" );
cn = DriverManager.getConnection(
"jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );
4. Sybase(http://jtds.sourceforge.net)jconn2.jar
Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" );
cn = DriverManager.getConnection(
"jdbc:sybase:Tds:MyDbComputerNameOrIP:2638", sUsr, sPwd );
//(Default-Username/Password: "dba"/"sql")
5. Microsoft SQLServer(http://jtds.sourceforge.net)
Class.forName( "net.sourceforge.jtds.jdbc.Driver" );
cn = DriverManager.getConnection(
"jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433/master", sUsr, sPwd
);
6. Microsoft SQLServer(http://www.microsoft.com)
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );
cn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master",
sUsr, sPwd );
7. ODBC
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
Connection cn = DriverManager.getConnection( "jdbc:odbc:" + sDsn,
sUsr, sPwd );
8.DB2
Class.forName("com.ibm.db2.jdbc.net.DB2Driver");
String url="jdbc:db2://192.9.200.108:6789/SAMPLE"
cn = DriverManager.getConnection( url, sUsr, sPwd );
ÏȽéÉÜÒ»¸ö¼òµ¥µÄ²»ÄÜÔÙ¼òµ¥µÄÀý×Ó£¬Í¼Æ¬Öеĸ÷ÀàÊôÐÔ¶¼²ÉÓÃĬÈÏÖµ |
ѧϰjspÖУ¬¸ÕºÃ¿´µ½Õâһƪ£¬×ªÔØ
²é¿´È«ÎIJ鿴ȫÎÄ
½«java±àÖ¯³É.classºó£¬Èç¹ûÖ»ÊÇÓÃjava ÃüÁîÀ´Ö´ÐÐ×ܾõµÃ²»ÊÇÌ«¹ýñ«£¬ÕÒ¸ö°ì·¨Éú³ÉÏñexeÎļþÒ»ÑùÓÃÊó±êË«»÷±ã¿ÉÖ´ÐеÄÎļþ£¬Ó¦¸ÃÊǺÜÓÐȤµÄ°¡¡£±¾ÎÄÖ÷Òª½éÉÜÁËÒ»ÖÖÉú³Éjava¿ÉÖ´ÐгÌÐòµÄ·½·¨¡£
ÕâÀïÎÒÓÃÁËÒ»¸öÃû×Ö½Ð×öexe4jµÄÃâ·ÑСÈí¼þ£¬¸Ð¾õ²»´í¡£ÏÂÃæÎÒ½«ÎÒ°ÑjavaµÄ.classÎļþÉú³É¿ÉÖ´ÐÐÎļþµÄÁ÷³Ì½²Ò»Ï¡£
strutsÉÏ´«ÎļþµÄÒ»¸öʾÀý
ÕâÀïµÄÊý¾Ý¿âÁ¬½ÓµÈ¶¼Òª¶ÁÕß×Ô¼ºÅäÖÃ,ÎÒÃÇÔÚ¿ª·¢Õâ¸öÊÔÑéʱµÄ»·¾³Îª
weblogic+jbuilder+oracle ¡¡
ת×Ôhttp://www.java-cn.com/technology/technology_detail.jsp?id=3455
×Ô¼º»¹Ã»Ê±¼ä¿´£¬Ïȱ£´æ
²é¿´È«ÎÄJava³éÈ¡Word£¬PDFµÄËÄÖÖÎäÆ÷
×÷Õߣºchris À´×Ô£ºIBM
ת×Ôhttp://www.java-cn.com/technology/technology_detail.jsp?id=3445
Ëæ×ÅjavaµÄÁ÷ÐУ¬ÆäÔÚwebÉϵÄÓ¦ÓÃÒ²Ô½À´Ô½¹ã£¬tomcat×÷Ϊһ¸ö¿ªÔ´µÄservletÈÝÆ÷£¬Ó¦ÓÃǰ¾°Ô½À´Ô½¹ã£¬±¾ÎĽ«ÏòÄã½²ÊötomcatµÄһЩ֪ʶ¡£
Ò»£º¼ò½é
tomcatÊÇjakartaÏîÄ¿ÖеÄÒ»¸öÖØÒªµÄ×ÓÏîÄ¿£¬Æä±»JavaWorldÔÓÖ¾µÄ±à¼Ñ¡Îª2001Äê¶È×î¾ß´´ÐµÄjava²úÆ·(Most Innovative Java Product)£¬Í¬Ê±ËüÓÖÊÇsun¹«Ë¾¹Ù·½ÍƼöµÄservletºÍjspÈÝÆ÷(¾ßÌå¿ÉÒÔ¼ûhttp://java.sun.com/products/jsp/tomcat/)£¬Òò´ËÆäÔ½À´Ô½¶àµÄÊܵ½Èí¼þ¹«Ë¾ºÍ¿ª·¢ÈËÔ±µÄϲ°®¡£servletºÍjspµÄ×îй淶¶¼¿ÉÒÔÔÚtomcatµÄа汾Öеõ½ÊµÏÖ¡£
²é¿´È«ÎÄ
ÒÔϵÄÎļþ²Ù×÷£¬¶¼¿ÉÒÔÖ±½Ócopyµ½jspÎļþÀïÖ´ÐС£ºÜÓÐÓô¦µÄ¡£
ÎļþµÄ½¨Á¢/¼ì²éÓëɾ³ý
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>ÎļþµÄ½¨Á¢¡¢¼ì²éÓëɾ³ý</title>
</head>
<body>
<%
String path=request.getRealPath("");
//out.println(path);
File f=new File(path,"File.txt");
//out.println(f);
//out.println(f.exists());
if(f.exists()){//¼ì²éFile.txtÊÇ·ñ´æÔÚ
f.delete();//ɾ³ýFile.txtÎļþ
out.println(path + "File.txt ´æÔÚ£¬ÒÑɾ³ý¡£");
}else{
f.createNewFile();//ÔÚµ±Ç°Ä¿Â¼Ï½¨Á¢Ò»¸öÃûΪFile.txtµÄÎļþ
out.println(path + "File.txt ²»´æÔÚ£¬Òѽ¨Á¢¡£");//Êä³öĿǰËùÔÚµÄĿ¼·¾¶
}
%>
Ŀ¼µÄ½¨Á¢/¼ì²éÓëɾ³ý
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>Ŀ¼µÄ½¨Á¢/¼ì²éÓëɾ³ý</title>
</head>
<body>
<%
String path=request.getRealPath("");
path=path + "Sub";//½«Òª½¨Á¢µÄĿ¼·¾¶
File d=new File(path);//½¨Á¢´ú±íSubĿ¼µÄFile¶ÔÏ󣬲¢µÃµ½ËüµÄÒ»¸öÒýÓÃ
if(d.exists()){//¼ì²éSubĿ¼ÊÇ·ñ´æÔÚ
d.delete();
out.println("SubĿ¼´æÔÚ£¬ÒÑɾ³ý");
}else{
d.mkdir();//½¨Á¢SubĿ¼
out.println("SubĿ¼²»´æÔÚ£¬Òѽ¨Á¢");
}
%>
</body>
</html>
ÈçºÎÔÚJSPÖд¦ÀíÐéÄâĿ¼
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>JSPÖÐÈçºÎ´¦ÀíÐéÄâĿ¼</title>
</head>
<body>
È¡µÃÐéÄâĿ¼¶ÔÓ¦µÄ´ÅÅÌ·¾¶<br>
WebÕ¾µãÖ÷Ŀ¼µÄλÖÃΪ<font color=#ff0000><%=request.getRealPath("/")%></font><br>
JSPÍøÒ³ËùÔÚµÄĿ¼λÖÃ<font color=#ff0000><%=request.getRealPath("./")%></font><br>
JSPÍøÒ³ËùÔÚĿ¼ÉÏÒ»²ãĿ¼µÄλÖÃ<font color=#ff0000><%=request.getRealPath("../")%></font><br>
</body>
</html>
ÎļþÊôÐÔµÄÈ¡µÃ
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.Date,java.io.*"%>
<html>
<head>
<title>ÎļþÊôÐÔµÄÈ¡µÃ</title>
</head>
<body>
<%
String path=request.getRealPath("/");
File f=new File(path,"ReadData.txt");
if(f.exists()){
%>
<%=f.getName()%>µÄÊôÐÔÈçÏ£º<br><br>
Îļþ³¤¶ÈΪ£º<%=f.length()%>
<%=f.isFile()?"ÊÇÎļþ":"²»ÊÇÎļþ"%><br>
<%=f.isDirectory()?"ÊÇĿ¼":"²»ÊÇĿ¼"%><br>
<%=f.canRead()?"¿É¶ÁÈ¡":"²»¿É¶ÁÈ¡"%><br>
<%=f.canWrite()?"¿ÉдÈë":"²»¿ÉдÈë"%><br>
<%=f.isHidden()?"ÊÇÒþ²ØÎļþ":"²»ÊÇÒþ²ØÎļþ"%><br>
ÎļþµÄ×îºóÐÞ¸ÄÈÕÆÚΪ£º<%=new Date(f.lastModified())%><br>
<%
}else{
f.createNewFile();//ÔÚµ±Ç°Ä¿Â¼Ï½¨Á¢Ò»¸öÃûΪReaData.txtµÄÎļþ
%>
<%=f.getName()%>µÄÊôÐÔÈçÏ£º<br><br>
Îļþ³¤¶ÈΪ£º<%=f.length()%>
<%=f.isFile()?"ÊÇÎļþ":"²»ÊÇÎļþ"%><br>
<%=f.isDirectory()?"ÊÇĿ¼":"²»ÊÇĿ¼"%><br>
<%=f.canRead()?"¿É¶ÁÈ¡":"²»¿É¶ÁÈ¡"%><br>
<%=f.canWrite()?"¿ÉдÈë":"²»¿ÉдÈë"%><br>
<%=f.isHidden()?"ÊÇÒþ²ØÎļþ":"²»ÊÇÒþ²ØÎļþ"%><br>
ÎļþµÄ×îºóÐÞ¸ÄÈÕÆÚΪ£º<%=new Date(f.lastModified())%><br>
<%
}
%>
</body>
</html>
È¡³öĿ¼ÖÐÎļþµÄ·½·¨
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>È¡³öĿ¼ÖÐÎļþµÄ·½·¨--ÁгöĿ¼ÖеÄÎļþ</title>
</head>
<body>
<%
String path=request.getRealPath("/");
File d=new File(path);//½¨Á¢µ±Ç°Ä¿Â¼ÖÐÎļþµÄFile¶ÔÏó
File list[]=d.listFiles();//È¡µÃ´ú±íĿ¼ÖÐËùÓÐÎļþµÄFile¶ÔÏóÊý×é
out.println("<font color=#ff0000>" + path + "Ŀ¼ÏµÄÎļþ£º</font><br>");
for(int i=0;i<list.length;i++){
if(list[i].isFile()){
out.println(list[i].getName() + "<br>");
}
}
out.println("<br><font color=#ff0000>" + path + "Ŀ¼ÏµÄĿ¼£º</font><br>");
for(int i=0;i<list.length;i++){
if(list[i].isDirectory()){
out.println(list[i].getName() + "<br>");
}
}
%>
</body>
</html>
ÅжÏÊÇ·ñΪ¿Õ°×Îļþ
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>ÅжÏÊÇ·ñΪ¿Õ°×Îļþ</title>
</head>
<body>
<%
String path=request.getRealPath("/");
out.println(path);
FileReader fr=new FileReader(path + "AtEnd.txt");//½¨Á¢FileReader¶ÔÏ󣬲¢ÊµÀý»¯Îªfr
//¶ÔFileReaderÀàÉú³ÉµÄ¶ÔÏóʹÓÃread()·½·¨£¬¿ÉÒÔ´Ó×Ö·ûÁ÷ÖжÁÈ¡ÏÂÒ»¸ö×Ö·û¡£
if(fr.read()==-1)//ÅжÏÊÇ·ñÒѶÁµ½ÎļþµÄ½áβ
{
out.print("AtEnd.txtÎļþÖÐûÓÐÊý¾Ý<br>");
}else{
out.println("AtEnd.txtÎļþÖÐÓÐÊý¾Ý");
}
fr.close();
%>
</body>
</html>
¶ÁÈ¡ËùÓеÄÎļþÊý¾Ý
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*,java.lang.*"%>
<html>
<head>
<title>¶ÁÈ¡ËùÓеÄÎļþÊý¾Ý</title>
</head>
<body>
<%
String path=request.getRealPath("");
FileReader fr=new FileReader(path + "ReadData.txt");
//¹Ø¼üÔÚÓÚ¶ÁÈ¡¹ý³ÌÖУ¬ÒªÅжÏËù¶ÁÈ¡µÄ×Ö·ûÊÇ·ñÒѾµ½ÁËÎļþµÄĩ⣬²¢ÇÒÕâ¸ö×Ö·ûÊDz»ÊÇÎļþÖеĶÏÐзû£¬¼´ÅжϸÃ×Ö·ûÖµÊÇ·ñΪ13¡£
int c=fr.read();//´ÓÎļþÖжÁȡһ¸ö×Ö·û
//ÅжÏÊÇ·ñÒѶÁµ½Îļþ½áβ
while(c!=-1){
out.print((char)c);//Êä³ö¶Áµ½µÄÊý¾Ý
c=fr.read();//´ÓÎļþÖмÌÐø¶ÁÈ¡Êý¾Ý
if(c==13){//ÅжÏÊÇ·ñΪ¶ÏÐÐ×Ö·û
out.print("<br>");//Êä³ö·ÖÐбêÇ©
fr.skip(1);//ÂÔ¹ýÒ»¸ö×Ö·û
//c=fr.read();//¶Áȡһ¸ö×Ö·û
}
}
fr.close();
%>
</body>
</html>
Ò»ÐÐÒ»ÐжÁÈ¡Êý¾Ý
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>Îļþ¶ÁÈ¡</title>
</head>
<body>
<%
String path=request.getRealPath("");//È¡µÃµ±Ç°Ä¿Â¼µÄ·¾¶
FileReader fr=new FileReader(path + "fileinct.txt");//½¨Á¢FileReader¶ÔÏ󣬲¢ÊµÀý»¯Îªfr
BufferedReader br=new BufferedReader(fr);//½¨Á¢BufferedReader¶ÔÏ󣬲¢ÊµÀý»¯Îªbr
String Line=br.readLine();//´ÓÎļþ¶ÁȡһÐÐ×Ö·û´®
//Åж϶ÁÈ¡µ½µÄ×Ö·û´®ÊÇ·ñ²»Îª¿Õ
while(Line!=null){
out.println(Line + "<br>");//Êä³ö´ÓÎļþÖжÁÈ¡µÄÊý¾Ý
Line=br.readLine();//´ÓÎļþÖмÌÐø¶ÁȡһÐÐÊý¾Ý
}
br.close();//¹Ø±ÕBufferedReader¶ÔÏó
fr.close();//¹Ø±ÕÎļþ
%>
</body>
</html>
ÂÔ¹ýÎļþÖеÄ×Ö·û²»¶ÁÈ¡
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>ÂÔ¹ý×Ö½Ú²»¶ÁÈ¡</title>
</head>
<body>
<%
String path=request.getRealPath("");
FileReader fr=new FileReader(path + "ReadData.txt");
fr.skip(2);//Ìø¹ý2¸ö×Ö½Ú
int c=fr.read();//¶Áȡһ¸ö×Ö½Ú
while(c!=-1){
out.print((char)c);
c=fr.read();
}
fr.close();
%>
</body>
</html>
½«Êý¾ÝдÈëÎļþ
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>½«Êý¾ÝдÈëÎļþ</title>
</head>
<body>
<%
String path=request.getRealPath("");
FileWriter fw=new FileWriter(path + "WriteData.txt");//½¨Á¢FileWriter¶ÔÏ󣬲¢ÊµÀý»¯fw
//½«×Ö·û´®Ð´ÈëÎļþ
fw.write("´ó¼ÒºÃ£¡");
fw.write("±¾ÊéÊÇ¡¶JSP±à³Ì¼¼ÇÉ¡·");
fw.write("Çë¶à¶àÖ¸½Ì£¡");
fw.write("email:stride@sina.com");
fw.close();
FileReader fr=new FileReader(path + "WriteData.txt");
BufferedReader br=new BufferedReader(fr);//½¨Á¢BufferedReader¶ÔÏ󣬲¢ÊµÀý»¯Îªbr
String Line=br.readLine();
//¶ÁȡһÐÐÊý¾Ý
out.println(Line + "<br>");
br.close();//¹Ø±ÕBufferedReader¶ÔÏó
fr.close();
%>
</body>
</html>
½«Ð´ÈëÎļþµÄÊý¾Ý·ÖÐÐ
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>½«Ð´ÈëÎļþµÄÊý¾Ý·ÖÐÐ</title>
</head>
<body>
<%
String path=request.getRealPath("");
FileWriter fw=new FileWriter(path + "WriteData.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write("´ó¼ÒºÃ£¡");
bw.write("±¾ÊéÊÇ¡¶JSP±à³Ì¼¼ÇÉ¡·¡£");
bw.newLine();//¶ÏÐÐ
bw.write("Çë¶à¶àÖ¸½Ì£¡");
bw.newLine();//¶ÏÐÐ
bw.write("email: stride@sina.com");
bw.flush();//½«Êý¾Ý¸üÐÂÖÁÎļþ
fw.close();//¹Ø±ÕÎļþÁ÷
out.println("дÈëÎļþÄÚÈÝΪ£º<br>");
FileReader fr=new FileReader(path + "WriteData.txt");
BufferedReader br=new BufferedReader(fr);
String Line=br.readLine();//¶ÁȡһÐÐÊý¾Ý
while(Line!=null){
out.println(Line + "<br>");
Line=br.readLine();
}
fr.close();
%>
</body>
</html>
ÈçºÎ½«Êý¾Ý×·¼ÓдÈëµ½Îļþ
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>½«Ð´ÈëÎļþµÄÊý¾Ý·ÖÐÐ</title>
</head>
<body>
<%
String path=request.getRealPath("");
RandomAccessFile rf=new RandomAccessFile(path + "WriteData.txt","rw");//¶¨ÒåÒ»¸öÀàRandomAccessFileµÄ¶ÔÏ󣬲¢ÊµÀý»¯
rf.seek(rf.length());//½«Ö¸ÕëÒÆ¶¯µ½Îļþĩβ
rf.writeBytes("
Append a line to the file!");
rf.close();//¹Ø±ÕÎļþÁ÷
out.println("дÈëÎļþÄÚÈÝΪ£º<br>");
FileReader fr=new FileReader(path + "WriteData.txt");
BufferedReader br=new BufferedReader(fr);//¶ÁÈ¡ÎļþµÄBufferedRead¶ÔÏó
String Line=br.readLine();
while(Line!=null){
out.println(Line + "<br>");
Line=br.readLine();
}
fr.close();//¹Ø±ÕÎļþ
%>
</body>
</html><B>
ÔÚCSDN¿´¼ûÁËÕâÆªÎÄÕ£¬×÷ÕßÒÔÇáËɵÄÓïÑÔ±ÈÓ÷ÁËjavaµÄ32ÖÖģʽ£¬ÓÐºÜºÃµÄÆô·¢×÷Ó㬵«¿ÉϧûÓиø³ö¾ßÌåµÄÒâ˼£¬ÎÒ¾ÍÔÚºó±ß¼ÓÉÏÁË£º£©ÕâЩ¶¼ÊÇ×î¼òµ¥µÄ½éÉÜ£¬ÒªÑ§Ï°µÄ»°½¨ÒéÄ㿴һϡ¶javaÓëģʽ¡·Õâ±¾Êé¡£
????´´½¨ÐÍģʽ
????1¡¢FACTORY?×·MMÉÙ²»ÁËÇë³Ô·¹ÁË£¬Âóµ±À͵靈áºÍ¿ÏµÂ»ùµÄ¼¦³á¶¼ÊÇMM°®³ÔµÄ¶«Î÷£¬ËäÈ»¿ÚζÓÐËù²»Í¬£¬µ«²»¹ÜÄã´øMMÈ¥Âóµ±ÀÍ»ò¿ÏµÂ»ù£¬Ö»¹ÜÏò·þÎñԱ˵¡°À´Ëĸö¼¦³á¡±¾ÍÐÐÁË¡£Âóµ±ÀͺͿϵ»ù¾ÍÊÇÉú²ú¼¦³áµÄFactory
¡¡¡¡¹¤³§Ä£Ê½£º¿Í»§ÀàºÍ¹¤³§Àà·Ö¿ª¡£Ïû·ÑÕßÈκÎʱºòÐèҪijÖÖ²úÆ·£¬Ö»ÐèÏò¹¤³§ÇëÇó¼´¿É¡£Ïû·ÑÕßÎÞÐëÐ޸ľͿÉÒÔ½ÓÄÉвúÆ·¡£È±µãÊǵ±²úÆ·ÐÞ¸Äʱ£¬¹¤³§ÀàÒ²Òª×öÏàÓ¦µÄÐ޸ġ£È磺ÈçºÎ´´½¨¼°ÈçºÎÏò¿Í»§¶ËÌṩ¡£
????2¡¢BUILDER?MM×î°®ÌýµÄ¾ÍÊÇ¡°ÎÒ°®Ä㡱Õâ¾ä»°ÁË£¬¼ûµ½²»Í¬µØ·½µÄMM,ÒªÄܹ»ÓÃËýÃǵķ½ÑÔ¸úËý˵Õâ¾ä»°Å¶£¬ÎÒÓÐÒ»¸ö¶àÖÖÓïÑÔ·Òë»ú£¬ÉÏÃæÃ¿ÖÖÓïÑÔ¶¼ÓÐÒ»¸ö°´¼ü£¬¼ûµ½MMÎÒÖ»Òª°´¶ÔÓ¦µÄ¼ü£¬Ëü¾ÍÄܹ»ÓÃÏàÓ¦µÄÓïÑÔ˵³ö¡°ÎÒ°®Ä㡱Õâ¾ä»°ÁË£¬¹úÍâµÄMMÒ²¿ÉÒÔÇáËɸãµà£¬Õâ¾ÍÊÇÎҵġ°ÎÒ°®Ä㡱builder¡££¨ÕâÒ»¶¨±ÈÃÀ¾üÔÚÒÁÀ¿ËÓõķÒë»úºÃÂô£©
¡¡¡¡½¨Ôìģʽ£º½«²úÆ·µÄÄÚ²¿±íÏóºÍ²úÆ·µÄÉú³É¹ý³Ì·Ö¸î¿ªÀ´£¬´Ó¶øÊ¹Ò»¸ö½¨Ôì¹ý³ÌÉú³É¾ßÓв»Í¬µÄÄÚ²¿±íÏóµÄ²úÆ·¶ÔÏó¡£½¨ÔìģʽʹµÃ²úÆ·ÄÚ²¿±íÏó¿ÉÒÔ¶ÀÁ¢µÄ±ä»¯£¬¿Í»§²»±ØÖªµÀ²úÆ·ÄÚ²¿×é³ÉµÄϸ½Ú¡£½¨Ôìģʽ¿ÉÒÔÇ¿ÖÆÊµÐÐÒ»ÖÖ·Ö²½Öè½øÐеĽ¨Ôì¹ý³Ì¡£
????3¡¢FACTORY METHOD?ÇëMMÈ¥Âóµ±ÀͳԺº±¤£¬²»Í¬µÄMMÓв»Í¬µÄ¿Úζ£¬ÒªÃ¿¸ö¶¼¼ÇסÊÇÒ»¼þ·³È˵ÄÊÂÇ飬ÎÒÒ»°ã²ÉÓÃFactory Methodģʽ£¬´ø×ÅMMµ½·þÎñÔ±ÄǶù£¬Ëµ¡°ÒªÒ»¸öºº±¤¡±£¬¾ßÌåҪʲôÑùµÄºº±¤ÄØ£¬ÈÃMMÖ±½Ó¸ú·þÎñԱ˵¾ÍÐÐÁË¡£
¡¡¡¡¹¤³§·½·¨Ä£Ê½£ººËÐŤ³§À಻ÔÙ¸ºÔðËùÓвúÆ·µÄ´´½¨£¬¶øÊǽ«¾ßÌå´´½¨µÄ¹¤×÷½»¸ø×ÓÀàÈ¥×ö£¬³ÉΪһ¸ö³éÏ󹤳§½ÇÉ«£¬½ö¸ºÔð¸ø³ö¾ßÌ幤³§Àà±ØÐëʵÏֵĽӿڣ¬¶ø²»½Ó´¥ÄÄÒ»¸ö²úÆ·ÀàÓ¦µ±±»ÊµÀý»¯ÕâÖÖϸ½Ú¡£
????4¡¢PROTOTYPE?¸úMMÓÃQQÁÄÌ죬һ¶¨ÒªËµÐ©ÉîÇéµÄ»°ÓïÁË£¬ÎÒËѼ¯Á˺öàÈâÂéµÄÇé»°£¬ÐèҪʱֻҪcopy³öÀ´·Åµ½QQÀïÃæ¾ÍÐÐÁË£¬Õâ¾ÍÊÇÎÒµÄÇé»°prototypeÁË¡££¨100¿éǮһ·Ý£¬ÄãÒª²»Òª£©
¡¡¡¡ÔʼģÐÍģʽ£ºÍ¨¹ý¸ø³öÒ»¸öÔÐͶÔÏóÀ´Ö¸Ã÷ËùÒª´´½¨µÄ¶ÔÏóµÄÀàÐÍ£¬È»ºóÓø´ÖÆÕâ¸öÔÐͶÔÏóµÄ·½·¨´´½¨³ö¸ü¶àͬÀàÐ͵ĶÔÏó¡£ÔʼģÐÍģʽÔÊÐí¶¯Ì¬µÄÔö¼Ó»ò¼õÉÙ²úÆ·À࣬²úÆ·À಻ÐèÒª·ÇµÃÓÐÈκÎÊÂÏÈÈ·¶¨µÄµÈ¼¶½á¹¹£¬ÔʼģÐÍģʽÊÊÓÃÓÚÈκεĵȼ¶½á¹¹¡£È±µãÊÇÿһ¸öÀà¶¼±ØÐëÅ䱸һ¸ö¿Ë¡·½·¨¡£
????5¡¢SINGLETON?°³ÓÐ6¸öƯÁÁµÄÀÏÆÅ£¬ËýÃǵÄÀϹ«¶¼ÊÇÎÒ£¬ÎÒ¾ÍÊÇÎÒÃǼÒÀïµÄÀϹ«Sigleton£¬ËýÃÇֻҪ˵µÀ¡°ÀϹ«¡±£¬¶¼ÊÇÖ¸µÄͬһ¸öÈË£¬ÄǾÍÊÇÎÒ(¸Õ²Å×öÁ˸öÃÎÀ²£¬ÄÄÓÐÕâôºÃµÄÊÂ)
¡¡¡¡µ¥Àýģʽ£ºµ¥Àýģʽȷ±£Ä³Ò»¸öÀàÖ»ÓÐÒ»¸öʵÀý£¬¶øÇÒ×ÔÐÐʵÀý»¯²¢ÏòÕû¸öϵͳÌṩÕâ¸öʵÀýµ¥Àýģʽ¡£µ¥ÀýģʽֻӦÔÚÓÐÕæÕýµÄ¡°µ¥Ò»ÊµÀý¡±µÄÐèÇóʱ²Å¿ÉʹÓá£
????½á¹¹ÐÍģʽ
????6¡¢ADAPTER?ÔÚÅóÓѾۻáÉÏÅöµ½ÁËÒ»¸öÃÀÅ®Sarah£¬´ÓÏã¸ÛÀ´µÄ£¬¿ÉÎÒ²»»á˵ÔÁÓËý²»»á˵ÆÕͨ»°£¬Ö»ºÃÇóÖúÓÚÎÒµÄÅóÓÑkentÁË£¬Ëû×÷ΪÎÒºÍSarahÖ®¼äµÄAdapter£¬ÈÃÎÒºÍSarah¿ÉÒÔÏ໥½»Ì¸ÁË(Ò²²»ÖªµÀËû»á²»»áË£ÎÒ)
¡¡¡¡ÊÊÅäÆ÷£¨±äѹÆ÷£©Ä£Ê½£º°ÑÒ»¸öÀàµÄ½Ó¿Ú±ä»»³É¿Í»§¶ËËùÆÚ´ýµÄÁíÒ»ÖÖ½Ó¿Ú£¬´Ó¶øÊ¹Ô±¾Òò½Ó¿ÚÔÒò²»Æ¥Åä¶øÎÞ·¨Ò»Æð¹¤×÷µÄÁ½¸öÀàÄܹ»Ò»Æð¹¤×÷¡£ÊÊÅäÀà¿ÉÒÔ¸ù¾Ý²ÎÊý·µ»¹Ò»¸öºÏÊʵÄʵÀý¸ø¿Í»§¶Ë¡£
????7¡¢BRIDGE?ÔçÉÏÅöµ½MM£¬ÒªËµÔçÉϺã¬ÍíÉÏÅöµ½MM£¬ÒªËµÍíÉϺã»Åöµ½MM´©Á˼þÐÂÒ·þ£¬ÒªËµÄãµÄÒ·þºÃƯÁÁŶ£¬Åöµ½MMÐÂ×öµÄ·¢ÐÍ£¬ÒªËµÄãµÄÍ··¢ºÃƯÁÁŶ¡£²»ÒªÎÊÎÒ¡°ÔçÉÏÅöµ½MMÐÂ×öÁ˸ö·¢ÐÍÔõô˵¡±ÕâÖÖÎÊÌ⣬×Ô¼ºÓÃBRIDGE×éºÏһϲ»¾ÍÐÐÁË
¡¡¡¡ÇÅÁºÄ£Ê½£º½«³éÏó»¯ÓëʵÏÖ»¯ÍÑñʹµÃ¶þÕß¿ÉÒÔ¶ÀÁ¢µÄ±ä»¯£¬Ò²¾ÍÊÇ˵½«ËûÃÇÖ®¼äµÄÇ¿¹ØÁª±ä³ÉÈõ¹ØÁª£¬Ò²¾ÍÊÇÖ¸ÔÚÒ»¸öÈí¼þϵͳµÄ³éÏ󻯺ÍʵÏÖ»¯Ö®¼äʹÓÃ×éºÏ/¾ÛºÏ¹ØÏµ¶ø²»ÊǼ̳йØÏµ£¬´Ó¶øÊ¹Á½Õß¿ÉÒÔ¶ÀÁ¢µÄ±ä»¯¡£
????8¡¢COMPOSITE?Mary½ñÌì¹ýÉúÈÕ¡£¡°ÎÒ¹ýÉúÈÕ£¬ÄãÒªËÍÎÒÒ»¼þÀñÎï¡£¡±¡°àÅ£¬ºÃ°É£¬È¥É̵꣬Äã×Ô¼ºÌô¡£¡±¡°Õâ¼þTÐôͦƯÁÁ£¬Âò£¬ÕâÌõȹ×Ӻÿ´£¬Âò£¬Õâ¸ö°üÒ²²»´í£¬Âò¡£¡±¡°Î¹£¬ÂòÁËÈý¼þÁËѽ£¬ÎÒÖ»´ðÓ¦ËÍÒ»¼þÀñÎïµÄŶ¡£¡±¡°Ê²Ã´Ñ½£¬TÐô¼Óȹ×Ó¼Ó°ü°ü£¬ÕýºÃÅä³ÉÒ»Ì×ѽ£¬Ð¡½ã£¬Âé·³Äã°üÆðÀ´¡£¡±¡°¡¡¡±£¬MM¶¼»áÓÃCompositeģʽÁË£¬Äã»áÁËûÓУ¿
¡¡¡¡ºÏ³Éģʽ£ººÏ³Éģʽ½«¶ÔÏó×éÖ¯µ½Ê÷½á¹¹ÖУ¬¿ÉÒÔÓÃÀ´ÃèÊöÕûÌåÓ벿·ÖµÄ¹ØÏµ¡£ºÏ³Éģʽ¾ÍÊÇÒ»¸ö´¦Àí¶ÔÏóµÄÊ÷½á¹¹µÄģʽ¡£ºÏ³Éģʽ°Ñ²¿·ÖÓëÕûÌåµÄ¹ØÏµÓÃÊ÷½á¹¹±íʾ³öÀ´¡£ºÏ³ÉģʽʹµÃ¿Í»§¶Ë°ÑÒ»¸ö¸öµ¥¶ÀµÄ³É·Ö¶ÔÏóºÍÓÉËûÃǸ´ºÏ¶ø³ÉµÄºÏ³É¶ÔÏóͬµÈ¿´´ý¡£
????9¡¢DECORATOR?Mary¹ýÍêÂÖµ½Sarly¹ýÉúÈÕ£¬»¹ÊDz»Òª½ÐËý×Ô¼ºÌôÁË£¬²»È»Õâ¸öÔ»ïʳ·Ñ¿Ï¶¨ÍæÍ꣬ÄóöÎÒÈ¥ÄêÔÚ»ªÉ½¶¥ÉÏÕÕµÄÕÕÆ¬£¬ÔÚ±³ÃæÐ´ÉÏ¡°×îºÃµÄµÄÀñÎ¾ÍÊǰ®ÄãµÄFita¡±£¬ÔÙµ½½ÖÉÏÀñÆ·µêÂòÁ˸öÏñ¿ò£¨ÂôÀñÆ·µÄMMÒ²ºÜƯÁÁŶ£©£¬ÔÙÕÒ¸ô±Ú¸ãÃÀÊõÉè¼ÆµÄMikeÉè¼ÆÁËÒ»¸öƯÁÁµÄºÐ×Ó×°ÆðÀ´¡¡£¬ÎÒÃǶ¼ÊÇDecorator£¬×îÖÕ¶¼ÔÚÐÞÊÎÎÒÕâ¸öÈËѽ£¬ÔõôÑù£¬¿´¶®ÁËÂð£¿
¡¡¡¡×°ÊÎģʽ£º×°ÊÎģʽÒÔ¶Ô¿Í»§¶Ë͸Ã÷µÄ·½Ê½À©Õ¹¶ÔÏóµÄ¹¦ÄÜ£¬ÊǼ̳йØÏµµÄÒ»¸öÌæ´ú·½°¸£¬Ìṩ±È¼Ì³Ð¸ü¶àµÄÁé»îÐÔ¡£¶¯Ì¬¸øÒ»¸ö¶ÔÏóÔö¼Ó¹¦ÄÜ£¬ÕâЩ¹¦ÄÜ¿ÉÒÔÔÙ¶¯Ì¬µÄ³·Ïû¡£Ôö¼ÓÓÉһЩ»ù±¾¹¦ÄܵÄÅÅÁÐ×éºÏ¶ø²úÉúµÄ·Ç³£´óÁ¿µÄ¹¦ÄÜ¡£
????10¡¢FACADE?ÎÒÓÐÒ»¸öרҵµÄNikonÏà»ú£¬ÎÒ¾Íϲ»¶×Ô¼ºÊÖ¶¯µ÷¹âȦ¡¢¿ìÃÅ£¬ÕâÑùÕÕ³öÀ´µÄÕÕÆ¬²Åרҵ£¬µ«MM¿É²»¶®ÕâЩ£¬½ÌÁ˰ëÌìÒ²²»»á¡£ÐÒºÃÏà»úÓÐFacadeÉè¼ÆÄ£Ê½£¬°ÑÏà»úµ÷Õûµ½×Ô¶¯µµ£¬Ö»Òª¶Ô׼Ŀ±ê°´¿ìÞÍÐÐÁË£¬Ò»ÇÐÓÉÏà»ú×Ô¶¯µ÷Õû£¬ÕâÑùMMÒ²¿ÉÒÔÓÃÕâ¸öÏà»ú¸øÎÒÅÄÕÅÕÕÆ¬ÁË¡£
¡¡¡¡ÃÅÃæÄ£Ê½£ºÍⲿÓëÒ»¸ö×ÓϵͳµÄͨÐűØÐëͨ¹ýÒ»¸öͳһµÄÃÅÃæ¶ÔÏó½øÐС£ÃÅÃæÄ£Ê½Ìṩһ¸ö¸ß²ã´ÎµÄ½Ó¿Ú£¬Ê¹µÃ×Óϵͳ¸üÒ×ÓÚʹÓá£Ã¿Ò»¸ö×ÓϵͳֻÓÐÒ»¸öÃÅÃæÀ࣬¶øÇÒ´ËÃÅÃæÀàÖ»ÓÐÒ»¸öʵÀý£¬Ò²¾ÍÊÇ˵ËüÊÇÒ»¸öµ¥Àýģʽ¡£µ«Õû¸öϵͳ¿ÉÒÔÓжà¸öÃÅÃæÀà¡£
????11¡¢FLYWEIGHT?ÿÌì¸úMM·¢¶ÌÐÅ£¬ÊÖÖ¸¶¼ÀÛËÀÁË£¬×î½üÂòÁ˸öÐÂÊÖ»ú£¬¿ÉÒÔ°ÑһЩ³£Óõľä×Ó´æÔÚÊÖ»úÀҪÓõÄʱºò£¬Ö±½ÓÄóöÀ´£¬ÔÚÇ°Ãæ¼ÓÉÏMMµÄÃû×־ͿÉÒÔ·¢ËÍÁË£¬ÔÙ²»ÓÃÒ»¸ö×ÖÒ»¸ö×ÖÇÃÁË¡£¹²ÏíµÄ¾ä×Ó¾ÍÊÇFlyweight£¬MMµÄÃû×Ö¾ÍÊÇÌáÈ¡³öÀ´µÄÍâ²¿ÌØÕ÷£¬¸ù¾ÝÉÏÏÂÎÄÇé¿öʹÓá£
¡¡¡¡ÏíԪģʽ£ºFLYWEIGHTÔÚÈ»÷±ÈÈüÖÐÖ¸×îÇáÁ¿¼¶¡£ÏíԪģʽÒÔ¹²ÏíµÄ·½Ê½¸ßЧµÄÖ§³Ö´óÁ¿µÄϸÁ£¶È¶ÔÏó¡£ÏíԪģʽÄÜ×öµ½¹²ÏíµÄ¹Ø¼üÊÇÇø·ÖÄÚÔÌ״̬ºÍÍâÔÌ״̬¡£ÄÚÔÌ״̬´æ´¢ÔÚÏíÔªÄÚ²¿£¬²»»áËæ»·¾³µÄ¸Ä±ä¶øÓÐËù²»Í¬¡£ÍâÔÌ״̬ÊÇËæ»·¾³µÄ¸Ä±ä¶ø¸Ä±äµÄ¡£ÍâÔÌ״̬²»ÄÜÓ°ÏìÄÚÔÌ״̬£¬ËüÃÇÊÇÏ໥¶ÀÁ¢µÄ¡£½«¿ÉÒÔ¹²ÏíµÄ״̬ºÍ²»¿ÉÒÔ¹²ÏíµÄ״̬´Ó³£¹æÀàÖÐÇø·Ö¿ªÀ´£¬½«²»¿ÉÒÔ¹²ÏíµÄ״̬´ÓÀàÀïÌÞ³ý³öÈ¥¡£¿Í»§¶Ë²»¿ÉÒÔÖ±½Ó´´½¨±»¹²ÏíµÄ¶ÔÏ󣬶øÓ¦µ±Ê¹ÓÃÒ»¸ö¹¤³§¶ÔÏó¸ºÔð´´½¨±»¹²ÏíµÄ¶ÔÏó¡£ÏíԪģʽ´ó·ù¶ÈµÄ½µµÍÄÚ´æÖжÔÏóµÄÊýÁ¿¡£
????12¡¢PROXY?¸úMMÔÚÍøÉÏÁÄÌ죬һ¿ªÍ·×ÜÊÇ¡°hi,ÄãºÃ¡±,¡°Äã´ÓÄĶùÀ´Ñ½£¿¡±¡°Äã¶à´óÁË£¿¡±¡°Éí¸ß¶àÉÙѽ£¿¡±ÕâЩ»°£¬Õæ·³ÈË£¬Ð´¸ö³ÌÐò×öΪÎÒµÄProxy°É£¬·²ÊǽÓÊÕµ½ÕâЩ»°¶¼ÉèÖúÃÁË×Ô¶¯µÄ»Ø´ð£¬½ÓÊÕµ½ÆäËûµÄ»°Ê±ÔÙ֪ͨÎһشð£¬ÔõôÑù£¬¿á°É¡£
¡¡¡¡´úÀíģʽ£º´úÀíģʽ¸øÄ³Ò»¸ö¶ÔÏóÌṩһ¸ö´úÀí¶ÔÏ󣬲¢ÓÉ´úÀí¶ÔÏó¿ØÖƶÔÔ´¶ÔÏóµÄÒýÓᣴúÀí¾ÍÊÇÒ»¸öÈË»òÒ»¸ö»ú¹¹´ú±íÁíÒ»¸öÈË»òÕßÒ»¸ö»ú¹¹²ÉÈ¡Ðж¯¡£Ä³Ð©Çé¿öÏ£¬¿Í»§²»Ïë»òÕß²»Äܹ»Ö±½ÓÒýÓÃÒ»¸ö¶ÔÏ󣬴úÀí¶ÔÏó¿ÉÒÔÔÚ¿Í»§ºÍÄ¿±ê¶ÔÏóÖ±½ÓÆðµ½ÖнéµÄ×÷Ó᣿ͻ§¶Ë·Ö±æ²»³ö´úÀíÖ÷Ìâ¶ÔÏóÓëÕæÊµÖ÷Ìâ¶ÔÏó¡£´úÀíģʽ¿ÉÒÔ²¢²»ÖªµÀÕæÕýµÄ±»´úÀí¶ÔÏ󣬶ø½ö½ö³ÖÓÐÒ»¸ö±»´úÀí¶ÔÏóµÄ½Ó¿Ú£¬Õâʱºò´úÀí¶ÔÏó²»Äܹ»´´½¨±»´úÀí¶ÔÏ󣬱»´úÀí¶ÔÏó±ØÐëÓÐϵͳµÄÆäËû½ÇÉ«´úΪ´´½¨²¢´«Èë¡£
????ÐÐΪģʽ
????13¡¢CHAIN OF RESPONSIBLEITY?ÍíÉÏÈ¥ÉÏÓ¢Óï¿Î£¬ÎªÁ˺ÿªÁï×øµ½ÁË×îºóÒ»ÅÅ£¬ÍÛ£¬Ç°Ãæ×øÁ˺ü¸¸öƯÁÁµÄMM°¥£¬ÕÒÕÅÖ½Ìõ£¬Ð´ÉÏ¡°Hi,¿ÉÒÔ×öÎÒµÄÅ®ÅóÓÑÂð£¿Èç¹û²»Ô¸ÒâÇëÏòǰ´«¡±£¬Ö½Ìõ¾ÍÒ»¸ö½ÓÒ»¸öµÄ´«ÉÏÈ¥ÁË£¬Ôã¸â£¬´«µ½µÚÒ»ÅŵÄMM°ÑÖ½Ìõ´«¸øÀÏʦÁË£¬Ìý˵ÊǸöÀÏ´¦Å®Ñ½£¬¿ìÅÜ!
¡¡¡¡ÔðÈÎÁ´Ä£Ê½£ºÔÚÔðÈÎÁ´Ä£Ê½ÖУ¬ºÜ¶à¶ÔÏóÓÉÿһ¸ö¶ÔÏó¶ÔÆäϼҵÄÒýÓöø½Ó ÆðÀ´ÐγÉÒ»ÌõÁ´¡£ÇëÇóÔÚÕâ¸öÁ´ÉÏ´«µÝ£¬Ö±µ½Á´ÉϵÄijһ¸ö¶ÔÏó¾ö¶¨´¦Àí´ËÇëÇ󡣿ͻ§²¢²»ÖªµÀÁ´ÉϵÄÄÄÒ»¸ö¶ÔÏó×îÖÕ´¦ÀíÕâ¸öÇëÇó£¬ÏµÍ³¿ÉÒÔÔÚ²»Ó°Ïì¿Í»§¶ËµÄÇé¿ö϶¯Ì¬µÄÖØÐÂ×éÖ¯Á´ºÍ·ÖÅäÔðÈΡ£´¦ÀíÕßÓÐÁ½¸öÑ¡Ôñ£º³Ðµ£ÔðÈλòÕß°ÑÔðÈÎÍÆ¸øÏ¼ҡ£Ò»¸öÇëÇó¿ÉÒÔ×îÖÕ²»±»ÈκνÓÊն˶ÔÏóËù½ÓÊÜ¡£
????14¡¢COMMAND?°³ÓÐÒ»¸öMM¼ÒÀï¹ÜµÃÌØ±ðÑÏ£¬Ã»·¨¼ûÃæ£¬Ö»ºÃ½èÖúÓÚËýµÜµÜÔÚÎÒÃÇÁ©Ö®¼ä´«ËÍÐÅÏ¢£¬Ëý¶ÔÎÒÓÐʲôָʾ£¬¾ÍдһÕÅÖ½ÌõÈÃËýµÜµÜ´ø¸øÎÒ¡£Õâ²»£¬ËýµÜµÜÓÖ´«Ë͹ýÀ´Ò»¸öCOMMAND£¬ÎªÁ˸ÐлËû£¬ÎÒÇëËû³ÔÁËÍëÔÓ½´Ã棬ÄÄÖªµÀËû˵£º¡°ÎÒͬʱ¸øÎÒ½ã½ãÈý¸öÄÐÅóÓÑËÍCOMMAND£¬¾ÍÊýÄã×îÐ¡Æø£¬²ÅÇëÎÒ³ÔÃæ¡£¡±£¬:-(
¡¡¡¡ÃüÁîģʽ£ºÃüÁîģʽ°ÑÒ»¸öÇëÇó»òÕß²Ù×÷·â×°µ½Ò»¸ö¶ÔÏóÖС£ÃüÁîģʽ°Ñ·¢³öÃüÁîµÄÔðÈκÍÖ´ÐÐÃüÁîµÄÔðÈηָ£¬Î¯Åɸø²»Í¬µÄ¶ÔÏó¡£ÃüÁîģʽÔÊÐíÇëÇóµÄÒ»·½ºÍ·¢Ë͵ÄÒ»·½¶ÀÁ¢¿ªÀ´£¬Ê¹µÃÇëÇóµÄÒ»·½²»±ØÖªµÀ½ÓÊÕÇëÇóµÄÒ»·½µÄ½Ó¿Ú£¬¸ü²»±ØÖªµÀÇëÇóÊÇÔõô±»½ÓÊÕ£¬ÒÔ¼°²Ù×÷ÊÇ·ñÖ´ÐУ¬ºÎʱ±»Ö´ÐÐÒÔ¼°ÊÇÔõô±»Ö´Ðеġ£ÏµÍ³Ö§³ÖÃüÁîµÄ³·Ïû¡£
????15¡¢INTERPRETER?°³ÓÐÒ»¸ö¡¶ÅÝMMÕæ¾¡·£¬ÉÏÃæÓи÷ÖÖÅÝMMµÄ¹¥ÂÔ£¬±ÈÈç˵ȥ³ÔÎ÷²ÍµÄ²½Ö衢ȥ¿´µçÓ°µÄ·½·¨µÈµÈ£¬¸úMMÔ¼»áʱ£¬Ö»Òª×öÒ»¸öInterpreter£¬ÕÕ×ÅÉÏÃæµÄ½Å±¾Ö´ÐоͿÉÒÔÁË¡£
¡¡¡¡½âÊÍÆ÷ģʽ£º¸ø¶¨Ò»¸öÓïÑԺ󣬽âÊÍÆ÷ģʽ¿ÉÒÔ¶¨Òå³öÆäÎÄ·¨µÄÒ»ÖÖ±íʾ£¬²¢Í¬Ê±Ìṩһ¸ö½âÊÍÆ÷¡£¿Í»§¶Ë¿ÉÒÔʹÓÃÕâ¸ö½âÊÍÆ÷À´½âÊÍÕâ¸öÓïÑÔÖеľä×Ó¡£½âÊÍÆ÷ģʽ½«ÃèÊöÔõÑùÔÚÓÐÁËÒ»¸ö¼òµ¥µÄÎÄ·¨ºó£¬Ê¹ÓÃģʽÉè¼Æ½âÊÍÕâЩÓï¾ä¡£ÔÚ½âÊÍÆ÷ģʽÀïÃæÌáµ½µÄÓïÑÔÊÇÖ¸ÈκνâÊÍÆ÷¶ÔÏóÄܹ»½âÊ͵ÄÈκÎ×éºÏ¡£ÔÚ½âÊÍÆ÷ģʽÖÐÐèÒª¶¨ÒåÒ»¸ö´ú±íÎÄ·¨µÄÃüÁîÀàµÄµÈ¼¶½á¹¹£¬Ò²¾ÍÊÇһϵÁеÄ×éºÏ¹æÔò¡£Ã¿Ò»¸öÃüÁî¶ÔÏó¶¼ÓÐÒ»¸ö½âÊÍ·½·¨£¬´ú±í¶ÔÃüÁî¶ÔÏóµÄ½âÊÍ¡£ÃüÁî¶ÔÏóµÄµÈ¼¶½á¹¹ÖеĶÔÏóµÄÈκÎÅÅÁÐ×éºÏ¶¼ÊÇÒ»¸öÓïÑÔ¡£
????16¡¢ITERATOR?ÎÒ°®ÉÏÁËMary£¬²»¹ËÒ»ÇеÄÏòËýÇó»é¡£
Mary£º¡°ÏëÒªÎÒ¸úÄã½á»é£¬µÃ´ðÓ¦ÎÒµÄÌõ¼þ¡±
ÎÒ£º¡°Ê²Ã´Ìõ¼þÎÒ¶¼´ðÓ¦£¬Äã˵°É¡±
Mary£º¡°ÎÒ¿´ÉÏÁËÄǸöÒ»¿ËÀµÄ×êʯ¡±
ÎÒ£º¡°ÎÒÂò£¬ÎÒÂò£¬»¹ÓÐÂ𣿡±
Mary£º¡°ÎÒ¿´ÉÏÁ˺þ±ßµÄÄǶ°±ðÊû¡±
ÎÒ£º¡°ÎÒÂò£¬ÎÒÂò£¬»¹ÓÐÂ𣿡±
Mary£º¡°ÄãµÄСµÜµÜ±ØÐëÒªÓÐ50cm³¤¡±
ÎÒÄÔ´üÎ˵ÄÒ»Éù£¬×øÔÚÒÎ×ÓÉÏ£¬Ò»Ò§ÑÀ£º¡°ÎÒ¼ô£¬ÎÒ¼ô£¬»¹ÓÐÂ𣿡±
¡¡
¡¡¡¡µü´ú×Óģʽ£ºµü´ú×Óģʽ¿ÉÒÔ˳Ðò·ÃÎÊÒ»¸ö¾Û¼¯ÖеÄÔªËØ¶ø²»±Ø±©Â¶¾Û¼¯µÄÄÚ²¿±íÏó¡£¶à¸ö¶ÔÏó¾ÛÔÚÒ»ÆðÐγɵÄ×ÜÌå³ÆÖ®Îª¾Û¼¯£¬¾Û¼¯¶ÔÏóÊÇÄܹ»°üÈÝÒ»×é¶ÔÏóµÄÈÝÆ÷¶ÔÏó¡£µü´ú×Óģʽ½«µü´úÂß¼·â×°µ½Ò»¸ö¶ÀÁ¢µÄ×Ó¶ÔÏóÖУ¬´Ó¶øÓë¾Û¼¯±¾Éí¸ô¿ª¡£µü´ú×Óģʽ¼ò»¯Á˾ۼ¯µÄ½çÃæ¡£Ã¿Ò»¸ö¾Û¼¯¶ÔÏ󶼿ÉÒÔÓÐÒ»¸ö»òÒ»¸öÒÔÉϵĵü´ú×Ó¶ÔÏó£¬Ã¿Ò»¸öµü´ú×ӵĵü´ú״̬¿ÉÒÔÊDZ˴˶ÀÁ¢µÄ¡£µü´úËã·¨¿ÉÒÔ¶ÀÁ¢ÓÚ¾Û¼¯½ÇÉ«±ä»¯¡£
????17¡¢MEDIATOR?ËĸöMM´òÂ齫£¬Ï໥֮¼äËÓ¦¸Ã¸øË¶àÉÙÇ®Ëã²»Çå³þÁË£¬ÐÒ¿÷µ±Ê±ÎÒÔÚÅԱߣ¬°´ÕÕ¸÷×ԵijïÂëÊýËãÇ®£¬×¬ÁËÇ®µÄ´ÓÎÒÕâÀïÄã¬ÅâÁËÇ®µÄÒ²¸¶¸øÎÒ£¬Ò»ÇоÍOKÀ²£¬°³µÃµ½ÁËËĸöMMµÄµç»°¡£
¡¡¡¡µ÷Í£Õßģʽ£ºµ÷Í£Õßģʽ°ü×°ÁËһϵÁжÔÏóÏ໥×÷Óõķ½Ê½£¬Ê¹µÃÕâЩ¶ÔÏó²»±ØÏ໥Ã÷ÏÔ×÷ÓᣴӶøÊ¹ËûÃÇ¿ÉÒÔËÉɢżºÏ¡£µ±Ä³Ð©¶ÔÏóÖ®¼äµÄ×÷Ó÷¢Éú¸Ä±äʱ£¬²»»áÁ¢¼´Ó°ÏìÆäËûµÄһЩ¶ÔÏóÖ®¼äµÄ×÷Óᣱ£Ö¤ÕâЩ×÷ÓÿÉÒԱ˴˶ÀÁ¢µÄ±ä»¯¡£µ÷Í£Õßģʽ½«¶à¶Ô¶àµÄÏ໥×÷ÓÃת»¯ÎªÒ»¶Ô¶àµÄÏ໥×÷Óᣵ÷Í£Õßģʽ½«¶ÔÏóµÄÐÐΪºÍÐ×÷³éÏ󻯣¬°Ñ¶ÔÏóÔÚС³ß¶ÈµÄÐÐΪÉÏÓëÆäËû¶ÔÏóµÄÏ໥×÷Ó÷ֿª´¦Àí¡£
????18¡¢MEMENTO?ͬʱ¸ú¼¸¸öMMÁÄÌìʱ£¬Ò»¶¨Òª¼ÇÇå³þ¸Õ²Å¸úMM˵ÁËЩʲô»°£¬²»È»MM·¢ÏÖÁ˻᲻¸ßÐ˵ÄŶ£¬ÐÒ¿÷ÎÒÓиö±¸Íü¼£¬¸Õ²ÅÓëÄĸöMM˵ÁËʲô»°ÎÒ¶¼¿½±´Ò»·Ý·Åµ½±¸Íü¼ÀïÃæ±£´æ£¬ÕâÑù¿ÉÒÔËæÊ±²ì¿´ÒÔǰµÄ¼Ç¼À²¡£
¡¡¡¡±¸Íü¼ģʽ£º±¸Íü¼¶ÔÏóÊÇÒ»¸öÓÃÀ´´æ´¢ÁíÍâÒ»¸ö¶ÔÏóÄÚ²¿×´Ì¬µÄ¿ìÕյĶÔÏó¡£±¸Íü¼ģʽµÄÓÃÒâÊÇÔÚ²»ÆÆ»µ·â×°µÄÌõ¼þÏ£¬½«Ò»¸ö¶ÔÏóµÄ״̬׽ס£¬²¢Íⲿ»¯£¬´æ´¢ÆðÀ´£¬´Ó¶ø¿ÉÒÔÔÚ½«À´ºÏÊʵÄʱºò°ÑÕâ¸ö¶ÔÏó»¹Ôµ½´æ´¢ÆðÀ´µÄ״̬¡£
????19¡¢OBSERVER?ÏëÖªµÀÔÛÃǹ«Ë¾×îÐÂMMÇ鱨Â𣿼ÓÈ빫˾µÄMMÇ鱨Óʼþ×é¾ÍÐÐÁË£¬tom¸ºÔðËѼ¯Ç鱨£¬Ëû·¢ÏÖµÄÐÂÇ鱨²»ÓÃÒ»¸öÒ»¸ö֪ͨÎÒÃÇ£¬Ö±½Ó·¢²¼¸øÓʼþ×飬ÎÒÃÇ×÷Ϊ¶©ÔÄÕߣ¨¹Û²ìÕߣ©¾Í¿ÉÒÔ¼°Ê±ÊÕµ½Ç鱨À²
¡¡¡¡¹Û²ìÕßģʽ£º¹Û²ìÕßģʽ¶¨ÒåÁËÒ»ÖÖÒ»¶Ó¶àµÄÒÀÀµ¹ØÏµ£¬Èöà¸ö¹Û²ìÕß¶ÔÏóͬʱ¼àÌýijһ¸öÖ÷Ìâ¶ÔÏó¡£Õâ¸öÖ÷Ìâ¶ÔÏóÔÚ״̬ÉÏ·¢Éú±ä»¯Ê±£¬»á֪ͨËùÓй۲ìÕß¶ÔÏó£¬Ê¹ËûÃÇÄܹ»×Ô¶¯¸üÐÂ×Ô¼º¡£
????20¡¢STATE?¸úMM½»Íùʱ£¬Ò»¶¨Òª×¢ÒâËýµÄ״̬Ŷ£¬ÔÚ²»Í¬µÄ״̬ʱËýµÄÐÐΪ»áÓв»Í¬£¬±ÈÈçÄãÔ¼Ëý½ñÌìÍíÉÏÈ¥¿´µçÓ°£¬¶ÔÄãûÐËȤµÄMM¾Í»á˵¡°ÓÐÊÂÇéÀ²¡±£¬¶ÔÄã²»ÌÖÑᵫ»¹Ã»Ï²»¶ÉϵÄMM¾Í»á˵¡°ºÃ°¡£¬²»¹ý¿ÉÒÔ´øÉÏÎÒͬÊÂô£¿¡±£¬ÒѾϲ»¶ÉÏÄãµÄMM¾Í»á˵¡°¼¸µãÖÓ£¿¿´ÍêµçÓ°ÔÙÈ¥ÅݰÉÔõôÑù£¿¡±£¬µ±È»Äã¿´µçÓ°¹ý³ÌÖбíÏÖÁ¼ºÃµÄ»°£¬Ò²¿ÉÒÔ°ÑMMµÄ״̬´Ó²»ÌÖÑ᲻ϲ»¶±ä³Éϲ»¶Å¶¡£
¡¡¡¡×´Ì¬Ä£Ê½£º×´Ì¬Ä£Ê½ÔÊÐíÒ»¸ö¶ÔÏóÔÚÆäÄÚ²¿×´Ì¬¸Ä±äµÄʱºò¸Ä±äÐÐΪ¡£Õâ¸ö¶ÔÏó¿´ÉÏÈ¥ÏóÊǸıäÁËËüµÄÀàÒ»Ñù¡£×´Ì¬Ä£Ê½°ÑËùÑо¿µÄ¶ÔÏóµÄÐÐΪ°ü×°ÔÚ²»Í¬µÄ״̬¶ÔÏóÀÿһ¸ö״̬¶ÔÏó¶¼ÊôÓÚÒ»¸ö³éÏó״̬ÀàµÄÒ»¸ö×ÓÀࡣ״̬ģʽµÄÒâͼÊÇÈÃÒ»¸ö¶ÔÏóÔÚÆäÄÚ²¿×´Ì¬¸Ä±äµÄʱºò£¬ÆäÐÐÎªÒ²ËæÖ®¸Ä±ä¡£×´Ì¬Ä£Ê½ÐèÒª¶Ôÿһ¸öϵͳ¿ÉÄÜÈ¡µÃµÄ״̬´´Á¢Ò»¸ö״̬ÀàµÄ×ÓÀà¡£µ±ÏµÍ³µÄ״̬±ä»¯Ê±£¬ÏµÍ³±ã¸Ä±äËùÑ¡µÄ×ÓÀà¡£
????21¡¢STRATEGY?¸ú²»Í¬ÀàÐ͵ÄMMÔ¼»á£¬ÒªÓò»Í¬µÄ²ßÂÔ£¬ÓеÄÇëµçÓ°±È½ÏºÃ£¬ÓеÄÔòÈ¥³ÔС³ÔЧ¹û²»´í£¬ÓеÄÈ¥º£±ßÀËÂþ×îºÏÊÊ£¬µ¥Ä¿µÄ¶¼ÊÇΪÁ˵õ½MMµÄ·¼ÐÄ£¬ÎÒµÄ×·MM½õÄÒÖÐÓкöàStrategyŶ¡£
¡¡¡¡²ßÂÔģʽ£º²ßÂÔģʽÕë¶ÔÒ»×éËã·¨£¬½«Ã¿Ò»¸öËã·¨·â×°µ½¾ßÓй²Í¬½Ó¿ÚµÄ¶ÀÁ¢µÄÀàÖУ¬´Ó¶øÊ¹µÃËüÃÇ¿ÉÒÔÏà»¥Ìæ»»¡£²ßÂÔģʽʹµÃËã·¨¿ÉÒÔÔÚ²»Ó°Ïìµ½¿Í»§¶ËµÄÇé¿öÏ·¢Éú±ä»¯¡£²ßÂÔģʽ°ÑÐÐΪºÍ»·¾³·Ö¿ª¡£»·¾³ÀฺÔðά³ÖºÍ²éѯÐÐΪÀ࣬¸÷ÖÖËã·¨ÔÚ¾ßÌåµÄ²ßÂÔÀàÖÐÌṩ¡£ÓÉÓÚËã·¨ºÍ»·¾³¶ÀÁ¢¿ªÀ´£¬Ëã·¨µÄÔö¼õ£¬Ð޸ͼ²»»áÓ°Ïìµ½»·¾³ºÍ¿Í»§¶Ë¡£
????22¡¢TEMPLATE METHOD??¿´¹ý¡¶ÈçºÎ˵·þÅ®ÉúÉÏ´²¡·Õⲿ¾µäÎÄÕÂÂð£¿Å®Éú´ÓÈÏʶµ½ÉÏ´²µÄ²»±äµÄ²½Öè·ÖΪÇÉÓö¡¢´òÆÆ½©¾Ö¡¢Õ¹¿ª×·Çó¡¢½ÓÎÇ¡¢Ç°Ï·¡¢¶¯ÊÖ¡¢°®¸§¡¢½øÈ¥°Ë´ó²½Öè(Template method)£¬µ«Ã¿¸ö²½ÖèÕë¶Ô²»Í¬µÄÇé¿ö£¬¶¼Óв»Ò»ÑùµÄ×ö·¨£¬Õâ¾ÍÒª¿´ÄãËæ»úÓ¦±äÀ²(¾ßÌåʵÏÖ)£»
¡¡¡¡Ä£°å·½·¨Ä£Ê½£ºÄ£°å·½·¨Ä£Ê½×¼±¸Ò»¸ö³éÏóÀ࣬½«²¿·ÖÂß¼ÒÔ¾ßÌå·½·¨ÒÔ¼°¾ßÌå¹¹Ôì×ÓµÄÐÎʽʵÏÖ£¬È»ºóÉùÃ÷һЩ³éÏó·½·¨À´ÆÈʹ×ÓÀàʵÏÖÊ£ÓàµÄÂß¼¡£²»Í¬µÄ×ÓÀà¿ÉÒÔÒÔ²»Í¬µÄ·½Ê½ÊµÏÖÕâЩ³éÏó·½·¨£¬´Ó¶ø¶ÔÊ£ÓàµÄÂß¼Óв»Í¬µÄʵÏÖ¡£ÏÈÖÆ¶¨Ò»¸ö¶¥¼¶Âß¼¿ò¼Ü£¬¶ø½«Âß¼µÄϸ½ÚÁô¸ø¾ßÌåµÄ×ÓÀàȥʵÏÖ¡£
????23¡¢VISITOR?ÇéÈ˽ڵ½ÁË£¬Òª¸øÃ¿¸öMMËÍÒ»ÊøÏÊ»¨ºÍÒ»ÕÅ¿¨Æ¬£¬¿ÉÊÇÿ¸öMMË͵ύ¶¼ÒªÕë¶ÔËý¸öÈ˵ÄÌØµã£¬Ã¿ÕÅ¿¨Æ¬Ò²Òª¸ù¾Ý¸öÈ˵ÄÌØµãÀ´Ìô£¬ÎÒÒ»¸öÈËÄĸãµÃÇå³þ£¬»¹ÊÇÕÒ»¨µêÀϰåºÍÀñÆ·µêÀϰå×öÒ»ÏÂVisitor£¬Èû¨µêÀϰå¸ù¾ÝMMµÄÌØµãÑ¡Ò»Êø»¨£¬ÈÃÀñÆ·µêÀϰåÒ²¸ù¾Ýÿ¸öÈËÌØµãѡһÕÅ¿¨£¬ÕâÑù¾ÍÇáËɶàÁË£»
¡¡¡¡·ÃÎÊÕßģʽ£º·ÃÎÊÕßģʽµÄÄ¿µÄÊÇ·âװһЩʩ¼ÓÓÚijÖÖÊý¾Ý½á¹¹ÔªËØÖ®ÉϵIJÙ×÷¡£Ò»µ©ÕâЩ²Ù×÷ÐèÒªÐ޸ĵϰ£¬½ÓÊÜÕâ¸ö²Ù×÷µÄÊý¾Ý½á¹¹¿ÉÒÔ±£³Ö²»±ä¡£·ÃÎÊÕßģʽÊÊÓÃÓÚÊý¾Ý½á¹¹Ïà¶Ô䶨µÄϵͳ£¬Ëü°ÑÊý¾Ý½á¹¹ºÍ×÷ÓÃÓڽṹÉϵIJÙ×÷Ö®¼äµÄñîºÏ½âÍÑ¿ª£¬Ê¹µÃ²Ù×÷¼¯ºÏ¿ÉÒÔÏà¶Ô×ÔÓɵÄÑÝ»¯¡£·ÃÎÊÕßģʽʹµÃÔö¼ÓеIJÙ×÷±äµÄºÜÈÝÒ×£¬¾ÍÊÇÔö¼ÓÒ»¸öеķÃÎÊÕßÀà¡£·ÃÎÊÕßģʽ½«ÓйصÄÐÐΪ¼¯Öе½Ò»¸ö·ÃÎÊÕß¶ÔÏóÖУ¬¶ø²»ÊÇ·ÖÉ¢µ½Ò»¸ö¸öµÄ½ÚµãÀàÖС£µ±Ê¹Ó÷ÃÎÊÕßģʽʱ£¬Òª½«¾¡¿ÉÄܶàµÄ¶ÔÏóä¯ÀÀÂß¼·ÅÔÚ·ÃÎÊÕßÀàÖУ¬¶ø²»ÊǷŵ½ËüµÄ×ÓÀàÖС£·ÃÎÊÕßģʽ¿ÉÒÔ¿ç¹ý¼¸¸öÀàµÄµÈ¼¶½á¹¹·ÃÎÊÊôÓÚ²»Í¬µÄµÈ¼¶½á¹¹µÄ³ÉÔ±Àà¡£
ʹÓÃWindows²Ù×÷ϵͳµÄÅóÓѶÔExcel£¨µç×Ó±í¸ñ£©Ò»¶¨²»»áİÉú£¬µ«ÊÇҪʹÓÃJavaÓïÑÔÀ´²Ù×ÝExcelÎļþ²¢²»ÊÇÒ»¼þÈÝÒ×µÄÊ¡£ÔÚWebÓ¦ÓÃÈÕÒæÊ¢ÐеĽñÌ죬ͨ¹ýWebÀ´²Ù×÷ExcelÎļþµÄÐèÇóÔ½À´Ô½Ç¿ÁÒ£¬Ä¿Ç°½ÏΪÁ÷ÐеIJÙ×÷ÊÇÔÚJSP»òServlet Öд´½¨Ò»¸öCSV £¨comma separated values£©Îļþ£¬²¢½«Õâ¸öÎļþÒÔMIME£¬text/csvÀàÐÍ·µ»Ø¸øä¯ÀÀÆ÷£¬½Ó×Åä¯ÀÀÆ÷µ÷ÓÃExcel²¢ÇÒÏÔʾCSVÎļþ¡£ÕâÑùÖ»ÊÇ˵¿ÉÒÔ·ÃÎʵ½ExcelÎļþ£¬µ«ÊÇ»¹²»ÄÜÕæÕýµÄ²Ù×ÝExcelÎļþ£¬±¾ÎĽ«¸ø´ó¼ÒÒ»¸ö¾ªÏ²£¬Ïò´ó¼Ò½éÉÜÒ»¸ö¿ª·ÅÔ´ÂëÏîÄ¿£¬Java Excel API£¬Ê¹ÓÃËü´ó¼Ò¾Í¿ÉÒÔ·½±ãµØ²Ù×ÝExcelÎļþÁË¡£
¡¡¡¡Java Excel API¼ò½é
¡¡¡¡Java ExcelÊÇÒ»¿ª·ÅÔ´ÂëÏîÄ¿£¬Í¨¹ýËüJava¿ª·¢ÈËÔ±¿ÉÒÔ¶ÁÈ¡ExcelÎļþµÄÄÚÈÝ¡¢´´½¨ÐµÄExcelÎļþ¡¢¸üÐÂÒѾ´æÔÚµÄExcelÎļþ¡£Ê¹ÓøÃAPI·ÇWindows²Ù×÷ϵͳҲ¿ÉÒÔͨ¹ý´¿JavaÓ¦ÓÃÀ´´¦ÀíExcelÊý¾Ý±í¡£ÒòΪÊÇʹÓÃJava±àдµÄ£¬ËùÒÔÎÒÃÇÔÚWebÓ¦ÓÃÖпÉÒÔͨ¹ýJSP¡¢ServletÀ´µ÷ÓÃAPIʵÏÖ¶ÔExcelÊý¾Ý±íµÄ·ÃÎÊ¡£
¡¡¡¡ÏÖÔÚ·¢²¼µÄÎȶ¨°æ±¾ÊÇV2.0£¬ÌṩÒÔϹ¦ÄÜ£º
¡¡¡¡¡¡´ÓExcel 95¡¢97¡¢2000µÈ¸ñʽµÄÎļþÖжÁÈ¡Êý¾Ý£»
¡¡¡¡¡¡¶ÁÈ¡Excel¹«Ê½£¨¿ÉÒÔ¶ÁÈ¡Excel 97ÒÔºóµÄ¹«Ê½£©£»
¡¡¡¡¡¡Éú³ÉExcelÊý¾Ý±í£¨¸ñʽΪExcel 97£©£»
¡¡¡¡¡¡Ö§³Ö×ÖÌå¡¢Êý×Ö¡¢ÈÕÆÚµÄ¸ñʽ»¯£»
¡¡¡¡¡¡Ö§³Öµ¥Ôª¸ñµÄÒõÓ°²Ù×÷£¬ÒÔ¼°ÑÕÉ«²Ù×÷£»
¡¡¡¡¡¡ÐÞ¸ÄÒѾ´æÔÚµÄÊý¾Ý±í£»
¡¡¡¡ÏÖÔÚ»¹²»Ö§³ÖÒÔϹ¦ÄÜ£¬µ«²»¾Ã¾Í»áÌṩÁË£º
¡¡¡¡¡¡²»Äܹ»¶Áȡͼ±íÐÅÏ¢£»
¡¡¡¡¡¡¿ÉÒÔ¶Á£¬µ«ÊDz»ÄÜÉú³É¹«Ê½£¬ÈκÎÀàÐ͹«Ê½×îºóµÄ¼ÆËãÖµ¶¼¿ÉÒÔ¶Á³ö£»
¡¡
¡¡¡¡ Ó¦ÓÃʾÀý
¡¡¡¡1¡¢´ÓExcelÎļþ¶ÁÈ¡Êý¾Ý±í
¡¡¡¡Java Excel API¼È¿ÉÒÔ´Ó±¾µØÎļþϵͳµÄÒ»¸öÎļþ(.xls)£¬Ò²¿ÉÒÔ´ÓÊäÈëÁ÷ÖжÁÈ¡ExcelÊý¾Ý±í¡£¶ÁÈ¡ExcelÊý¾Ý±íµÄµÚÒ»²½ÊÇ´´½¨Workbook(ÊõÓ¹¤×÷±¡)£¬ÏÂÃæµÄ´úÂëÆ¬¶Î¾ÙÀý˵Ã÷ÁËÓ¦¸ÃÈçºÎ²Ù×÷£º(ÍêÕû´úÂë¼ûExcelReading.java)
import java.io.*;
import jxl.*;
¡ ¡ ¡ ¡
try
{
//¹¹½¨Workbook¶ÔÏó, Ö»¶ÁWorkbook¶ÔÏó
//Ö±½Ó´Ó±¾µØÎļþ´´½¨Workbook
//´ÓÊäÈëÁ÷´´½¨Workbook
InputStream is = new FileInputStream(sourcefile);
jxl.Workbook rwb = Workbook.getWorkbook(is);
}
catch (Exception e)
{
e.printStackTrace();
}
¡¡¡¡Ò»µ©´´½¨ÁËWorkbook£¬ÎÒÃǾͿÉÒÔͨ¹ýËüÀ´·ÃÎÊExcel Sheet(ÊõÓ¹¤×÷±í)¡£²Î¿¼ÏÂÃæµÄ´úÂëÆ¬¶Î£º
//»ñÈ¡µÚÒ»ÕÅSheet±í
Sheet rs = rwb.getSheet(0);
¡¡¡¡ÎÒÃǼȿÉÄÜͨ¹ýSheetµÄÃû³ÆÀ´·ÃÎÊËü£¬Ò²¿ÉÒÔͨ¹ýϱêÀ´·ÃÎÊËü¡£Èç¹ûͨ¹ýϱêÀ´·ÃÎʵϰ£¬Òª×¢ÒâµÄÒ»µãÊÇϱê´Ó0¿ªÊ¼£¬¾ÍÏñÊý×éÒ»Ñù¡£
¡¡¡¡Ò»µ©µÃµ½ÁËSheet£¬ÎÒÃǾͿÉÒÔͨ¹ýËüÀ´·ÃÎÊExcel Cell(ÊõÓµ¥Ôª¸ñ)¡£²Î¿¼ÏÂÃæµÄ´úÂëÆ¬¶Î£º
//»ñÈ¡µÚÒ»ÐУ¬µÚÒ»ÁеÄÖµ
Cell c00 = rs.getCell(0, 0);
String strc00 = c00.getContents();
//»ñÈ¡µÚÒ»ÐУ¬µÚ¶þÁеÄÖµ
Cell c10 = rs.getCell(1, 0);
String strc10 = c10.getContents();
//»ñÈ¡µÚ¶þÐУ¬µÚ¶þÁеÄÖµ
Cell c11 = rs.getCell(1, 1);
String strc11 = c11.getContents();
System.out.println("Cell(0, 0)" + " value : " + strc00 + "; type : " + c00.getType());
System.out.println("Cell(1, 0)" + " value : " + strc10 + "; type : " + c10.getType());
System.out.println("Cell(1, 1)" + " value : " + strc11 + "; type : " + c11.getType());
¡¡¡¡Èç¹û½ö½öÊÇÈ¡µÃCellµÄÖµ£¬ÎÒÃÇ¿ÉÒÔ·½±ãµØÍ¨¹ýgetContents()·½·¨£¬Ëü¿ÉÒÔ½«ÈκÎÀàÐ͵ÄCellÖµ¶¼×÷Ϊһ¸ö×Ö·û´®·µ»Ø¡£Ê¾Àý´úÂëÖÐCell(0, 0)ÊÇÎı¾ÐÍ£¬Cell(1, 0)ÊÇÊý×ÖÐÍ£¬Cell(1,1)ÊÇÈÕÆÚÐÍ£¬Í¨¹ýgetContents()£¬ÈýÖÖÀàÐ͵ķµ»ØÖµ¶¼ÊÇ×Ö·ûÐÍ¡£
¡¡¡¡Èç¹ûÓÐÐèÒªÖªµÀCellÄÚÈݵÄÈ·ÇÐÀàÐÍ£¬APIÒ²ÌṩÁËһϵÁеķ½·¨¡£²Î¿¼ÏÂÃæµÄ´úÂëÆ¬¶Î£º
String strc00 = null;
double strc10 = 0.00;
Date strc11 = null;
Cell c00 = rs.getCell(0, 0);
Cell c10 = rs.getCell(1, 0);
Cell c11 = rs.getCell(1, 1);
if(c00.getType() == CellType.LABEL)
{
LabelCell labelc00 = (LabelCell)c00;
strc00 = labelc00.getString();
}
if(c10.getType() == CellType.NUMBER)
{
NmberCell numc10 = (NumberCell)c10;
strc10 = numc10.getvalue();
}
if(c11.getType() == CellType.DATE)
{
DateCell datec11 = (DateCell)c11;
strc11 = datec11.getDate();
}
System.out.println("Cell(0, 0)" + " value : " + strc00 + "; type : " + c00.getType());
System.out.println("Cell(1, 0)" + " value : " + strc10 + "; type : " + c10.getType());
System.out.println("Cell(1, 1)" + " value : " + strc11 + "; type : " + c11.getType());
¡¡¡¡Ôڵõ½Cell¶ÔÏóºó£¬Í¨¹ýgetType()·½·¨¿ÉÒÔ»ñµÃ¸Ãµ¥Ôª¸ñµÄÀàÐÍ£¬È»ºóÓëAPIÌṩµÄ»ù±¾ÀàÐÍÏàÆ¥Åä£¬Ç¿ÖÆ×ª»»³ÉÏàÓ¦µÄÀàÐÍ£¬×îºóµ÷ÓÃÏàÓ¦µÄȡֵ·½·¨getXXX()£¬¾Í¿ÉÒԵõ½È·¶¨ÀàÐ͵ÄÖµ¡£APIÌṩÁËÒÔÏ»ù±¾ÀàÐÍ£¬ÓëExcelµÄÊý¾Ý¸ñʽÏà¶ÔÓ¦£¬ÈçÏÂͼËùʾ£º
¡¡¡¡Ã¿ÖÖÀàÐ͵ľßÌåÒâÒ壬Çë²Î¼ûJava Excel API document£®
¡¡¡¡µ±ÄãÍê³É¶ÔExcelµç×Ó±í¸ñÊý¾ÝµÄ´¦Àíºó£¬Ò»¶¨ÒªÊ¹ÓÃclose()·½·¨À´¹Ø±ÕÏÈǰ´´½¨µÄ¶ÔÏó£¬ÒÔÊͷŶÁÈ¡Êý¾Ý±íµÄ¹ý³ÌÖÐËùÕ¼ÓõÄÄÚ´æ¿Õ¼ä£¬ÔÚ¶ÁÈ¡´óÁ¿Êý¾ÝʱÏÔµÃÓÈÎªÖØÒª¡£²Î¿¼ÈçÏ´úÂëÆ¬¶Î£º
//²Ù×÷Íê³Éʱ£¬¹Ø±Õ¶ÔÏó£¬ÊÍ·ÅÕ¼ÓõÄÄÚ´æ¿Õ¼ä
rwb.close();
¡¡¡¡Java Excel APIÌṩÁËÐí¶à·ÃÎÊExcelÊý¾Ý±íµÄ·½·¨£¬ÔÚÕâÀïÎÒÖ»¼òÒªµØ½éÉܼ¸¸ö³£Óõķ½·¨£¬ÆäËüµÄ·½·¨Çë²Î¿¼¸½Â¼ÖеÄJava Excel API document£®
WorkbookÀàÌṩµÄ·½·¨
¡¡¡¡1. int getNumberOfSheets()
¡¡¡¡»ñµÃ¹¤×÷±¡£¨Workbook£©Öй¤×÷±í£¨Sheet£©µÄ¸öÊý£¬Ê¾Àý£º
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
int sheets = rwb.getNumberOfSheets();
¡¡¡¡2. Sheet[] getSheets()
¡¡¡¡·µ»Ø¹¤×÷±¡£¨Workbook£©Öй¤×÷±í£¨Sheet£©¶ÔÏóÊý×飬ʾÀý£º
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
Sheet[] sheets = rwb.getSheets();
¡¡¡¡3. String getVersion()
¡¡¡¡·µ»ØÕýÔÚʹÓõÄAPIµÄ°æ±¾ºÅ£¬ºÃÏñÊÇûʲô̫´óµÄ×÷Óá£
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
String apiVersion = rwb.getVersion();
¡¡¡¡Sheet½Ó¿ÚÌṩµÄ·½·¨
¡¡¡¡1) String getName()
¡¡¡¡»ñÈ¡SheetµÄÃû³Æ£¬Ê¾Àý£º
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
String sheetName = rs.getName();
¡¡¡¡2) int getColumns()
¡¡¡¡»ñÈ¡Sheet±íÖÐËù°üº¬µÄ×ÜÁÐÊý£¬Ê¾Àý£º
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
int rsColumns = rs.getColumns();
¡¡¡¡3) Cell[] getColumn(int column)
¡¡¡¡»ñȡijһÁеÄËùÓе¥Ôª¸ñ£¬·µ»ØµÄÊǵ¥Ôª¸ñ¶ÔÏóÊý×飬ʾÀý£º
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
Cell[] cell = rs.getColumn(0);
¡¡¡¡4) int getRows()
¡¡¡¡»ñÈ¡Sheet±íÖÐËù°üº¬µÄ×ÜÐÐÊý£¬Ê¾Àý£º
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
int rsRows = rs.getRows();
¡¡¡¡5) Cell[] getRow(int row)
¡¡¡¡»ñȡijһÐеÄËùÓе¥Ôª¸ñ£¬·µ»ØµÄÊǵ¥Ôª¸ñ¶ÔÏóÊý×飬ʾÀý×Ó£º
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
Cell[] cell = rs.getRow(0);
¡¡¡¡6) Cell getCell(int column, int row)
¡¡¡¡»ñȡָ¶¨µ¥Ôª¸ñµÄ¶ÔÏóÒýÓã¬ÐèҪעÒâµÄÊÇËüµÄÁ½¸ö²ÎÊý£¬µÚÒ»¸öÊÇÁÐÊý£¬µÚ¶þ¸öÊÇÐÐÊý£¬ÕâÓëͨ³£µÄÐС¢ÁÐ×éºÏÓÐЩ²»Í¬¡£
jxl.Workbook rwb = jxl.Workbook.getWorkbook(new File(sourcefile));
jxl.Sheet rs = rwb.getSheet(0);
Cell cell = rs.getCell(0, 0);
¡¡¡¡2¡¢Éú³ÉеÄExcel¹¤×÷±¡
¡¡¡¡ÏÂÃæµÄ´úÂëÖ÷ÒªÊÇÏò´ó¼Ò½éÉÜÈçºÎÉú³É¼òµ¥µÄExcel¹¤×÷±í£¬ÔÚÕâÀïµ¥Ôª¸ñµÄÄÚÈÝÊDz»´øÈκÎÐÞÊεÄ(È磺×ÖÌ壬ÑÕÉ«µÈµÈ)£¬ËùÓеÄÄÚÈݶ¼×÷Ϊ×Ö·û´®Ð´Èë¡£(ÍêÕû´úÂë¼ûExcelWriting.java)
¡¡¡¡Óë¶ÁÈ¡Excel¹¤×÷±íÏàËÆ£¬Ê×ÏÈҪʹÓÃWorkbookÀàµÄ¹¤³§·½·¨´´½¨Ò»¸ö¿ÉдÈëµÄ¹¤×÷±¡(Workbook)¶ÔÏó£¬ÕâÀïҪעÒâµÄÊÇ£¬Ö»ÄÜͨ¹ýAPIÌṩµÄ¹¤³§·½·¨À´´´½¨Workbook£¬¶ø²»ÄÜʹÓÃWritableWorkbookµÄ¹¹Ô캯Êý£¬ÒòΪÀàWritableWorkbookµÄ¹¹Ô캯ÊýΪprotectedÀàÐÍ¡£Ê¾Àý´úÂëÆ¬¶ÎÈçÏ£º
import java.io.*;
import jxl.*;
import jxl.write.*;
¡ ¡ ¡ ¡
try
{
//¹¹½¨Workbook¶ÔÏó, Ö»¶ÁWorkbook¶ÔÏó
//Method 1£º´´½¨¿ÉдÈëµÄExcel¹¤×÷±¡
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile));
//Method 2£º½«WritableWorkbookÖ±½ÓдÈëµ½Êä³öÁ÷
/*
OutputStream os = new FileOutputStream(targetfile);
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os);
*/
}
catch (Exception e)
{
e.printStackTrace();
}
¡¡¡¡APIÌṩÁËÁ½ÖÖ·½Ê½À´´¦Àí¿ÉдÈëµÄÊä³öÁ÷£¬Ò»ÖÖÊÇÖ±½ÓÉú³É±¾µØÎļþ£¬Èç¹ûÎļþÃû²»´øÈ«Â·¾¶µÄ»°£¬È±Ê¡µÄÎļþ»á¶¨Î»ÔÚµ±Ç°Ä¿Â¼£¬Èç¹ûÎļþÃû´øÓÐȫ·¾¶µÄ»°£¬ÔòÉú³ÉµÄExcelÎļþÔò»á¶¨Î»ÔÚÏàÓ¦µÄĿ¼£»ÁíÍâÒ»ÖÖÊǽ«Excel¶ÔÏóÖ±½ÓдÈëµ½Êä³öÁ÷£¬ÀýÈ磺Óû§Í¨¹ýä¯ÀÀÆ÷À´·ÃÎÊWeb·þÎñÆ÷£¬Èç¹ûHTTPÍ·ÉèÖÃÕýÈ·µÄ»°£¬ä¯ÀÀÆ÷×Ô¶¯µ÷Óÿͻ§¶ËµÄExcelÓ¦ÓóÌÐò£¬À´ÏÔʾ¶¯Ì¬Éú³ÉµÄExcelµç×Ó±í¸ñ¡£
¡¡¡¡½ÓÏÂÀ´¾ÍÊÇÒª´´½¨¹¤×÷±í£¬´´½¨¹¤×÷±íµÄ·½·¨Óë´´½¨¹¤×÷±¡µÄ·½·¨¼¸ºõÒ»Ñù£¬Í¬ÑùÊÇͨ¹ý¹¤³§Ä£Ê½·½·¨»ñµÃÏàÓ¦µÄ¶ÔÏ󣬸÷½·¨ÐèÒªÁ½¸ö²ÎÊý£¬Ò»¸öÊǹ¤×÷±íµÄÃû³Æ£¬ÁíÒ»¸öÊǹ¤×÷±íÔÚ¹¤×÷±¡ÖеÄλÖ㬲ο¼ÏÂÃæµÄ´úÂëÆ¬¶Î£º
//´´½¨Excel¹¤×÷±í
jxl.write.WritableSheet ws = wwb.createSheet("Test Sheet 1", 0);
"Õâ¹øÒ²Ö§ºÃÁË£¬²ÄÁÏÒ²×¼±¸ÆëÈ«ÁË£¬¿ÉÒÔ¿ªÊ¼Ï¹øÁË£¡"£¬ÏÖÔÚÒª×öµÄÖ»ÊÇʵÀý»¯APIËùÌṩµÄExcel»ù±¾Êý¾ÝÀàÐÍ£¬²¢½«ËüÃÇÌí¼Óµ½¹¤×÷±íÖоͿÉÒÔÁË£¬²Î¿¼ÏÂÃæµÄ´úÂëÆ¬¶Î£º
//1.Ìí¼ÓLabel¶ÔÏó
jxl.write.Label labelC = new jxl.write.Label(0, 0, "This is a Label cell");
ws.addCell(labelC);
//Ìí¼Ó´øÓÐ×ÖÐÍFormattingµÄ¶ÔÏó
jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true);
jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
jxl.write.Label labelCF = new jxl.write.Label(1, 0, "This is a Label Cell", wcfF);
ws.addCell(labelCF);
//Ìí¼Ó´øÓÐ×ÖÌåÑÕÉ«FormattingµÄ¶ÔÏó
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false,
Underlinestyle.NO_UNDERLINE, jxl.format.Colour.RED);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
jxl.write.Label labelCFC = new jxl.write.Label(1, 0, "This is a Label Cell", wcfFC);
ws.addCell(labelCF);
//2.Ìí¼ÓNumber¶ÔÏó
jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);
ws.addCell(labelN);
//Ìí¼Ó´øÓÐformattingµÄNumber¶ÔÏó
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN);
ws.addCell(labelNF);
//3.Ìí¼ÓBoolean¶ÔÏó
jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);
ws.addCell(labelB);
//4.Ìí¼ÓDateTime¶ÔÏó
jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date());
ws.addCell(labelDT);
//Ìí¼Ó´øÓÐformattingµÄDateFormat¶ÔÏó
jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyy hh:mm:ss");
jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, new java.util.Date(), wcfDF);
ws.addCell(labelDTF);
¡¡¡¡ÕâÀïÓÐÁ½µã´ó¼ÒÒªÒýÆð´ó¼ÒµÄ×¢Òâ¡£µÚÒ»µã£¬ÔÚ¹¹Ôìµ¥Ôª¸ñʱ£¬µ¥Ôª¸ñÔÚ¹¤×÷±íÖеÄλÖþÍÒѾȷ¶¨ÁË¡£Ò»µ©´´½¨ºó£¬µ¥Ôª¸ñµÄλÖÃÊDz»Äܹ»±ä¸üµÄ£¬¾¡¹Üµ¥Ôª¸ñµÄÄÚÈÝÊÇ¿ÉÒԸıäµÄ¡£µÚ¶þµã£¬µ¥Ôª¸ñµÄ¶¨Î»Êǰ´ÕÕÏÂÃæÕâÑùµÄ¹æÂÉ(column, row)£¬¶øÇÒϱ궼ÊÇ´Ó0¿ªÊ¼£¬ÀýÈ磬A1±»´æ´¢ÔÚ(0, 0)£¬B1±»´æ´¢ÔÚ(1, 0)¡£
¡¡¡¡×îºó£¬²»ÒªÍü¼Ç¹Ø±Õ´ò¿ªµÄExcel¹¤×÷±¡¶ÔÏó£¬ÒÔÊÍ·ÅÕ¼ÓõÄÄڴ棬²Î¼ûÏÂÃæµÄ´úÂëÆ¬¶Î£º
//дÈëExel¹¤×÷±í
wwb.write();
//¹Ø±ÕExcel¹¤×÷±¡¶ÔÏó
wwb.close();
¡¡¡¡Õâ¿ÉÄÜÓë¶ÁÈ¡ExcelÎļþµÄ²Ù×÷ÓÐÉÙÉÙ²»Í¬£¬ÔڹرÕExcel¶ÔÏó֮ǰ£¬Äã±ØÐëÒªÏȵ÷ÓÃwrite()·½·¨£¬ÒòΪÏÈǰµÄ²Ù×÷¶¼ÊÇ´æ´¢ÔÚ»º´æÖеģ¬ËùÒÔҪͨ¹ý¸Ã·½·¨½«²Ù×÷µÄÄÚÈݱ£´æÔÚÎļþÖС£Èç¹ûÄãÏȹرÕÁËExcel¶ÔÏó£¬ÄÇôֻÄܵõ½Ò»ÕſյŤ×÷±¡ÁË¡£
¡¡¡¡3¡¢¿½±´¡¢¸üÐÂExcel¹¤×÷±¡
¡¡¡¡½ÓÏÂÀ´¼òÒª½éÉÜÒ»ÏÂÈçºÎ¸üÐÂÒ»¸öÒѾ´æÔڵŤ×÷±¡£¬Ö÷ÒªÊÇÏÂÃæ¶þ²½²Ù×÷£¬µÚÒ»²½Êǹ¹ÔìÖ»¶ÁµÄExcel¹¤×÷±¡£¬µÚ¶þ²½ÊÇÀûÓÃÒѾ´´½¨µÄExcel¹¤×÷±¡´´½¨ÐµĿÉдÈëµÄExcel¹¤×÷±¡£¬²Î¿¼ÏÂÃæµÄ´úÂëÆ¬¶Î£º(ÍêÕû´úÂë¼ûExcelModifying.java)
//´´½¨Ö»¶ÁµÄExcel¹¤×÷±¡µÄ¶ÔÏó
jxl.Workbook rw = jxl.Workbook.getWorkbook(new File(sourcefile));
//´´½¨¿ÉдÈëµÄExcel¹¤×÷±¡¶ÔÏó
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile), rw);
//¶ÁÈ¡µÚÒ»ÕŹ¤×÷±í
jxl.write.WritableSheet ws = wwb.getSheet(0);
//»ñµÃµÚÒ»¸öµ¥Ôª¸ñ¶ÔÏó
jxl.write.WritableCell wc = ws.getWritableCell(0, 0);
//Åжϵ¥Ôª¸ñµÄÀàÐÍ, ×ö³öÏàÓ¦µÄת»¯
if(wc.getType() == CellType.LABEL)
{
Label l = (Label)wc;
l.setString("The value has been modified.");
}
//дÈëExcel¶ÔÏó
wwb.write();
//¹Ø±Õ¿ÉдÈëµÄExcel¶ÔÏó
wwb.close();
//¹Ø±ÕÖ»¶ÁµÄExcel¶ÔÏó
rw.close();
¡¡¡¡Ö®ËùÒÔʹÓÃÕâÖÖ·½Ê½¹¹½¨Excel¶ÔÏó£¬ÍêÈ«ÊÇÒòΪЧÂʵÄÔÒò£¬ÒòΪÉÏÃæµÄʾÀý²ÅÊÇAPIµÄÖ÷ÒªÓ¦Óá£ÎªÁËÌá¸ßÐÔÄÜ£¬ÔÚ¶ÁÈ¡¹¤×÷±íʱ£¬ÓëÊý¾ÝÏà¹ØµÄһЩÊä³öÐÅÏ¢£¬ËùÓеĸñʽÐÅÏ¢£¬È磺×ÖÌå¡¢ÑÕÉ«µÈµÈ£¬ÊDz»±»´¦ÀíµÄ£¬ÒòΪÎÒÃǵÄÄ¿µÄÊÇ»ñµÃÐÐÊý¾ÝµÄÖµ£¬¼ÈʹûÓÐÁËÐÞÊΣ¬Ò²²»»á¶ÔÐÐÊý¾ÝµÄÖµ²úÉúʲôӰÏ졣ΨһµÄ²»ÀûÖ®´¦¾ÍÊÇ£¬ÔÚÄÚ´æÖлáͬʱ±£´æÁ½¸öͬÑùµÄ¹¤×÷±í£¬ÕâÑùµ±¹¤×÷±íÌå»ý±È½Ï´óʱ£¬»áÕ¼ÓÃÏ൱´óµÄÄڴ棬µ«ÏÖÔÚºÃÏñÄÚ´æµÄ´óС²¢²»ÊÇʲô¹Ø¼üÒòËØÁË¡£
¡¡¡¡Ò»µ©»ñµÃÁË¿ÉдÈëµÄ¹¤×÷±í¶ÔÏó£¬ÎÒÃǾͿÉÒÔ¶Ôµ¥Ôª¸ñ¶ÔÏó½øÐиüеIJÙ×÷ÁË£¬ÔÚÕâÀïÎÒÃDz»±Øµ÷ÓÃAPIÌṩµÄadd()·½·¨£¬ÒòΪµ¥Ôª¸ñÒѾÓÚ¹¤×÷±íµ±ÖУ¬ËùÒÔÎÒÃÇÖ»ÐèÒªµ÷ÓÃÏàÓ¦µÄsetXXX()·½·¨£¬¾Í¿ÉÒÔÍê³É¸üеIJÙ×÷ÁË¡£
¡¡¡¡¾¡µ¥Ôª¸ñÔÓеĸñʽ»¯ÐÞÊÎÊDz»ÄÜÈ¥µôµÄ£¬ÎÒÃÇ»¹ÊÇ¿ÉÒÔ½«Ðµĵ¥Ôª¸ñÐÞÊμÓÉÏÈ¥£¬ÒÔʹµ¥Ôª¸ñµÄÄÚÈÝÒÔ²»Í¬µÄÐÎʽ±íÏÖ¡£
¡¡¡¡ÐÂÉú³ÉµÄ¹¤×÷±í¶ÔÏóÊÇ¿ÉдÈëµÄ£¬ÎÒÃdzýÁ˸üÐÂÔÓеĵ¥Ôª¸ñÍ⣬»¹¿ÉÒÔÌí¼Óеĵ¥Ôª¸ñµ½¹¤×÷±íÖУ¬ÕâÓëʾÀý2µÄ²Ù×÷ÊÇÍêȫһÑùµÄ¡£
¡¡¡¡×îºó£¬²»ÒªÍü¼Çµ÷ÓÃwrite()·½·¨£¬½«¸üеÄÄÚÈÝдÈëµ½ÎļþÖУ¬È»ºó¹Ø±Õ¹¤×÷±¡¶ÔÏó£¬ÕâÀïÓÐÁ½¸ö¹¤×÷±¡¶ÔÏóÒª¹Ø±Õ£¬Ò»¸öÊÇÖ»¶ÁµÄ£¬ÁíÍâÒ»¸öÊÇ¿ÉдÈëµÄ¡£
Õª×Ô£ºhttp://www.54bk.com/more.asp?name=ninim&id=2563
ÔÚJ2MEÖУ¬ÓÉÓڴ󲿷ֵÄÓÎÏ·¶¼»áÉæ¼°µ½Ëæ»úÐÔµÄʼþ£¬RandomÀà×ÔÈ»¾Í³ÉΪJ2ME³ÌÐòÔ±¾³£Ê¹ÓõÄÒ»¸öÀàÁË¡£µ«ÊǶÔÓÚÐÂÊÖÀ´Ëµ£¬RandomÀà¿´ËÆ¼òµ¥£¬Ò²ÓпÉÄÜ»á³öÏÖÕâÑùÄÇÑùµÄ´íÎó¡£ËùÒÔÔÚÕâÀï°ÑÎÒ¶ÔÓÚÕâ¸öÀàµÄʹÓÃÐĵÃ×ܽáһϡ£
randomÀàÔÚCLDC1.0ÖоÍÒѾ¶¨ÒåÁË¡£Õâ¸öÀàÓÐÁ½¸ö¹¹Ô캯ÊýRandom() ºÍRandom(long seed) ²¢ÇÒÌṩÁËËĸö³£Ó÷½·¨:
next(int bits)
nextInt()
nextLong()
setSeed(long seed)
ÆäÖÐnext(int bits)ÓÃÀ´²úÉúÖ¸¶¨·¶Î§µÄËæ»úÊý£¬¼´£º
next(1)²úÉú2µÄ1´Î·½Ö®ÄÚµÄËæ»úÊý
next(2)²úÉú2µÄ2´Î·½Ö®ÄÚµÄËæ»úÊý
next(3)²úÉú2µÄ3´Î·½Ö®ÄÚµÄËæ»úÊý
...............................
next(n)²úÉú2µÄn´Î·½Ö®ÄÚµÄËæ»úÊý
...............................
next(32)²úÉú2µÄ32´Î·½Ö®ÄÚµÄËæ»úÊý£¬¾ÍÏ൱ÓÚnextInt£¨£©ÁË
nextInt()ÓÃÀ´²úÉúËæ»úÕûÊý£¬×î´ó2µÄ32´Î·½
nextLong()ÓÃÀ´²úÉúËæ»ú³¤ÕûÊý£¬×î´ó2µÄ64´Î·½
setSeed(long seed) ÓÃÓÚÉè¶¨Ëæ»úÊýµÄÖÖ×Ó£¬¼´ÕâÀïµÄseed¡£Ëæ»úÊýÖÖ×ÓµÄÓô¦ÊÇ£ºÒ»°ã˵À´£¬ÕâÀïµÄRandomÀà²úÉúËæ»úÊýÊÇÎ±Ëæ»úÊý£¬ÊÇϵͳ²ÉÓÃÌØ¶¨µÄËã·¨Éú³É³öÀ´µÄ£¬¹ØÓÚÕâÒ»µãÎÒÃÇ¿ÉÒÔ²ÉÓÃÒ»¸öÊÔÑéÀ´Ö¤Ã÷¡£·½·¨ÊÇnewÁ½¸öRandomÀàrandom1ºÍrandom2¡£¸÷×Ôµ÷ÓÃnextInt·½·¨10´Î£¬ÎÒÃÇ¿ÉÒÔ¿´³ö£¬ËäÈ»¸÷×Ô²úÉúµÄÊÇËæ»úÊý£¬µ«ÊÇÁ½¸öRandomÀà²úÉúµÄËæ»úÊý¶¼ÊÇÒ»ÑùµÄ¡£Õâ¾ÍʹµÃËæ»úÊý´æÔÚ×Å©¶´¡£Èç¹ûÕâÑùµÄËæ»úÊýÓÃÔÚ°²È«Ó¦ÓÃÉÏÃæ£¬¾Í´ï²»µ½Ô¤ÏëµÄЧ¹ûÁË¡£ËùÒÔRandomÀàÌṩÁËÕâ¸ö·½·¨£¬ÒÔ½øÒ»²½Ìá¸ßËæ»úÐÔ¡£
ÔÚÕâÀïÐèÒªÌØ±ðΪÐÂÊÖÅóÓÑÃÇÖ¸³öµÄÊÇ£¬ÎÒÃÇÔÚʹÓÃËæ»úÊýµÄʱºò£¬²»ÄÜÿ´Î¶¼new Ò»¸ö RandomÀà³öÀ´£¬ÓÖ²»Éè¶¨Ëæ»úÊýÖÖ×Ó£¬ÒòΪÄÇÑù×÷µÄ½á¹ûÊÇ£¬Ã¿´Î²úÉúµÄËæ»úÊý¶¼ÊÇÒ»ÑùµÄ¡£
½«Ò»¸ö¡°´íÎó¡±µÄÀý×ÓдÔÚÕâÀ
import java.util.Random;
import javax.microedition.midlet.*;
public class J2ME extends MIDlet {
private Random random;
public J2ME() {
}
protected void startApp() throws MIDletStateChangeException {
for (int i = 0; i < 20; i++) {
random=new Random();
System.out.println(random.nextInt());
}
}
protected void pauseApp() {
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
Õâ¸öÀý×Ó²úÉúµÄËæ»úÊýºÜ¶à¶¼ÊÇÏàͬµÄ¡£ÕýÈ·µÄ×ö·¨Ó¦¸ÃÊÇÔÚ protected void startApp() throws MIDletStateChangeException º¯ÊýÖÐ×ö³öÈçÏÂÐÞ¸Ä
random=new Random();
for (int i = 0; i < 20; i++) {
System.out.println(random.nextInt());
}
¹ØÓÚRandomÀàµÄ×ܽá¾Íµ½ÕâÀïÁË£¬ÏàÐÅ´ó¼Ò¶¼¿ÉÒÔÕýȷʹÓÃÕâ¸öÀàÁË¡£ºÇºÇ£¬Çë¶à¹ØÕÕ¡£
MSN£ºcuilichen@hotmail.com
| |||
´úÂ룺<!--
ʹÓÃʱÇ뽫ÏÂÃæµÄjavascript´úÂë´æµ½Ò»¸öµ¥Ò»µÄjsÎļþÖС£
1¡¢±íµ¥ÒªÇó
<form name="formname" onSubmit="return validateForm(this)"></form>
½«¶Ô±íµ¥ÖеÄËùÓÐÒÔÏÂÀàÐ͵ÄÓòÒÀ´ÎÑéÖ¤£¬ËùÓÐÑéÖ¤ÊÇÈ¥³ýÁËǰµ¼ºÍºó׺¿Õ¸ñµÄ£¬Òª×¢ÒâÊÇÇø·Ö´óСдµÄ¡£
2¡¢¿ÕÖµÑéÖ¤
±íµ¥ÖÐÈÎÒâÓò¼ÓÉÏemptyInfoÊôÐÔ½«¶Ô´ËÓòÊÇ·ñΪ¿Õ½øÐÐÑéÖ¤£¨¿ÉÒÔºÍ×î´ó³¤¶ÈÑéÖ¤Ò»°ãÑéÖ¤·½Ê½Í¬Ê±Ê¹Óã©¡£
ÎÞ´ËÊôÐÔÊÓΪ´ËÓòÔÊÐí¿ÕÖµ¡£
¡¡¡¡È磺<input type="text" name="fieldNamename" emptyInfo="×ֶβ»ÄÜΪ¿Õ£¡">
3¡¢×î´ó³¤¶ÈÑéÖ¤£¨¿ÉÒԺͿÕÖµÑéÖ¤¡¢Ò»°ãÑéÖ¤·½Ê½Í¬Ê±Ê¹Óã©£º
<input type="text" name="fieldNamename" maxlength="20" lengthInfo="×î´ó³¤¶È²»Äܳ¬¹ý20£¡">
»ò,<textarea maxlength="2000" lengthInfo="×î´ó³¤¶È²»Äܳ¬¹ý2000£¡">
3¡¢Ò»°ãÑéÖ¤·½Ê½(²»¶Ô¿ÕÖµ×öÑéÖ¤£©:
¡¡¡¡È磺<input type="text" validator="^(19|20)[0-9]{2}$" errorInfo="²»ÕýÈ·µÄÄê·Ý!" >
4¡¢±ê×¼ÑéÖ¤(²»ÓëÆäËüÑéÖ¤·½Ê½Í¬Ê±Ê¹Óã©£º
È«²¿Í¨¹ý<input type="hidden">À´ÊµÏÖ£¬²¢ÇÒ²»ÐèÒªnameÊôÐÔÒÔÃâÌá½»µ½·þÎñÆ÷¡£
¡¡¡¡4.1¡¢ºÏ·¨ÈÕÆÚÑéÖ¤£º
<input type="text" name="yearfieldName" value="2004">×¢£ºÕâÀïÒ²¿ÉÒÔÊÇ<select name="yearfieldName"></select>£¬ÒÔÏÂͬ
<input type="text" name="monthfieldName" value="02">
<input type="text" name="dayfieldName" value="03">
<input type="hidden" validatorType="DateGroup" year="yearfieldName" month="monthfieldName" day="dayfieldName" errorInfo="²»ÕýÈ·µÄÈÕÆÚ!">
yearfieldName¡¢monthfieldName¡¢dayfieldName·Ö±ðΪÄêÔÂÈÕ×ֶΣ¬ÔºÍÈÕ¿ÉÒÔÊÇÁ½Î»(MM)»òһλ¸ñʽ(M)£¬
´Ë´¦²»¶Ôÿ¸ö×ֶηֱð¼ìÑé(Èç¹ûÒª¼ìÑ飬ÇëÔÚÄêÔÂÈÕÈý¸öÓò·Ö±ðʹÓÃÇ°ÃæµÄÒ»°ãÑéÖ¤·½Ê½£©£¬Ö»¶ÔÈÕÆÚµÄ×î´óÖµÊÇ·ñºÏ·¨¼ì²é;
4.2¡¢ÈÕÆÚ¸ñʽÑéÖ¤(Çë×¢Ò⣬´ËÑéÖ¤²»¶ÔÈÕÆÚÊÇ·ñÓÐЧ½øÐÐÑéÖ¤£¬»¹Î´ÕÒµ½´Ó¸ñʽÖеõ½ÄêÔÂÈÕÊý¾ÝµÄ·½·¨^_^)£º
<input type="text" name="datefieldName" value="2003-01-03 21:31:00">
<input type="hidden" validatorType="Date" fieldName="datefieldName"; format="yyyy-MM-dd HH:mm:ss" errorInfo="²»ÕýÈ·µÄÈÕÆÚ!">
ÆäÖиñʽ½ö¶Ôy¡¢M¡¢d¡¢H¡¢m¡¢s½øÐÐÖ§³Ö(ÆäËü×Ö·ûÊÓΪ·Çʱ¼äµÄ×Ö·û)
4.3¡¢ÁбíÑéÖ¤£º
¼ìÑéÁбí(checkbox¡¢redio¡¢select)ÊÇ·ñÖÁÉÙÑ¡ÖÐÁËÒ»Ìõ¼Ç¼(¶ÔselectÖ÷ÒªÓÃÓÚ¶àÏîÑ¡Ôñ)
<input type="checkbox" name="checkbox1">
<input type="hidden" validatorType="Checkbox" fieldName="checkbox1" errorInfo="ÇëÖÁÉÙÑ¡ÖÐÒ»Ìõ¼Ç¼!">
ÆäÖÐvalidatorType¿ÉÒÔÊÇCheckbox¡¢R¡¢Select;
¶ÔÓÚÒ»¸öselect±íµ¥£¬Èç¹ûÒªÇóÑ¡ÔñÒ»Ìõ²»ÄÜÊǵÚÒ»ÌõµÄ¼Ç¼£¬ÇëÓÃÏÂÁз½Ê½:
<select name="select1" emptyInfo="ÇëÑ¡ÔñÒ»¸öÑ¡Ïî!">
<option value="">==ÇëÑ¡Ôñ==</option>
<option value="1">1</option>
<select>
4.4¡¢EmailÑéÖ¤£º
<input type="text" name="email">
<input type="hidden" fieldName="email" validatorType="Email" separator="," errorInfo="²»ÕýÈ·µÄEmail!">
ÆäÖÐseparatorΪ¿ÉÑ¡Ï±íʾÊäÈë¶à¸öemailʱµÄ·Ö¸ô·û(ÎÞ´ËÑ¡ÏîÖ»ÄÜÊÇÒ»¸öµØÖ·£©
4.5¡¢¼ÓÈëÆäËüjavascript²Ù×÷£º
<script type="text/javascript">
function functionname(){
×Ô¶¨Òå·½·¨
}
</script>
±íµ¥ÖмÓÈë<input type="hidden" validatorType="javascript" functionName="functionname">£¨´ËʱemptyInfoµÈÊôÐÔÎÞЧ£©
ʱ½«µ÷ÓÃfunctionÊôÐÔÖÐÖ¸¶¨µÄjavascript·½·¨£¨ÒªÇó·½·¨·µ»Øtrue»òfalse£¬·µ»Øfalse½«²»ÔÙÑéÖ¤±íµ¥£¬Ò²²»Ìá½»±íµ¥)¡£
5¡¢ÔÚ±íµ¥Í¨¹ýÑéÖ¤ÌύǰdisableÒ»¸ö°´Å¥£¨Ò²¿É½«ÆäËüÓòdisable,²»ÄÜÓëÆäËüÑé֤ͬÔÚÒ»¸öÓò)£¬²»ÒªÇó°´Å¥ÊÇ±íµ¥ÖеÄ×îºóÒ»¸ö
<input type="button" name="Ìá½»" validatorType="disable">
6¡¢²»ÑéÖ¤±íµ¥
¡¡¡¡<input type="hidden" name="validate" value="0" functionName="functionname">
µ±validatorÓòֵΪ0ʱ²»¶Ô±íµ¥½øÐÐÑéÖ¤£¬Ö±½ÓÌá½»±íµ¥»òÖ´ÐÐÖ¸¶¨function²¢·µ»ØtrueºóÌá½»±íµ¥
functionNameΪ¿ÉÑ¡
-->
<script type="text/javascript">
function getStringLength(str){
var endvalue=0;
var sourcestr=new String(str);
var tempstr;
for (var strposition = 0; strposition < sourcestr.length; strposition ++) {
tempstr=sourcestr.charAt(strposition);
if (tempstr.charCodeAt(0)>255 || tempstr.charCodeAt(0)<0) {
endvalue=endvalue+2;
} else {
endvalue=endvalue+1;
}
}
return(endvalue);
}
function trim(str){
if(str==null) return "";
if(str.length==0) return "";
var i=0,j=str.length-1,c;
for(;i<str.length;i++){
c=str.charAt(i);
if(c!=' ') break;
}
for(;j>-1;j--){
c=str.charAt(j);
if(c!=' ') break;
}
if(i>j) return "";
return str.substring(i,j+1);
}
function validateDate(date,format,alt){
var time=trim(date.value);
if(time=="") return;
var reg=format;
var reg=reg.replace(/yyyy/,"[0-9]{4}");
var reg=reg.replace(/yy/,"[0-9]{2}");
var reg=reg.replace(/MM/,"((0[1-9])|1[0-2])");
var reg=reg.replace(/M/,"(([1-9])|1[0-2])");
var reg=reg.replace(/dd/,"((0[1-9])|([1-2][0-9])|30|31)");
var reg=reg.replace(/d/,"([1-9]|[1-2][0-9]|30|31))");
var reg=reg.replace(/HH/,"(([0-1][0-9])|20|21|22|23)");
var reg=reg.replace(/H/,"([0-9]|1[0-9]|20|21|22|23)");
var reg=reg.replace(/mm/,"([0-5][0-9])");
var reg=reg.replace(/m/,"([0-9]|([1-5][0-9]))");
var reg=reg.replace(/ss/,"([0-5][0-9])");
var reg=reg.replace(/s/,"([0-9]|([1-5][0-9]))");
reg=new RegExp("^"+reg+"$");
if(reg.test(time)==false){//ÑéÖ¤¸ñʽÊÇ·ñºÏ·¨
alert(alt);
date.focus();
return false;
}
return true;
}
function validateDateGroup(year,month,day,alt){
var array=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var y=parseInt(year.value);
var m=parseInt(month.value);
var d=parseInt(day.value);
var maxday=array[m-1];
if(m==2){
if((y%4==0&&y%100!=0)||y%400==0){
maxday=29;
}
}
if(d>maxday){
alert(alt);
return false;
}
return true;
}
function validateCheckbox(obj,alt){
var rs=false;
if(obj!=null){
if(obj.length==null){
return obj.checked;
}
for(i=0;i<obj.length;i++){
if(obj[i].checked==true){
return true;
}
}
}
alert(alt);
return rs;
}
function validateRadio(obj,alt){
var rs=false;
if(obj!=null){
if(obj.length==null){
return obj.checked;
}
for(i=0;i<obj.length;i++){
if(obj[i].checked==true){
return true;
}
}
}
alert(alt);
return rs;
}
function validateSelect(obj,alt){
var rs=false;
if(obj!=null){
for(i=0;i<obj.options.length;i++){
if(obj.options[i].selected==true){
return true;
}
}
}
alert(alt);
return rs;
}
function validateEmail(email,alt,separator){
var mail=trim(email.value);
if(mail=="") return;
var em;
var myReg = /^[_a-z0-9]+@([_a-z0-9]+.)+[a-z0-9]{2,3}$/;
if(separator==null){
if(myReg.test(email.value)==false){
alert(alt);
email.focus();
return false;
}
}
else{
em=email.value.split(separator);
for(i=0;i<em.length;i++){
em[i]=em[i].trim();
if(em[i].length>0&&myReg.test(em[i])==false){
alert(alt);
email.focus();
return false;
}
}
}
return true;
}
function validateForm(theForm){// ÈôÑé֤ͨ¹ýÔò·µ»Øtrue
var disableList=new Array();
var field = theForm.elements; // ½«±íµ¥ÖеÄËùÓÐÔªËØ·ÅÈëÊý×é
for(var i = 0; i < field.length; i++){
var vali=theForm.validate;
if(vali!=null){
if(vali.value=="0"){
var fun=vali.functionName;
if(fun!=null){
return eval(fun+"()");
}
else{
return true;
}
}
}
var empty=false;
var value=trim(field[i].value);
if(value.length==0){//ÊÇ·ñ¿ÕÖµ
empty=true;
}
var emptyInfo=field[i].emptyInfo;//¿ÕÖµÑéÖ¤
if(emptyInfo!=null&&empty==true){
alert(emptyInfo);
field[i].focus();
return false;
}
var lengthInfo=field[i].lengthInfo;//×î´ó³¤¶ÈÑéÖ¤
if(lengthInfo!=null&&getStringLength(value)>field[i].maxLength){
alert(lengthInfo);
field[i].focus();
return false;
}
var validatorType=field[i].validatorType;
if(validatorType!=null){//ÆäËüjavascript
var rs=true;
if(validatorType=="javascript"){
eval("rs="+field[i].functionName+"()");
if(rs==false){
return false;
}
else{
continue;
}
}
else if(validatorType=="disable"){//Ìá½»±íµ¥Ç°disableµÄ°´Å¥
disableList.length++;
disableList[disableList.length-1]=field[i];
continue;
}
else if(validatorType=="Date"){
rs=validateDate(theForm.elements(field[i].fieldName),field[i].format,field[i].errorInfo);
}
else if(validatorType=="DateGroup"){
rs=validateDateGroup(theForm.elements(field[i].year),theForm.elements(field[i].month),theForm.elements(field[i].day),field[i].errorInfo);
}
else if(validatorType=="Checkbox"){
rs=validateCheckbox(theForm.elements(field[i].fieldName),field[i].errorInfo);
}
else if(validatorType=="Radio"){
rs=validateRadio(theForm.elements(field[i].fieldName),field[i].errorInfo);
}
else if(validatorType=="Select"){
rs=validateSelect(theForm.elements(field[i].fieldName),field[i].errorInfo);
}
else if(validatorType=="Email"){
rs=validateEmail(theForm.elements(field[i].fieldName),field[i].errorInfo);
}
else{
alert("ÑéÖ¤ÀàÐͲ»±»Ö§³Ö, fieldName: "+field[i].name);
return false;
}
if(rs==false){
return false;
}
}
else{//Ò»°ãÑéÖ¤
if(empty==false){
var v = field[i].validator; // »ñÈ¡ÆävalidatorÊôÐÔ
if(!v) continue; // Èç¹û¸ÃÊôÐÔ²»´æÔÚ,ºöÂÔµ±Ç°ÔªËØ
var reg=new RegExp(v);
if(reg.test(field[i].value)==false){
alert(field[i].errorInfo);
field[i].focus();
return false;
}
}
}
}
for(i=0;i<disableList.length;i++){
disableList[i].disabled=true;
}
return true;
}
</script>
1¡¢javaÊý¾Ý¿â²Ù×÷»ù±¾Á÷³Ì
¡¡¡¡2¡¢¼¸¸ö³£ÓõÄÖØÒª¼¼ÇÉ£º
¡¡¡¡¿É¹ö¶¯¡¢¸üеļǼ¼¯
¡¡¡¡ÅúÁ¿¸üÐÂ
¡¡¡¡ÊÂÎñ´¦Àí
¡¡¡¡javaÊý¾Ý¿â²Ù×÷»ù±¾Á÷³Ì£ºÈ¡µÃÊý¾Ý¿âÁ¬½Ó - Ö´ÐÐsqlÓï¾ä - ´¦ÀíÖ´Ðнá¹û - ÊÍ·ÅÊý¾Ý¿âÁ¬½Ó
¡¡¡¡1¡¢È¡µÃÊý¾Ý¿âÁ¬½Ó
¡¡¡¡1£©ÓÃDriverManagerÈ¡Êý¾Ý¿âÁ¬½Ó
¡¡¡¡Àý×Ó£º
String className,url,uid,pwd;
className = "oracle.jdbc.driver.OracleDriver";
url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr;
uid = "system";
pwd = "manager";
Class.forName(className);
Connection cn = DriverManager.getConnection(url,uid,pwd);
¡¡¡¡2£©ÓÃjndi(javaµÄÃüÃûºÍĿ¼·þÎñ)·½Ê½
¡¡¡¡Àý×Ó
String jndi = "jdbc/db";
Context ctx = (Context) new InitialContext().lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup(jndi);
Connection cn = ds.getConnection();
¡¡¡¡¶àÓÃÓÚjspÖÐ
¡¡¡¡2¡¢Ö´ÐÐsqlÓï¾ä
¡¡¡¡1£©ÓÃStatementÀ´Ö´ÐÐsqlÓï¾ä
String sql;
Statement sm = cn.createStatement();
sm.executeQuery(sql); // Ö´ÐÐÊý¾Ý²éѯÓï¾ä£¨select£©
sm.executeUpdate(sql); // Ö´ÐÐÊý¾Ý¸üÐÂÓï¾ä£¨delete¡¢update¡¢insert¡¢dropµÈ£©statement.close();
¡¡¡¡2£©ÓÃPreparedStatementÀ´Ö´ÐÐsqlÓï¾ä
String sql;
sql = "insert into user (id,name) values (?,?)";
PreparedStatement ps = cn.prepareStatement(sql);
ps.setInt(1,xxx);
ps.setString(2,xxx);
...
ResultSet rs = ps.executeQuery(); // ²éѯ
int c = ps.executeUpdate(); // ¸üÐÂ
¡¡¡¡3¡¢´¦ÀíÖ´Ðнá¹û
¡¡¡¡²éѯÓï¾ä£¬·µ»Ø¼Ç¼¼¯ResultSet¡£
¡¡¡¡¸üÐÂÓï¾ä£¬·µ»ØÊý×Ö£¬±íʾ¸Ã¸üÐÂÓ°ÏìµÄ¼Ç¼Êý¡£
¡¡¡¡ResultSetµÄ·½·¨£º
¡¡¡¡1¡¢next()£¬½«ÓαêÍùºóÒÆ¶¯Ò»ÐУ¬Èç¹û³É¹¦·µ»Øtrue£»·ñÔò·µ»Øfalse¡£
¡¡¡¡2¡¢getInt("id")»ògetSting("name")£¬·µ»Øµ±Ç°ÓαêÏÂij¸ö×ֶεÄÖµ¡£
¡¡¡¡3¡¢ÊÍ·ÅÁ¬½Ó¡£
cn.close();
¡¡¡¡Ò»°ã£¬ÏȹرÕResultSet£¬È»ºó¹Ø±ÕStatement£¨»òÕßPreparedStatement£©£»×îºó¹Ø±ÕConnection
¡¡¡¡¿É¹ö¶¯¡¢¸üеļǼ¼¯
¡¡¡¡1¡¢´´½¨¿É¹ö¶¯¡¢¸üеÄStatement
Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY);
¡¡¡¡¸ÃStatementÈ¡µÃµÄResultSet¾ÍÊǿɹö¶¯µÄ
¡¡¡¡2¡¢´´½¨PreparedStatementʱָ¶¨²ÎÊý
PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet.absolute(9000);
¡¡¡¡ÅúÁ¿¸üÐÂ
¡¡¡¡1¡¢Statement
Statement sm = cn.createStatement();
sm.addBatch(sql1);
sm.addBatch(sql2);
...
sm.executeBatch()
¡¡¡¡Ò»¸öStatement¶ÔÏ󣬿ÉÒÔÖ´Ðжà¸ösqlÓï¾äÒÔºó£¬ÅúÁ¿¸üС£Õâ¶à¸öÓï¾ä¿ÉÒÔÊÇdelete¡¢update¡¢insertµÈ»ò¼æÓÐ
¡¡¡¡2¡¢PreparedStatement
PreparedStatement ps = cn.preparedStatement(sql);
{
¡¡ps.setXXX(1,xxx);
¡¡...
¡¡ps.addBatch();
}
ps.executeBatch();
¡¡¡¡Ò»¸öPreparedStatement£¬¿ÉÒÔ°ÑÒ»¸ösqlÓï¾ä£¬±ä»»²ÎÊý¶à´ÎÖ´ÐУ¬Ò»´Î¸üС£
¡¡¡¡ÊÂÎñµÄ´¦Àí
¡¡¡¡1¡¢¹Ø±ÕConnectionµÄ×Ô¶¯Ìá½»
cn.setAutoCommit(false);
¡¡¡¡2¡¢Ö´ÐÐһϵÁÐsqlÓï¾ä
¡¡¡¡Òªµã£ºÖ´ÐÐÿһ¸öеÄsqlÓï¾äǰ£¬ÉÏÒ»´ÎÖ´ÐÐsqlÓï¾äµÄStatement£¨»òÕßPreparedStatemet£©±ØÐëÏÈclose
Statement sm ;
sm = cn.createStatement(insert into user...);
sm.executeUpdate();
sm.close();
sm = cn.createStatement("insert into corp...);
sm.executeUpdate();
sm.close();
¡¡¡¡3¡¢Ìá½»
cn.commit();
¡¡¡¡4¡¢Èç¹û·¢ÉúÒì³££¬ÄÇô»Ø¹ö
cn.rollback();
ת×Ôjava-cn.com Ò»£ºÀí½â¶àÏß³Ì |