zoukankan      html  css  js  c++  java
  • JavaWeb 后端 <一> 之 Tomcat服务器

    1、Web开发概述

    1.1服务器上的资源分类:

    a、静态资源:指web页面中供人们浏览的数据始终是不变。html css js 图片 多媒体

    b、动态资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。JSP/Servlet、php、asp

    下面为简单的java程序 模拟服务器提供资源 访问 本地端口1111即可得到服务器的资源

    public class Myserver {
    	public static void main(String[] args) throws IOException{
    		ServerSocket server = new ServerSocket(1111);
    		//有可能 会被占用 抛出异常
    		Socket client = server.accept();
    		//构建输入流;读html
    		InputStream  in = new FileInputStream("f:/1.html");
    		//用客户端的输出流输出出去
    		OutputStream out = client.getOutputStream();
    		int len = -1;
    		byte b[] = new byte[1024];//缓存
    		while((len= in.read(b))!=-1){
    			out.write(b, 0, len);
    		}
    		in.close();
    		client.close();
    	}
    }
    

    2、Tomcat服务器

    0、JavaEE规范:

    JavaEE规范由JCP组织(www.jcp.org)制定和维护的。很多Java开发技术的总称。都是由抽象类和接口组成的(jar)。

    常用的技术:JSP/Servlet、JPA、JTA、JNID、JDBC、JMX、JAXP、EJB等

    1、常用的服务器:

    WebLogic:实现了JavaEE规范,重量级的服务器,JavaEE容器。

    WebSphereAS:实现了JavaEE规范,重量级的服务器,JavaEE容器。

    JbossAS:实现了JavaEE规范,重量级的服务器,JavaEE容器。

    Tomcat:实现了JSP/Servlet规范,轻量级的服务器,Servlet容器。

    2、JSP/Servelt规范:Servlet2.5版

    Tomcat的版本

    Servlet/JSP版本

    JDK

    JavaEE

    备注

    Tomcat8.X

    3.1/2.3

    7.X

    7

    默认编码UTF-8

    Tomcat7.X

    3.0/2.2

    6.X

    6

    ISO-8859-1

    Tomcat6.X

    2.5/2.1

    5.X

    5

    用这个ISO-8859-1

    3、安装Tomcat

    解压压缩包

    默认端口:8080

     

    *webapps目录:该目录中有几个文件夹就说明有几个应用

    4、启动:Tomcatinstartup.bat

    找到 startup.bat双击运行 或者dom里运行 cd   → cd Apache → cd bin →  startup.bat

    没有异常,最终说明用时,证明启动成功!

     

    5、启动时遇到的常见问题

    a、一闪而过:原因,没有配置环境变量JAVA_HOME=C:jdk1.7.0_45

     

    b、启动过程中出现很多异常:因为端口被占用了

    端口被占用了:dom 使用 netstat -a -o  检查端口的使用情况

    干掉占用8080端口的进程;

    更改Tomcat的默认端口:

    修改 Tomcatconfserver.xml

     

    5、http协议使用的默认端口是80(上线运行)

    不用加端口访问

     

    注意80端口可能被占用。(Window如果装了IIS--web服务器,默认用80)

    3、JavaWeb应用的目录结构(很重要,记住)

    MyApp 应用名称

    1.html

    cssmain.css

    WEB-INF      必须有,大小写一致。该目录中的资源客户端无法访问的

    lib   存放本应用用到的jar包。(Tomcatlib中的jar为所有应用共享的)

    classes: 存放本应用的class字节码。(优先级:classes--自己的jar---Tomcat中的jar,优先级依次降低)

    web.xml 当前应用的配置文件。

    4、部署JavaWeb应用到Tomcat服务器上

    方式一:直接把应用拷贝到Tomcatwebapps目录中

    方式二:把应用打成war包。

    就可以通过服务器访问

     

    5、利用MyEclipse建立JavaWeb应用并部署

    1、在MyEclipse中配置Tomcat

     

    2、开发目录结构和运行目录结构

    5、Tomcat的组成(Tomcat独有)

    通过Tomcatconfserver.xml配置进行配置(Tomcat的核心配置文件)

    l  配置虚拟目录(Context)

    可以把磁盘上任意位置的文件夹当做一个应用交给Tomcat管理。

    方式一:直接修改server.xml配置文件(需要重新启动Tomcat,不推荐)

    方式二:在Tomcatconf[引擎名称][主机名称]目录中,建立一个xml的配置文件,文件名就是应用的访问虚拟目录:PPP.xml

     

    http://localhost/PPP/1.html

    l  配置虚拟主机(Host)

    一台硬件服务器上运行多个网站

    域名解析:

     

    l  配置默认端口(Connector)、默认应用、默认主页

    默认端口:80。修改Tomcatconfserver.xml,把一个Connector的端口改为80

    默认应用:http://localhost

    TOmcat中默认的应用webappsROOT

    方法一:把作为默认应用的应用改为ROOT即可。

    方式二:在Tomcatconf引擎名称主机名称ROOT.xml的配置文件

    应用的默认主页:

    修改web.xml

    二、HTTP协议:必须记住(很重要)

    1、HTTP协议概述

    HTTP是什么?超文本传输协议。

    描述客户端和服务器端的数据标准,该协议由W3C维护和管理。

    版本:

    HTTP1.0:每次发出请求都需要建立网络连接

    HTTP1.1:(主流)在一次网络连接上发出多次请求和得到多次响应。多了一些头。

    明确:

    浏览器遇到以下标记时,会自动发出请求

    2、HTTP协议的组成

    2.1请求部分

    2.2响应部分

    3、请求部分详解

    3.1请求行:

    GET /app1/1.html HTTP/1.1

    GET:请求方式。

    常用的请求方式:GET(默认的)、POST、HEAD、OPTIONS等

    GET:默认的

    http://localhost:8080/app1/1.html?username=abc&password=123

    提交的数据显示出来了,相对不安全,协议的第一行有长度限制,<1kb.

    (有请求数据时推荐)POST:可以通过<form method=”post”/>

                        username=abc&password=123

                           提交的数据在请求正文中的,相对安全,长度没有限制

                  /app1/1.html :请求的资源地址。(URI)

                         URL:协议+主机:端口+资源地址

                                http://localhost:8080/app1/1.html

    HTTP/1.1:客户端浏览器使用的协议的版本。

    3.2请求消息头:

    作用:向服务器端传递附加信息(暗号指令)

    Accept:告知服务器,客户端可以接受的数据类型(MIME类型)

    文件系统:通过文件的扩展名区分不同的文件的。txt jpeg

    MIME类型:大类型/小类型。  txt--->text/plain   html---->text/html js---->text/javascript (具体对应关系:可参考 Tomcatconfweb.xml)

    Accept-Encoding:告知服务器,客户端可以接受的压缩编码。比如gzip

    Accept-Language:告知服务器,客户端支持的语言。

    Referer:告知服务器,从哪个页面过来的。(作用:统计广告的投放效果;防止盗链。)

    l  Content-Type:告知服务器,请求正文的MIME类型

    默认类型:application/x-www-form-urlencoded(表单enctype属性的默认取值)

    具体体现:username=abc&password=123

    其他类型:multipart/form-data(文件上传时用的)

    l  If-Modified-Since:告知服务器,当前访问的资源,缓存中的文件的最后修改时间。

    l  User-Agent:告知服务器,浏览器的类型

    l  Content-Length:请求正文的数据长度

    l  Cookie:(*****重要)会话管理有关

    3.3请求正文:

    数据能提交到服务器,表单中的输入域必须有name属性值

    POST请求是才有正文

    username=abc&password=123

    4、响应部分详解

    4.1响应行:

    HTTP/1.1 200 OK

    HTTP/1.1 :说明服务器端用的协议版本

    200 :响应状态码

    1XX 2XX 3XX 4XX 5XX

    2XX:处理完毕

    4XX:请求有误

    5XX:服务器有误

    记住常用的响应码:

    200:一切正常

    302/307:请求重定向

    304:服务器上的资源没有发生改变

    404:访问的地址不存在

    500:服务器端错误

    OK:响应码描述

    4.2响应消息头:

    作用:服务器端向客户端传递的附加信息(暗号指令)

    l  Location:告知客户端,你去访问的地址。

    和302/307实现请求重定向

    l  Content-Encoding:告知客户端,响应正文使用的压缩编码(gzip)

    l  Content-Length:告知客户端,响应正文的长度

    l  Content-Type:告知客户端,响应文正的MIME类型。默认text/html

    l  Refresh:告知客户端,定时刷新

    l  Content-Disposition:告知客户端,用下载的方式打开  attachment;filename=23.jpg

    l  Set-Cookie:(*****)会话有关

    -------------

    l  Expires: -1 控制时间的

    l  Cache-Control: no-cache (1.1) 

    l  Pragma: no-cache   (1.0)

    三头一块用,用于告知浏览器,不要缓存。

    ----------------------

    4.3响应正文:

    浏览器解析的正文内容,右键查看源码一样的。

  • 相关阅读:
    org.apache.xerces.dom.ElementNSImpl.setUserData(Ljava/lang/String;Ljava/lang
    case when then 中判断null的方法
    Oracle 傻瓜式数据归档
    Object type TYPE failed to create with error
    导出表结构到Excel 生成代码用
    Intellij 高亮显示与选中字符串相同的内容
    自定义命令杀死 java 进程 alias kjava
    R语言包_dplyr_1
    dplyr包
    在天河二号上对比Julia,Python和R语言
  • 原文地址:https://www.cnblogs.com/loveincode/p/5153706.html
Copyright © 2011-2022 走看看