ÓÃjavaʵÏÖµÄÒ»¸ö¼òµ¥web·þÎñÆ÷³ÌÐò
Ò»¡¢Ê×ÏÈÀ´¿´Ò»ÏÂhttpµÄ±¨ÎĽṹ
1¡¢ÇëÇó±¨ÎÄ
Ò»¸öHTTPÇëÇó±¨ÎÄÓÉÇëÇóÐУ¨request line£©¡¢ÇëÇóÍ·²¿£¨header£©¡¢¿ÕÐкÍÇëÇóÊý¾Ý4¸ö²¿·Ö×é³É£¬ÏÂͼ¸ø³öÁËÇëÇó±¨ÎĵÄÒ»°ã¸ñʽ¡£
(1)ÇëÇóÐÐ
ÇëÇóÐÐÓÉÇëÇó·½·¨×ֶΡ¢URL×ֶκÍHTTPÐÒé°æ±¾×Ö¶Î3¸ö×Ö¶Î×é³É£¬ËüÃÇÓÿոñ·Ö¸ô¡£ÀýÈ磬GET /index.html HTTP/1.1¡£
HTTPÐÒéµÄÇëÇó·½·¨ÓÐGET¡¢POST¡¢HEAD¡¢PUT¡¢DELETE¡¢OPTIONS¡¢TRACE¡¢CONNECT¡£ÕâÀï½éÉÜ×î³£ÓõÄGET·½·¨ºÍPOST·½·¨¡£
GET£ºµ±¿Í»§¶ËÒª´Ó·þÎñÆ÷ÖжÁÈ¡ÎĵµÊ±£¬Ê¹ÓÃGET·½·¨¡£GET·½·¨ÒªÇó·þÎñÆ÷½«URL¶¨Î»µÄ×ÊÔ´·ÅÔÚÏìÓ¦±¨ÎĵÄÊý¾Ý²¿·Ö£¬»ØË͸ø¿Í»§¶Ë¡£Ê¹ÓÃGET·½·¨Ê±£¬ÇëÇó²ÎÊýºÍ¶ÔÓ¦µÄÖµ¸½¼ÓÔÚURLºóÃæ£¬ÀûÓÃÒ»¸öÎʺţ¨“?”£©´ú±íURLµÄ½áβÓëÇëÇó²ÎÊýµÄ¿ªÊ¼£¬´«µÝ²ÎÊý³¤¶ÈÊÜÏÞÖÆ¡£ÀýÈ磬/index.jsp?id=100&op=bind¡£
POST£ºµ±¿Í»§¶Ë¸ø·þÎñÆ÷ÌṩÐÅÏ¢½Ï¶àʱ¿ÉÒÔʹÓÃPOST·½·¨¡£POST·½·¨½«ÇëÇó²ÎÊý·â×°ÔÚHTTPÇëÇóÊý¾ÝÖУ¬ÒÔÃû³Æ/ÖµµÄÐÎʽ³öÏÖ£¬¿ÉÒÔ´«Êä´óÁ¿Êý¾Ý¡£
(2)ÇëÇóÍ·²¿
ÇëÇóÍ·²¿Óɹؼü×Ö/Öµ¶Ô×é³É£¬Ã¿ÐÐÒ»¶Ô£¬¹Ø¼ü×ÖºÍÖµÓÃÓ¢ÎÄðºÅ“:”·Ö¸ô¡£ÇëÇóÍ·²¿Í¨Öª·þÎñÆ÷ÓйØÓÚ¿Í»§¶ËÇëÇóµÄÐÅÏ¢£¬µäÐ͵ÄÇëÇóÍ·ÓУº
User-Agent£º²úÉúÇëÇóµÄä¯ÀÀÆ÷ÀàÐÍ¡£
Accept£º¿Í»§¶Ë¿Éʶ±ðµÄÄÚÈÝÀàÐÍÁÐ±í¡£
Host£ºÇëÇóµÄÖ÷»úÃû£¬ÔÊÐí¶à¸öÓòÃûͬ´¦Ò»¸öIPµØÖ·£¬¼´ÐéÄâÖ÷»ú¡£
(3)¿ÕÐÐ
×îºóÒ»¸öÇëÇóÍ·Ö®ºóÊÇÒ»¸ö¿ÕÐУ¬·¢Ëͻسµ·ûºÍ»»Ðзû£¬Í¨Öª·þÎñÆ÷ÒÔϲ»ÔÙÓÐÇëÇóÍ·¡£
(4)ÇëÇóÊý¾Ý
ÇëÇóÊý¾Ý²»ÔÚGET·½·¨ÖÐʹÓ㬶øÊÇÔÚPOST·½·¨ÖÐʹÓá£POST·½·¨ÊÊÓÃÓÚÐèÒª¿Í»§Ìîд±íµ¥µÄ³¡ºÏ¡£ÓëÇëÇóÊý¾ÝÏà¹ØµÄ×ʹÓõÄÇëÇóÍ·ÊÇContent-TypeºÍContent-Length¡£
2¡¢ÏìÓ¦±¨ÎÄ
ÏìÓ¦±¨Îĵĸñʽ´óÌåÉϺÍÇëÇó±¨ÎÄÀàËÆ£¬Ö»ÊǵÚÒ»ÐÐÓÐËù²»Í¬£¬¶ÁÕß¿ÉÒÔ×Ô¼ºÔÚÍøÉϲéÕÒÕâ·½ÃæµÄ½éÉÜ£¬ÕâÀï²»ÔÙ׸Êö¡£
¶þ¡¢³ÌÐòµÄʵÏÖ
³ÌÐòµÄʵÏÖ²½ÖèÈçÏ£º
1¡¢½ÓÊÕ¿Í»§¶Ëä¯ÀÀÆ÷µÄÇëÇó£»
2¡¢´´½¨Ò»¸öеÄỊ̈߳¬ÓÃÓÚ´¦Àí¸Ã´ÎÇëÇó£»
3¡¢¶ÁÈ¡±¨ÎÄÊý¾Ý£¬Åжϱ¨ÎÄÕýÈ·Óë·ñ£¬·ÖÎö±¨ÎÄÄÚÈÝ£»
4¡¢´´½¨ÏìÓ¦±¨ÎÄ£¬·¢Ë͵½¿Í»§¶Ë£»
5¡¢½áÊø¸Ã´¦ÀíỊ̈߳¬´¦ÀíÆäËû¿Í»§ÇëÇó£»
³ÌÐò´úÂëÈçÏ£º
import java.net.*;
import java.io.*;
import java.util.*;
import java.lang.*;
public class WebServer {
public static void main(String [] args){
int port;
ServerSocket server_socket;
try{
port=Integer.parseInt(args[0]);
}
catch (Exception e){
Ïà¹ØÎĵµ£º
Java NIO APIÏê½â
ÔÚJDK
1.4ÒÔǰ£¬JavaµÄIO²Ù×÷¼¯ÖÐÔÚjava.ioÕâ¸ö°üÖУ¬ÊÇ»ùÓÚÁ÷µÄ×èÈû£¨blocking£©API¡£¶ÔÓÚ´ó¶àÊýÓ¦ÓÃÀ´Ëµ£¬ÕâÑùµÄAPIʹÓúܷ½
±ã£¬È»¶ø£¬Ò»Ð©¶ÔÐÔÄÜÒªÇó½Ï¸ßµÄÓ¦Óã¬ÓÈÆäÊÇ·þÎñ¶ËÓ¦Óã¬ÍùÍùÐèÒªÒ»¸ö¸üΪÓÐЧµÄ·½Ê½À´´¦ÀíIO¡£´ÓJDK 1.4Æð£¬NIO
API×÷Ϊһ¸ö»ùÓÚ»º³åÇø£¬²¢ÄÜÌṩ·Ç×èÈû(non-blo ......
Ò»¡¢Í¬²½ÎÊÌâÌá³ö
Ï̵߳Äͬ²½ÊÇΪÁË·ÀÖ¹¶à¸öÏ̷߳ÃÎÊÒ»¸öÊý¾Ý¶ÔÏóʱ£¬¶ÔÊý¾ÝÔì³ÉµÄÆÆ»µ¡£
ÀýÈ磺Á½¸öÏß³ÌThreadA¡¢ThreadB¶¼²Ù×÷ͬһ¸ö¶ÔÏóFoo¶ÔÏ󣬲¢ÐÞ¸ÄFoo¶ÔÏóÉϵÄÊý¾Ý¡£
public
class
Foo {
private
int
x = 100;
public
int
get ......
SCJP5ѧϰ±Ê¼Ç
Ï߳̽»»¥ÊDZȽϸ´ÔÓµÄÎÊÌ⣬SCJPÒªÇ󲻺ܻù´¡£º¸ø¶¨Ò»¸ö³¡¾°£¬±àд´úÂëÀ´Ç¡µ±Ê¹Óõȴý¡¢Í¨ÖªºÍ֪ͨËùÓÐÏ̡߳£
Ò»¡¢Ï߳̽»»¥µÄ»ù´¡ÖªÊ¶
SCJPËùÒªÇóµÄÏ߳̽»»¥ÖªÊ¶µãÐèÒª´Ójava.lang.Object
µÄÀàµÄÈý¸ö·½·¨À´Ñ§Ï°£º
void notify()
  ......
JavaÓëC++×î´óµÄ²»Í¬µÄ£¬JavaÍêÈ«ÊÇÃæÏò¶ÔÏóµÄ£¬ÊÇÓÉÀ๹³ÉµÄ£¬¶øC++ÊÇÓɶÔÏóÓë¹ý³Ì×é³É¡£
1¡¢Â·¾¶£º
Java°üÀ¨Ò»¸ö°üpackage,C++ûÓУ»
2¡¢ÒýÈëÀà
java import.*.*; C++ include ""';
3¡¢Ô¤¶¨Ò壬
C++°üÀ¨Ô¤¶¨Ò壬Java²»°üÀ¨
4¡¢½á¹¹
C++°üÀ¨½á¹¹£¬JavaÖ»°üÀ¨À࣬½á¹¹Ìå¿ÉÒÔת»¯ÎªÀà¡£
5¡¢ÀàÃûÓëÎļþÃû
Jav ......
2009-12-01 12:06:43
JUnit
JUnitÊÇÓÉ Erich Gamma ºÍ Kent Beck ±àдµÄÒ»¸ö»Ø¹é²âÊÔ¿ò¼Ü£¨regression testing framework£©¡£Junit²âÊÔÊdzÌÐòÔ±²âÊÔ£¬¼´Ëùν°×ºÐ²âÊÔ£¬ÒòΪ³ÌÐòÔ±ÖªµÀ±»²âÊÔµÄÈí¼þÈçºÎ£¨How£©Íê³É¹¦ÄܺÍÍê³ÉʲôÑù£¨What£©µÄ¹¦ÄÜ¡£JunitÊÇÒ»Ì׿ò¼Ü£¬¼Ì³ÐTestCaseÀ࣬¾Í¿ÉÒÔÓÃJunit½øÐÐ×Ô¶¯²âÊÔÁË¡ ......