Java学习笔记13-- web服务器介绍及Tomcat的使用;jdk,eclipse,tomcat关系以及安装顺序;http协议

版权声明:转载请注明出处 https://blog.csdn.net/liyunxiangrxm/article/details/83501974


web服务器介绍及Tomcat的使用

点此打开奇妙的web详情界面


jdk,eclipse,tomcat关系以及安装顺序

1、eclipse安装前必须要先装jdk

1、没有JDK的话,无法安装或者运行eclipse。
2、JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。

3、系统变量->新建->变量名:JAVA_HOME 变量值:c:\jdk1.6.0_21\

系统变量->新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib

系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;

(CLASSPATH中有一英文句号“.”后跟一个分号,表示当前路径的意思)

2、tomcat运行要依靠jdk

因为tomcat是用java写的,所以运行需要JRE,就是JAVA运行时刻环境,所以必须通过安装JDK来得到这个运行环境,不装JDK装JRE也行,sun的网站上有下载。但是JRE只是运行时刻化境,不能编译JAVA源程序。

  • 注意点:tomcat软件是java语言开发的。 tomcat软件启动时,会默认到系统的环境变量中查找一个名称叫JAVA_HOME的变量。这个变量的作用找到tomcat启动所需的jvm。
    解决办法; 到环境变量中设置JAVA_HOME的变量
    JAVA_HOME= C:\Program Files\Java\jdk1.6.0_30 (注意别配置到bin目录下)

所以,正常的顺序是,先安装jdk,然后配置path、path_home;然后安装eclipse,最后运行web项目需要用到tomcat,那么就安装tomcat.


Http协议

HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。

http请求

客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括如下内容:一个请求行、若干请求头、以及实体内容,其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。如下所示 :

HTTP请求的细节——请求行

  • 请求行中的GET称之为请求方式,请求方式有:
    POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
    常用的有:POST、GET

  • 不管POST或GET,都用于向服务器请求某个WEB资源,这两种方式的区别主要表现在数据传递上,客户端通过这两种方式都可以带一些数据给服务器:

    • 如请求方式为GET方式,则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:
      GET /mail/1.html?name=abc&password=xyz HTTP/1.1
      GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量不能超过1K。
  • 如请求方式为POST方式,则可以在请求的实体内容中向服务器发送数据,例如:

     POST /servlet/ParamsServlet HTTP/1.1
     Host:
     Content-Type: application/x-www-form-urlencoded
     Content-Length: 28
    

    name=abc&password=xyz
    Post方式的特点:传送的数据量无限制。

HTTP请求的细节——请求头

  • 用于HTTP请求中的常用头
    Accept: text/html,image/*
    Accept-Charset: ISO-8859-1
    Accept-Encoding: gzip,compress
    Accept-Language: en-us,zh-
    Host: www.it315.org:80
    If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT
    Referer: http://www.it315.org/index.jsp
    User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
    Cookie:
    Connection: close/Keep-Alive
    Date: Tue, 11 Jul 2000 18:23:51 GMT

HttpServletRequest

  • HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息

Request常用方法

  • 获得客户机信息
    getRequestURL方法返回客户端发出请求时的完整URL。
    getRequestURI方法返回请求行中的资源名部分。
    getQueryString 方法返回请求行中的参数部分。
    getPathInfo方法返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。
    getRemoteAddr方法返回发出请求的客户机的IP地址
    getRemoteHost方法返回发出请求的客户机的完整主机名
    getRemotePort方法返回客户机所使用的网络端口号
    getLocalAddr方法返回WEB服务器的IP地址。
    getLocalName方法返回WEB服务器的主机名

  • 获得客户机请求头
    getHeader方法
    getHeaders方法
    getHeaderNames方法

  • 获得客户机请求参数(客户端提交的数据)
    getParameter方法
    getParameterValues(String name)方法
    getParameterNames方法
    getParameterMap方法

  • request常见应用
    获取浏览器类型
    防盗链
    各种表单输入项数据的获取
    textpasswordradiocheckbox
    fileselecttextareahidden
    imagebutton给js编程用`
    请求参数的中文乱码问题

HTTP响应

一个HTTP响应代表服务器向客户端回送的数据,它包括:
一个状态行若干响应头以及实体内容 ,其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。

HTTP响应的细节——状态行

  • 状态行
    格式: HTTP版本号 状态码 原因叙述
    举例:HTTP/1.1 200 OK
  • 状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类,如下所示:

在这里插入图片描述

HTTP响应细节——常用响应头

  • HTTP请求中的常用响应头
    Location: http://www.it315.org/index.jsp
    Server:apache tomcat
    Content-Encoding: gzip
    Content-Length: 80
    Content-Language: zh-cn
    Content-Type: text/html; charset=GB2312
    Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT
    Refresh: 1;url=http://www.it315.org
    Content-Disposition: attachment; filename=aaa.zip
    Transfer-Encoding: chunked
    Set-Cookie:SS=Q0=5Lb_nQ; path=/search
    Expires: -1
    Cache-Control: no-cache
    Pragma: no-cache
    Connection: close/Keep-Alive
    Date: Tue, 11 Jul 2000 18:23:51 GMT

HTTP请求的细节—通用信息头

  • 通用信息头指既能用于请求,又能用于响应的一些消息头。
    Cache-Control: no-cache
    Pragma: no-cache
    Connection: close/Keep-Alive
    Date: Tue, 11 Jul 2000 18:23:51 GMT

  • Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。

  • request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。

HttpServletResponse

HttpServletResponse对象服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。

response常见应用

  • 案例1:302+location实现重定向
    • response.sendRedirect()
    • 实现原理:302状态码和location头即可实现重定向
  • 案例2:使用Refresh实现定时跳转
  • 案例3:使用content-Type实现向浏览器输出图片
  • 案例4:文件下载功能

猜你喜欢

转载自blog.csdn.net/liyunxiangrxm/article/details/83501974