JSP&Servlet笔记

HTTP协议基础

HTTP(Hypertext Transfer Protocol 超文本传输协议),它是以明文方式发送数据的,它是用于www服务器传输超文本到本地浏览器的传输协议。
HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。
HTTP1.1支持持久连接,在一个TCP连接上可以传输多个HTTP请求和响应。减少了关闭连接的消耗和延迟。HTTP还允许客户端不等待上一次的请求结果返回,就可以发送下一次请求。以保证客户端能够区分出每次请求的响应内容,这样也显著地减少了整个下载过程所需要的时间。
HTTP 1.1还通过增加更多的请求头和响应头来改进和扩充HTTP 1.0的功能。例如,由于HTTP 1.0不支持Host请求头字段,WEB浏览器无法使用主机头名来明确表示要访问服务器上的哪个WEB站点,这样就无法使用WEB服务器在同一个IP地址和端口号上配置多个虚拟WEB站点。在HTTP 1.1中增加Host请求头字段后,WEB浏览器可以使用主机头名来明确表示要访问服务器上的哪个WEB站点,这才实现了在一台WEB服务器上可以在同一个IP地址和端口号上使用不同的主机名来创建多个虚拟WEB站点。HTTP 1.1的持续连接,也需要增加新的请求头来帮助实现,例如,Connection请求头的值为Keep-Alive时,客户端通知服务器返回本次请求结果后保持连接;Connection请求头的值为close时,客户端通知服务器返回本次请求结果后关闭连接。HTTP 1.1还提供了与身份认证、状态管理和Cache缓存等机制相关的请求头和响应头。

*********************************HTTP例子1********************************************************

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;


public class TestHTTP {
    public static void main(String[] args) throws Exception {
        Socket s = new Socket("www.bjsxt.com", 80);
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
        bw.write("OPTIONS / HTTP/1.1");
        bw.newLine();
        bw.write("Host: www.bjsxt.com:80");
        bw.newLine();
        bw.write("Content-Type: text/html");
        bw.newLine();
        bw.newLine();
        bw.flush();
        BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
        String str = null;
        while((str = br.readLine()) != null) {
            System.out.println(str);
        }
        bw.close();
        br.close();
        s.close();
    }
}
*****************************************************************************************

Servlet是运行在服务器端的小应用程序用来完成B/S结构的客户端请求相应处理

Web Application 的结构

 /WEB-INF

     /web.xml    #该web app的配置文件

     /lib/            #该web app用到的库文件

     /classes     #存放编译好的servlet

 

web.xml简单例子

<?xml version="1.0" encoding="ISO-8859-1"?>


<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5">
   <servlet>
     <servlet-name>myfirstservlet</servlet-name>
     <servlet-class>HelloWorldServlet</servlet-class>
   </servlet>
   <servlet-mapping>
     <servlet-name>myfirstservlet</servlet-name>
     <url-pattern>/HelloWorldSerlvet</url-pattern>
   </servlet-mapping>
</web-app>

web.xml中  <url-pattern>/HelloWorldSerlvet</url-pattern>中/表示绝对路径,其中的第一个/表示的webapp目录的跟路径,即 http://localhost:8080/my/

而jsp页面中<form action=/xxxx>

这个/表示的是主机路径http://localhost:8080


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值