Java Web开发入门

Internet上供外界访问的web资源分为:静态web资源和动态web资源
静态web资源开发技术:html
动态web资源开发技术JSP/Servlet、ASP、PHP

安装web服务器:
WebLogic(支持J2EE规范)[BEA公司]
WebSphere(支持J2EE规范)[IBM公司]
Tomcat(支持JSP、Servlet规范)[apache]

请说出互联网上常用的服务器端口?
基于http协议:80
基于Smtp协议:25
基于pop3协议:110
基于ftp协议:23
基于https协议:443

关于Tomcat服务器

Mac用终端开启、关闭Tomcat:

cd /Users/lyan/Library/apache-tomcat-7.0.81/bin
./startup.sh  -- 开启tomcat
./shutdown.sh  -- 关闭tomcat

Tomcat目录结构

Java Web开发入门_第1张图片
屏幕快照 2017-09-10 下午3.17.56.png

web应用

web应用是由多个静态web资源和动态web资源组成
如:html、css、js文件
jsp文件、java程序、支持jar包
配置文件等

虚拟目录的映射:web应用开发好,想供外界访问,需要把web应用所在目录交给web服务器管理的过程称为虚拟目录的映射。

web应用供外界访问的几种方法

方法在Tomcat主页上:http://localhost:8080/docs/config/index.html,点击右侧context进入。

Defining a context
It is NOT recommended to place elements directly in the server.xml file. This is because it makes modifying the Context configuration more invasive since the main conf/server.xml file cannot be reloaded without restarting Tomcat.(不建议把元素直接放到server.xml文件,因为必须要重启服务器)

Individual Context elements may be explicitly defined:

  • In the $CATALINA_BASE/conf/context.xml file: the Context element information will be loaded by all web applications.(这个方法将会被所有的web应用加载)

  • In individual files (with a ".xml" extension) in the $CATALINA_BASE/conf/[enginename]/[hostname]/ directory. The context path and version will be derived from the base name of the file (the file name less the .xml extension). This file will always take precedence over any context.xml file packaged in the web application's META-INF directory.The default web application may be defined by using a file called ROOT.xml.(在引擎目录[config下的Catalina]下的主机目录[localhost]里新建一个.xml文件,在这里面写,这个文件将成为web应用的虚拟目录,不用重启服务器,定义缺省的虚拟目录,就要重启服务器)

  • In an individual file at /META-INF/context.xml inside the application files. Optionally (based on the Host's copyXML attribute) this may be copied to $CATALINA_BASE/conf/[enginename]/[hostname]/ and renamed to application's base file name plus a ".xml" extension.

  • In the $CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default file: the Context element information will be loaded by all web applications of that host.(这个方法会被主机下的所有应用加载)

  • Inside a Host element in the main conf/server.xml.(最后一个方法不被建议)
    里写


浏览器上输入url:http://localhost:8080/itcast/1.html

  • 让tomcat自动映射,把web应用放到webapps目录里,外界可以直接访问。
web应用组织结构
Java Web开发入门_第2张图片
屏幕快照 2017-09-10 下午4.06.42.png
web.xml配置文件
  • 将某个web资源配置为网站首页
  • 将servlet程序映射到某个url地址
  • 为web应用配置监听器
  • 为web应用配置过滤器
配置虚拟主机

在web服务器中配置一个网站:
在server.xml文件里添加一个
例:


    

配置的主机要想被外部访问,必须在DNS服务器或windows系统中注册
例如在windows中注册:
C:\WINDOWS\system32\drivers\etc\hosts

web资源访问图
Java Web开发入门_第3张图片
屏幕快照 2017-09-10 下午4.50.20.png
Java Web开发入门_第4张图片
屏幕快照 2017-09-10 下午4.51.29.png
Java Web开发入门_第5张图片
屏幕快照 2017-09-10 下午4.52.46.png
打包web应用war

优点:将war包放到服务器里面,会自动解压
打包方法:在终端输入

cd 目录名
jar -cvf web应用名.war web应用名
Tomcat体系结构和配置https连接器
Java Web开发入门_第6张图片
屏幕快照 2017-09-10 下午7.18.45.png

配置加密连接器
数字证书:keytool -genkey -alias tomcat -keyalg RSA

HTTP协议

http协议用于定义客户端与web服务器通讯的格式
web应用优化:减少浏览器对服务器的http请求。

HTTP请求

一个请求行、若干请求头以及实体内容
请求行常用:GET、POST
GET:在URL地址附带参数是有限制的,在请求行上显示。
POST:可以在请求的实体内容中向服务器发送数据,传送数据量无限制
例:

GET /books/java.html HTTP/1.1
请求方式  请求资源名称  HTTP协议版本号

HTTP常用请求头:

Java Web开发入门_第7张图片
屏幕快照 2017-09-10 下午7.32.57.png

Accept:用于告诉服务器客户机支持的类型
Accept-Charser:用于告诉服务器客户机支持的编码
Accept-Encoding:用于告诉服务器客户机支持的压缩格式
Accept-Language:客户机的语言环境
Host:客户机通过这个头告诉服务器想访问的主机名
If-Modified-Since:客户机通过这个头告诉服务器资源的缓存时间
Referer:客户机通过这个头告诉服务器,客户机从是哪个资源访问服务器的(防盗链)
User-Agent:客户机通过这个头告诉服务器客户机的软件环境
Cookie:客户机通过这个头告诉服务器可以向服务器带数据

HTTP请求

一个状态行,若干个响应头以及实体内容
状态行:HTTP/1.1 200 OK
200是状态码

Java Web开发入门_第8张图片
屏幕快照 2017-09-10 下午7.41.41.png

HTTP响应中常见的响应头

Java Web开发入门_第9张图片
屏幕快照 2017-09-10 下午7.44.09.png

Location:这个头配合302状态码使用,用于告诉客户机找谁
Server:服务器通过这个头告诉浏览器服务器类型
Content-encoding:告诉浏览器数据的压缩格式
Content-Length:服务器通过这个头告诉浏览器数据的长度
Content-Language
Content-Type:服务器通过这个头告诉浏览器回送数据的类型(Tomcat-config-web.xml里有声明告诉你哪种类型该怎么写)
Last-Modified:服务器通过这个头告诉浏览器当前资源缓存时间
Refresh:服务器通过这个头告诉浏览器隔多长时间刷新一次
Content-Disposition:服务器通过这个头告诉浏览器以下载的方式打开数据
Transfer-Encoding:服务器通过这个头告诉浏览器数据的传送格式
Set-Cookie
ETag:缓存相关的头
Expires:服务器通过这个头告诉浏览器把回送的资源缓存多长时间,-1或0,则是不缓存
Cache-Control:no-cache
Pragma:no-cache
服务器通过上面这两个头,控制浏览器不要缓存数据

HTTP实用头字段

http请求头字段:
Range头可以用来实现断点续传功能
三种格式用来设置传输的字节范围

Java Web开发入门_第10张图片
屏幕快照 2017-09-10 下午7.55.48.png

http响应头字段
Accept-Ranges:用来说明web服务器是否支持Range,支持返回bytes,不支持返回Accept-Ranges:none
Content-Range:指定了返回的web资源的字节范围

本文仅是本人学习所用,如有侵权请告知后,本人将会删除。

你可能感兴趣的:(Java Web开发入门)