ÓÃ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){
Ïà¹ØÎĵµ£º
/**ÎÒÕâÖ»½² ListArray ,ListedList,HashMap
//ListArray ËüÊÇÒ»¸öʵÏÖÁËList½Ó¿ÚµÄÀà ,List¼Ì³Ðcollection½Ó¿Ú
//µ÷ÓÃimport java.util.ArrayList°ü,(ÕâÀïÁ½ÕßÈÎÑ¡ÆäÒ») ÍêÕûµÄjava¼¯ºÏ´æ·ÅÔÚjava.util°üÖÐ
//ÌØµã:
1>.ListÊÇÓÐÐòµÄ¼¯ºÏ
2>.List¿ÉÒÔÓÐÖØ¸´µÄÔªËØÖµ
3>.ʹÓÃË÷ÒýÀ´¾«È·µÄ·ÃÎÊÔªËØÖµ,
4& ......
class Node
{
private Object obj;
private Node next;
//ÓÃÊý¾ÝÓò¹¹ÔìÒ»¸ö½Úµã¶ÔÏó
public Node(Object obj)
{
this.obj=obj;
}
//·µ»ØÏÂÒ»½ÚµãµÄ¶ÔÏó
public Node getNext()
{
return this.next;
}
//ÉèÖñ¾½ÚµãµÄÁ´Óò
public void setNext(Node next)
{
this.next=next;
}
//·µ»Ø½ÚµãµÄÊý ......
¡¶Java¾ÍÒµÅàѵ½Ì³Ì¡· ×÷ÕߣºÕÅТÏé ÊéÖÐÔ´Âë
¡¶Java¾ÍÒµÅàѵ½Ì³Ì¡·P34Ô´Âë
³ÌÐòÇåµ¥£ºPromote.java
class Promote
{
public static void main(String args[])
{
byte b = 50;
char c = 'a';
short s = 1024;
int i = 50000;
float ......
ÓëÏß³ÌÐÝÃßÀàËÆ£¬Ï̵߳ÄÓÅÏȼ¶ÈÔÈ»ÎÞ·¨±£ÕÏÏ̵߳ÄÖ´ÐдÎÐò¡£Ö»²»¹ý£¬ÓÅÏȼ¶¸ßµÄÏ̻߳ñÈ¡CPU×ÊÔ´µÄ¸ÅÂʽϴó£¬ÓÅÏȼ¶µÍµÄ²¢·Çû»ú»áÖ´ÐС£
Ï̵߳ÄÓÅÏȼ¶ÓÃ1-10Ö®¼äµÄÕûÊý±íʾ£¬ÊýÖµÔ½´óÓÅÏȼ¶Ô½¸ß£¬Ä¬ÈϵÄÓÅÏȼ¶Îª5¡£
ÔÚÒ»¸öÏß³ÌÖпªÆôÁíÍâÒ»¸öÐÂỊ̈߳¬ÔòпªÏ̳߳ÆÎª¸ÃÏ̵߳Ä×ÓỊ̈߳¬×ÓÏ̳߳õʼÓÅÏȼ¶Ó븸 ......
2009-12-01 12:06:43
JUnit
JUnitÊÇÓÉ Erich Gamma ºÍ Kent Beck ±àдµÄÒ»¸ö»Ø¹é²âÊÔ¿ò¼Ü£¨regression testing framework£©¡£Junit²âÊÔÊdzÌÐòÔ±²âÊÔ£¬¼´Ëùν°×ºÐ²âÊÔ£¬ÒòΪ³ÌÐòÔ±ÖªµÀ±»²âÊÔµÄÈí¼þÈçºÎ£¨How£©Íê³É¹¦ÄܺÍÍê³ÉʲôÑù£¨What£©µÄ¹¦ÄÜ¡£JunitÊÇÒ»Ì׿ò¼Ü£¬¼Ì³ÐTestCaseÀ࣬¾Í¿ÉÒÔÓÃJunit½øÐÐ×Ô¶¯²âÊÔÁË¡ ......