web-tomcat

tomcat初级学习

一、tomcat的目录结构说明

  1.bin:可运行程序的目录 startup.bat   shutdown.bat 等

  2.conf:配置文件目录  tomcat-users.xml  server.xml

  3.lib:tomcat 运行时需要的依赖包

  4.logs:tomcat运行时的日志文件存放目录

  5.temp:tomcat运行时需要的临时目录

  6.webapps:我们将来存放我们自己开发web应用程序的默认目录。重要!

  7.work:tomcat运行时的工作目录


二、

Tomcat运行web应用程序:

1:静态资源的方式:

     第一步: 在tomcat的webapps目录下新建一个 文件夹,起名 webapp1

     第二步:进入webapp1目录下,新建一个html页面(.html/.htm),index.html

       

<!DOCTYPE html>

<html>

<head>

         <title>webapp1 - title</title>

</head>

<body>

  <h1>hello tomcat</h1>

</body>

</html>

第三步:保存,(有必要时,重启tomcat服务器)让tomcat运行我们的webapp1应用程序。

第四步:通过浏览器访问我们的webapp1应用

        http://localhost:8080/webapp1/

     or http://localhost:8080/webapp1/index.html

     or  通过ip地址或者域名

       http://192.168.91.180:8080/webapp1/index.htm

      如果在局域网内,访问自己架设的web网站,需要修改hosts文件

     C:\Windows\System32\drivers\etc\hosts 文件的内容,添加域名解析记录

       例如:192.168.91.180newedu.com

     注意,因为系统安全策略的问题, 默认情况下hosts文件没有修改权限。

    需要添加可修改的权限

    

访问web应用有一个默认访问首页的配置问题:

      默认情况下,tomcat,自动访问 index.html/index.htm

2:动态资源的方式

      第一步: 在tomcat的webapps目录下新建一个 文件夹,起名 webapp2

     第二步:进入webapp2目录下,新建一个jsp页面,index.jsp

       

<%@page language="java"

import="java.util.*"

pageEncoding="utf-8" %>

<!DOCTYPE html>

<html>

<head>

         <title>webapp1 - title</title>

</head>

<body>

  <h1>hello tomcat- dynamical page </h1>

  ${header["User-Agent"]}

</body>

</html>

第三步:保存,(有必要时,重启tomcat服务器)让tomcat运行我们的webapp2应用程序。

第四步:通过浏览器访问我们的webapp2应用

      http://localhost:8080/webapp2/index.jsp

     WEB-INF下面的资源不能被用户直接访问;但是除了WEB-INF这个目录其他的自己建立的目录,都是可以被访问的

例如:  /abc/  建了一个jsp页面Index.jsp

  如果要访问index.jsp,就需要访问http://localhost:8080/webapp2/abc/index.jsp

 

   WEB-INF中可以放置 web.xml 文件,web.xml里面可以对我们的webapp2项目做特殊配置:

比如说,欢迎页面,或者叫首页

(如何修改动态网站的欢迎页面?)

  

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

 

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee

                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

  version="3.1"

  metadata-complete="true">

 

  <display-name>webapp2---jsp page</display-name>

  <description>

     Welcome to Tomcat

  </description>

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.htm</welcome-file>

    <welcome-file>index.jsp</welcome-file>

    <welcome-file>default.html</welcome-file>

    <welcome-file>default.htm</welcome-file>

    <welcome-file>default.jsp</welcome-file>

         <welcome-file>123.jsp</welcome-file>

  </welcome-file-list>

 

</web-app>

 

Tomcat的主要工作:

    1: 提供一个web服务,提供给外部用户,访问;我们就可以添加自己的webapp,来达到架设自己网站的目的

   2:tomcat 将jsp 翻译 成java代码;

这个动作什么时候 发生呢?

n  在用户第一次访问该jsp页面时,自动将jsp页面转换为一个java文件,

例如: index.jsp 转换为  index_jsp.java; 应该有一个类名index_jsp

      3:tomcat 将java代码进行编译compile;

      4:tomcat 初始化我们的index_jsp.java 类

      5:tomcat 调用index_jsp.java中的方法。

      

       注意:用户在第2次访问 jsp页面时,直接执行 5步,直接调用index_jsp.java中的方法。

       面试题:为什么jsp页面第一次访问慢,第二次访问快?

      

            

