锘??xml version="1.0" encoding="utf-8" standalone="yes"?> PO錛?br />persistant object鎸佷箙瀵硅薄 listenBean.java import javax.servlet.*; web.xml
鏈褰㈣薄鐨勭悊瑙e氨鏄竴涓狿O灝辨槸鏁版嵁搴撲腑鐨勪竴鏉¤褰曘?br />濂藉鏄彲浠ユ妸涓鏉¤褰曚綔涓轟竴涓璞″鐞嗭紝鍙互鏂逛究鐨勮漿涓哄叾瀹冨璞°?br />
BO錛?br />business object涓氬姟瀵硅薄
涓昏浣滅敤鏄妸涓氬姟閫昏緫灝佽涓轟竴涓璞°傝繖涓璞″彲浠ュ寘鎷竴涓垨澶氫釜鍏跺畠鐨勫璞°?br />姣斿涓涓畝鍘嗭紝鏈夋暀鑲茬粡鍘嗐佸伐浣滅粡鍘嗐佺ぞ浼氬叧緋葷瓑絳夈?br />鎴戜滑鍙互鎶婃暀鑲茬粡鍘嗗搴斾竴涓狿O錛屽伐浣滅粡鍘嗗搴斾竴涓狿O錛岀ぞ浼氬叧緋誨搴斾竴涓狿O銆?br />寤虹珛涓涓搴旂畝鍘嗙殑BO瀵硅薄澶勭悊綆鍘嗭紝姣忎釜BO鍖呭惈榪欎簺PO銆?br />榪欐牱澶勭悊涓氬姟閫昏緫鏃訛紝鎴戜滑灝卞彲浠ラ拡瀵笲O鍘誨鐞嗐?br />
VO 錛?br />value object鍊煎璞?br />ViewObject琛ㄧ幇灞傚璞?br />
涓昏瀵瑰簲鐣岄潰鏄劇ず鐨勬暟鎹璞°傚浜庝竴涓猈EB欏甸潰錛屾垨鑰匰WT銆丼WING鐨勪竴涓晫闈紝鐢ㄤ竴涓猇O瀵硅薄瀵瑰簲鏁翠釜鐣岄潰鐨勫箋?/font>
DTO 錛?br />Data Transfer Object鏁版嵁浼犺緭瀵硅薄
涓昏鐢ㄤ簬榪滅▼璋冪敤絳夐渶瑕佸ぇ閲忎紶杈撳璞$殑鍦版柟銆?br />姣斿鎴戜滑涓寮犺〃鏈?00涓瓧孌碉紝閭d箞瀵瑰簲鐨凱O灝辨湁100涓睘鎬с?br />浣嗘槸鎴戜滑鐣岄潰涓婂彧瑕佹樉紺?0涓瓧孌碉紝
瀹㈡埛绔敤WEB service鏉ヨ幏鍙栨暟鎹紝娌℃湁蹇呰鎶婃暣涓狿O瀵硅薄浼犻掑埌瀹㈡埛绔紝
榪欐椂鎴戜滑灝卞彲浠ョ敤鍙湁榪?0涓睘鎬х殑DTO鏉ヤ紶閫掔粨鏋滃埌瀹㈡埛绔紝榪欐牱涔熶笉浼氭毚闇叉湇鍔$琛ㄧ粨鏋?鍒拌揪瀹㈡埛绔互鍚庯紝濡傛灉鐢ㄨ繖涓璞℃潵瀵瑰簲鐣岄潰鏄劇ず錛岄偅姝ゆ椂瀹冪殑韜喚灝辮漿涓篤O
POJO 錛?br />plain聽ordinary聽java聽object聽綆鍗昦va瀵硅薄
涓漢鎰熻POJO鏄渶鍙傝鏈澶氬彉鐨勫璞★紝鏄竴涓腑闂村璞★紝涔熸槸鎴戜滑鏈甯告墦浜ら亾鐨勫璞°?br />
涓涓狿OJO鎸佷箙鍖栦互鍚庡氨鏄疨O
鐩存帴鐢ㄥ畠浼犻掋佷紶閫掕繃紼嬩腑灝辨槸DTO
鐩存帴鐢ㄦ潵瀵瑰簲琛ㄧず灞傚氨鏄疺O
DAO錛?br />data access object鏁版嵁璁塊棶瀵硅薄
榪欎釜澶у鏈鐔熸倝錛屽拰涓婇潰鍑犱釜O鍖哄埆鏈澶э紝鍩烘湰娌℃湁浜掔浉杞寲鐨勫彲鑳芥у拰蹇呰.
涓昏鐢ㄦ潵灝佽瀵規暟鎹簱鐨勮闂傞氳繃瀹冨彲浠ユ妸POJO鎸佷箙鍖栦負PO錛岀敤PO緇勮鍑烘潵VO銆丏TO
聽聽聽聽聽聽鎬葷粨涓嬫垜璁や負涓涓璞$┒绔熸槸浠涔圤瑕佺湅鍏蜂綋鐜錛屽湪涓嶅悓鐨勫眰銆佷笉鍚岀殑搴旂敤鍦哄悎錛屽璞$殑韜喚涔熶笉涓鏍鳳紝鑰屼笖瀵硅薄韜喚鐨勮漿鍖栦篃鏄緢鑷劧鐨勩傚氨鍍忎綘瀵硅佸﹩鏉ヨ灝辨槸鑰佸叕錛屽鐖舵瘝鏉ヨ灝辨槸瀛愬コ銆傝璁¤繖浜涙蹇電殑鍒濊》涓嶆槸涓轟簡鍞漢鑰屾槸涓轟簡鏇村ソ鐨勭悊瑙e拰澶勭悊鍚勭閫昏緫錛岃澶у鑳芥洿濂界殑鍘葷敤闈㈠悜瀵硅薄鐨勬柟寮忓鐞嗛棶棰?
聽聽聽聽聽聽澶у鍗冧竾涓嶈闄峰叆榪囧害璁捐錛屽ぇ鍙笉蹇呬負浜嗚璁¤岃璁′竴瀹氳鍦ㄤ唬鐮佷腑鍖哄垎鍚勪釜瀵硅薄銆備竴鍙ヨ瘽鎶鏈槸涓哄簲鐢ㄦ湇鍔$殑銆?br />
嬈㈣繋鎸囨銆?br />
]]>
import java.util.*;
public class listenerBean implements ServletContextListener {
聽聽private java.util.Timer timer = null;
聽聽public void contextInitialized(ServletContextEvent event) {
聽聽timer = new Timer(true);
聽聽//瀹氭椂鍣ㄥ凡鍚姩
聽聽timer.schedule(new MyTask(), 0, (long) 1000*60);//瀹氭椂1鍒嗛挓
聽聽//宸茬粡娣誨姞浠誨姟璋冨害琛?br />聽}
聽public void contextDestroyed(ServletContextEvent event) {
聽聽timer.cancel();
聽聽//瀹氭椂鍣ㄩ攢姣?br />聽}
}
class MyTask extends TimerTask {
聽private static boolean isRunning = false;
聽public void run() {
聽聽if (!isRunning) {
聽聽聽isRunning = true;
聽聽聽//寮濮嬫墽琛屼換鍔?br />聽聽聽//ToDo ....
聽聽聽//鎵ц浠誨姟瀹屾垚
聽聽聽isRunning = false;
聽聽} else {
聽聽聽//涓婁竴嬈′換鍔℃墽琛岃繕鏈粨鏉?br />聽聽}
聽}
}<web-app>
聽<listener>
聽聽聽 <listener-class>listenerBean</listener-class>
</listener>
</web-app>
]]>
鏈疄渚嬫紨紺哄浣曞緱鍒頒竴涓洰褰曚笅鐨勬墍鏈夋枃浠跺垪琛?/span> .
1.聽聽聽聽聽聽 榪欓噷鍒╃敤浜?/span> DirFilter 瀹炵幇浜?/span> FilenameFilter 鎺ュ彛 , 鍥犳蹇呴』緇ф壙 accept 鐨勬柟娉?/span> .
2.聽聽聽聽聽聽 鐢ㄥ埌浜嗗尮閰嶅瓧絎﹀簭鍒椾笌姝e垯琛ㄨ揪寮忔寚瀹氭ā寮忕殑綾?/span> Matcher,Pattern 鎵浠ヨ java.util.regex 寮曞叆 .
瀹炰緥紼嬪簭
:
package javaio;
import java.io.*;
import java.util.*;
import java.util.regex.*;
public class DirList {
聽 public static void main(String[] args) {
聽 聽聽File path = new File("c:/");
聽聽聽 String[] list;
聽聽聽 if(args.length == 0){
聽聽聽聽聽 list = path.list();
聽聽聽 }
聽聽聽 else{
聽聽聽聽聽 // 榪欓噷灝嗚緭鍏ョ殑鍙傛暟浣滀負榪囨護鍥犲瓙
聽聽聽聽聽 list = path.list(new DirFilter(args[0]));
聽聽聽 }
聽聽聽 for(int i = 0; i < list.length; i++){
聽聽聽聽聽 System.out.println(list[i]);
聽聽聽 }
聽 }
}
class DirFilter implements FilenameFilter {
聽
private Pattern pattern;
聽 public DirFilter(String regex) {
聽聽聽 pattern = Pattern.compile(regex);
聽 }
聽 public boolean accept(File dir, String name) {
聽聽聽 // 鍒ゆ柇鍚嶄負 name 鐨勬枃浠舵槸涓嶆槸絎﹀悎榪囨護鏉′歡
聽聽聽 return pattern.matcher(new File(name).getName()).matches();/*matches() 灝濊瘯灝嗘暣涓尯鍩?/span> / 涓庢ā寮忓尮閰嶃?/span> new File(name).getName() 寰楀埌 String 綾葷殑 name*/
聽 }
}
榪愯緇撴灉 :
Clendar 綾繪槸涓縐嶆棩鏈熷鐞嗙被 , 鍙互鎯沖儚瀹冩槸涓涓寕鍦ㄥ澹佷笂鐨勫吀鍨嬫棩鍘?/span> , 鏈夎澶氭棩鏈熷拰欏墊暟緲婚槄 .
1.聽聽聽聽聽聽 Clendar 綾葷殑鍙橀噺鍩熺殑姒傚康 . 姣忎釜鍏冪礌閮芥槸鍩?/span> , 騫朵笖榪欎簺鍩熷湪 Clendar 綾諱腑琛ㄧ幇涓洪潤鎬佸彉閲?/span> . 榪欎簺鍙橀噺鍩?/span> , 鍙兘閫氳繃 get/set 綾繪柟娉曡幏寰楁垨鑰呰緗煙鍊?/span> .
[Calendardemo.java
浠g爜
]:
import java.util.*;
public class Calendardemo {
聽聽聽聽聽聽 public static void main(String[] args) {
聽聽聽聽聽聽聽聽聽聽聽聽聽 // 鍒涘緩涓涓棩鍘嗗璞?/span>
聽聽聽聽聽聽聽聽聽聽聽聽聽 Calendar calendar = Calendar.getInstance();
聽聽聽聽聽聽聽聽聽聽聽聽聽 // 鐢ㄥ綋鍓嶆椂闂村垵濮嬪寲鏃ュ巻瀵硅薄
聽聽聽聽聽聽聽聽聽聽聽聽聽 calendar.setTime(new Date());
聽聽聽聽聽聽聽聽聽聽聽聽聽 String year = String.valueOf(calendar.get(Calendar.YEAR));
聽聽聽聽聽聽聽聽聽聽聽聽聽 String month = String.valueOf(calendar.get(Calendar.MONTH) + 1);
聽聽聽聽聽聽聽聽聽聽聽聽聽 String date = String.valueOf(calendar.get(Calendar.DAY_OF_MONTH));
聽聽聽聽聽聽聽聽聽聽聽聽聽 String day = String.valueOf(calendar.get(Calendar.DAY_OF_WEEK) - 1);
聽聽聽聽聽聽聽聽聽聽聽聽聽 int hour = calendar.get(Calendar.HOUR);// 浠?/span> 12 灝忔椂鍒?/span>
聽聽聽聽聽聽聽聽聽聽聽聽聽 int hour_1 = calendar.get(Calendar.HOUR_OF_DAY);// 浠?/span> 24 灝忔椂鍒?/span>
聽聽聽聽聽聽聽聽聽聽聽聽聽 int minute = calendar.get(Calendar.MINUTE);
聽聽聽聽聽聽聽聽聽聽聽聽聽 int second = calendar.get(Calendar.SECOND);
聽聽聽聽聽聽聽聽聽聽聽聽聽 // 杈撳嚭緇撴灉
聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println("year=聽 " + year);
聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println("month=聽 " + month);
聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println("date=聽 " + date);
聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println("day=聽 " + day);
聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println("hour=聽 " + hour);
聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println("hour1=聽 " + hour_1);
聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println("minute=聽 " + minute);
聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println("second=聽 " + second);
聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println(" 鐜板湪鏃墮棿鏄細 ");
聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println(" " + year + " 騫?/span> " + month + " 鏈?/span> " + date + " 鏄熸湡 " + day);
聽聽聽聽聽聽聽聽聽聽聽聽聽 calendar.set(1983, 7, 21);// 灝嗘棩鍘嗙炕鍒版煇涓椂闂達紟 7 琛ㄧず鍏湀
聽聽聽聽聽聽聽聽聽聽聽聽聽 long time1983 = calendar.getTimeInMillis();// 榪斿洖褰撳墠鏃墮棿錛屼綔涓轟粠寮濮嬫椂闂寸殑 UTC 姣鍊?/span>
聽聽聽聽聽聽聽聽聽聽聽聽聽 calendar.setTime(new Date());// 灝嗘棩鍘嗙炕鍒扮幇鍦ㄨ繖涓椂闂達紟
聽聽聽聽聽聽聽聽聽聽聽聽聽 long time2006 = calendar.getTimeInMillis();
聽聽聽聽聽聽聽聽聽聽聽聽聽 long interdays = (time2006 - time1983) / (1000 * 60 * 60 * 24);
聽聽聽聽聽聽聽聽聽聽聽聽聽 System.out.println(" 鐜板湪鍜?/span> 1983.8.21 鐩擱殧 " + interdays + " 澶?/span> ");
聽聽聽聽聽聽 }
}
娉ㄦ剰
:
搴旇浠ラ潤鎬佹柟寮忚闂潤鎬佸瓧孌?/span>
Calendar.year
榪愯緇撴灉
: