javaHTTP

19073 ワード

記事の目次
  • 反射率は
  • です。
  • XML
  • html-form
  • HTTPプロトコル
  • レクリエーション
  • レスポンス
  • webserver
  • 反射
    		//  class 
    		//1.
    		Class re = reflection.class;
    		//2.
    		re = new reflection().getClass();
    		//3.
    		re=Class.forName("WebServer.reflection");
    		//   
    		reflection r=(reflection)re.getConstructor().newInstance();
    
    XML
    Extenssible Markp Languageは、データの格納フォーマットやソフトウェアを格納するためのパラメータとして、この設定ファイルを解析すると、コードを変更せずにプログラムを変更する目的に達することができます。
    
    <persons>
       <person>
    	   <name>   name>
    	   <age>1000age>
    	person>
    	<person>
    	   <name>   name>
    	   <age>7000age>
    	person>
    persons>
    
    public class Person {
    	private String name;
    	private int age;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    }
    
    public class PersonHandler extends  DefaultHandler{
    
    	List<Person> persons;
    	Person person;
    	String tag;
    	@Override
    	public void startDocument() throws SAXException {
    		persons = new ArrayList<>();
    	}
    	@Override
    	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
    		if(qName!=null)
    		{
    			tag=qName;
    		}
    		if(qName.equals("person"))
    		{
    			person = new Person();
    		}
    	}
    	
    	@Override
    	public void characters(char[] ch, int start, int length) throws SAXException {
    		if(tag!=null&&tag.equals("name")) {
    			person.setName(new String(ch,start,length));
    		}
    		if(tag!=null&&tag.equals("age")) {
    			person.setAge(Integer.valueOf(new String(ch,start,length)));
    		}
    	}
    	@Override
    	public void endElement(String uri, String localName, String qName) throws SAXException {
    		if(qName.equals("person"))
    		{
    			this.persons.add(person);
    		}
    		tag=null;
    	}
    	public List<Person> getPersons() {
    		return persons;
    	}
    }
    
    //      
    SAXParserFactory factory = SAXParserFactory.newInstance();
    //     
    SAXParser parse = factory.newSAXParser();
    //     
    PersonHandler handler=new PersonHandler();
    //    Document
    	parse.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("WebServer/test.xml"), handler);
    //    
    List<Person> persons = handler.getPersons();
    for(Person p:persons)
    {
    	System.out.println(p.getName()+"  "+p.getAge());
    }
    
    httml-form
    <form method action>
      <input type name id/>
    form>
    method 	    :get    ,    ,    ;post    ,    
    action 	       
    id			          ,   ,       
    name		  ,             
             ,    name
      name,id   
    
    HTTPプロトコル
    ハイパーテキスト転送プロトコル
    request
    1.要求方式:方法URIプロトコル/バージョンPOST/index.HTTP/1.1
    2.要求ヘッドDate、Server、Conttentt-type、Conteet-length
    3.要求本文
    要求方式
    POST/answer.HTTP/1.1
    請求先
    Host:local host:8888 Contint-Type:appliation/x-wn-form-urlencoded
    Origin:null Cookie:_ガ=GA 1.1.2027630145.1526140932;yjsid=138b942055 dee 10 fe 75 efb 9049 ddb Connection:keep-alive Upgrade-Innsecure-requests:1 Accept:text/html、appication/xhtl+xml、appication/xml。q=0.9、/;Q=0.8 User-Agent:Mozlla/5.0(Macinth;Intel Mac OS X 10_14_3)ApppleWebKit/605.15.1.15(KHTML、like Gecko)Verssion/12.0.3 Safari/605.1.15 Conttentt Length:21 Acept Languagagage:zadadadzzzzzzzzzzzzzzzzzagggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg𞓜
    レスポンス
    1.HTTPプロトコルバージョンの状態コード記述:HTTP/1.1 200 OK
    2.レスポンスヘッダ
    3.本文に応答して…
    webserver
    Web.xml->webHandler->>webContint->webApple->Servlet(LogistServlet,Register Srevlet)->Disper->server