3:Eclipse 集成开发工具与tomcat的配置:

Ctl + S 保存,或者点击上面的关闭按钮,提示保存并关闭。完成tomcat的配置

 

4:Eclipse + tomcat 常见错误:

Address already use  jvm_bind

 

针对于端口被占用的问题的通用解决办法:

1) tomcat shutdown

2) tomcat下的目录webapps 下的所有的无关web项目都删除

3) 重启启动tomcat,即可。

5:Jsp页面中的声明

<%@ page

language="java"    -- 指定页面中的开发语言,只能是java,没有其他值

contentType="text/html;charset=utf-8"   -- 告诉浏览器,返回的页面内容是文本文件类型的html小类型,并且 编码方式为utf-8

pageEncoding="utf-8"   (重要)-- 告诉 tomcat 该页面保存时使用的编码方式,并且eclipse工具有一个便捷的方式,如果修改了pageEncoding,页面保存时的编码方式,随之改变,避免了乱码问题的出现,可以与xml文件头的encoding做类比记忆。

%>

 

 

 

http的协议解析:

    http的协议是一种无状态的协议,基于tcp/ip协议:

      一个请求,一个响应构成了一次完成的http请求过程。

1:Request:

               

请求头

请求头的值

中文解释

Accept

text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

告诉tomcat webserver,客户端浏览器可以接受的文档类型

Accept-Encoding

gzip, deflate, sdch

可以接受gzip的压缩方式

Accept-Language

zh-CN,zh;q=0.8,en;q=0.6

告诉tomcat,可以接受的语言

Connection

keep-alive

“让子弹飞一会儿”让服务于客户端之间的连接时间延长一会儿,让更多的资源被传递,提供浏览器的开始资源响应速度。

Cookie

JSESSIONID=52585D1EE5BDD782BE4B3F73E85B306D; tu=21b986504ef97a36723a58eb211cd330

在客户端保存一些服务器的返回信息,以供下次访问时使用,叫”小甜点”

DNT

1

?

Host

newedu.com:8080

Tomcat所在的主机域名以及端口

Upgrade-Insecure-Requests

1

Websocket http协议层面的支持

User-Agent

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36

我们使用的浏览器的所在客户端信息。

Request URL

http://newedu.com:8080/webapp2/index.jsp

GET /webapp2/index.jsp HTTP/1.1

要从服务器访问的资源名字以及路径

Request Method

Get/post

请求方法

Remote Address

192.168.91.180:8080

客户端的访问的ip地址

 2:Response

Response 状态

200 OK

Tomat响应的状态码

Content-Length

311

Tomcat服务器响应的内容字节长度

Server

Apache-Coyote/1.1

Tomcat的别名

Set-Cookie

JSESSIONID=0FBED8BE3DFBE778B121768FB7868F86; Path=/webapp2/; HttpOnly

Tomcat设置cookie的内容

Content-Type

text/html;charset=utf-8

服务端告诉浏览器,返回的内容类型以及编码方式

Date

Sun, 18 Sep 2016 08:33:16 GMT

响应时间

     http的状态码分类:

200 – 成功

300 – 转发

   304 缓存

400 – 客户端错误

    404 –所请求的资源不存在。

500 – 服务端错误

3:总结:

   http协议的主要内容:

   一个http的请求协议格式:

         请求资源的路径 GET /webapp2/index.jsp HTTP/1.1 

            很多的请求头(键值对 map

            空格

            请求体为空(因为参数都放到了url中。例如:http://newedu.com:8080/jsp-day01/login.jsp?name=jerry&pwd=jerry

 

            如果使用Post方式,那么参数就被放置到请求体中

             name=jerry&pwd=jerry

 

 

    一个http的响应协议格式:

             响应请求的状态码 HTTP/1.1 200 OK
             很多响应头
             空格
             响应体(一般情况下,是准备要显示的html页面内容)

猜你喜欢

转载自blog.csdn.net/paoyea/article/details/52577240