一、web
- web结构
- 常见的服务器
- WebLogic: orcale公司的产品,支持JAVAEE规范,收费
- WebsphereAS: IBM公司的产品 ,支持JAVAee规范, 收费
- Jboss: red公司的产品,支持EJB, 免费
- Tomcat: apache公司产品支持JavaEE规范,免费
容器: 实现了什么样的规范,就称为什么样的容器
常见启动问题
端口号冲突 : 修改D:\apache-tomcat-6.0.39\conf\server.xml文件
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000">
闪退 : 一般需要设置java_home环境变量
tomcat目录结构
应用程序的目录结构(死了都要记住)
- app
- html
- css
- js
- 图片
- WEB-INF : 文件夹(必须大写,不是必须的,当有动态的资源的时候,此文件夹必须写上) :下面的资源不允许浏览器直接访问,里面的资源是提供给服务器来访问的,我们可以间接的去访问.
- web.xml : 必须的(WEB-INF文件夹存在的前提下)
- classes: 放置的是Java字节码文件
- lib: 放置的是本应用所用到的jar
应用程序的部署方式
- 将应用程序直接拷贝到webapps目录下
- 将应用程序打成war包, 直接拷贝到webapps目录下
- 在dos命令窗口下键入: jar –cvf 名字.war .
应用程序的部署方式
- 将应用程序直接拷贝到webapps目录下
- 将应用程序打成war包, 直接拷贝到webapps目录下
在dos命令窗口下键入: jar –cvf 名字.war . (D:> jar-cvf a.war app/* )
tomcat的组成结构
各种配置
- 虚拟应用:
- 在server.xml文件中配置如下
- 通过浏览器输入 http://localhost:8080/abc/1.html 来访问
缺点: 必须重新启动服务器 - 在 conf/catalina/localhost/目录下随意建立一个xml文件,文件名任意(eg: abcde.xml)。(不需要重启服务器) 推荐使用
内容如下:
虚拟路径就是文件名
我们通过浏览器访问: http://localhost:8080/abcde/a.html 来访问 - 实际开发时采用直接拷贝文件夹到webapps目录下
- 在server.xml文件中配置如下
默认应用的配置:
只需要在conf/catalina/localhost/目录下建立一个ROOT.xml文件,内容同上,这个应用就是默认应用.访问的时候通过URL: http://localhost:8080/a.html 来访问
c): 配置默认页面,端口号的修改
需要在我们应用目录下app1/WEB-INF目录下配置web.xml文件
配置如下:
端口号修改需要在server.xml文件中配置:
默认端口号配置完毕需要重新启动服务器.
通过 http://localhost:8888/abcd/ 来访问
可以配置成默认的端口号: 80配置多个虚拟主机 (了解)
假设e盘有个目录app1下有个应用app
d盘有个目录 app下有个应用app2
则在server.xml中配置如下:
在C:\WINDOWS\system32\drivers\etc\hosts中配置路径的IP映射如下:
此时就可以通过浏览器访问应用了:
http://www.itheima.com/app/a.html 访问e盘app1/app应用下的a.html页面
http://www.itcast.cn/app2/a.html 访问d盘app/app2应用下的a.html页面
注意:以上端口号是默认的80,可以修改。请求正文只有请求是表单,且是post提交
- 虚拟应用:
POST方式
如请求方式为POST方式,则可以在请求的正文内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。
HTTP协议(记住)
- http协议: 规定了客户端和服务端交流时的数据格式
- 特点:
- 请求和响应都由三部分组成
请求信息(3部分组成):
- 请求行 (由3部分组成)
- 请求的方式
- 请求的资源地址
- 请求协议
- 请求头信息(2部分组成)
* 头名称
* 头值 - 请求正文 (只有请求的类型是post才会有)
- 请求头信息(2部分组成)
- 响应信息:(3部分组成)
- 响应行(由3部分组成)
- 响应协议
- 状态码
- 状态信息
- 响应头信息(2部分):
- 响应头
- 头值
- 响应正文.
- 请求和响应都由三部分组成
get和post方式区别:
- get方式请求参数会附加在url后,而post是看不到的,post相对安全
- get方式对提交的数据大小有限制(1k),post方式对数据大小没有限制.
- 响应的状态吗:
200 Ok
302(307) : 请求重定向
304 : 未修改
404: 找不到
500: 代码错误
请求头信息:
- Accept: 浏览器告诉服务端, 浏览器可接受的MIME类型
- MIME类型: 相当于操作系统下的文件类型。是由大类型和小类型组成: text/html;对应的关系在conf/web.xml中查询
- Accept-Charset: 浏览器告诉服务端, 浏览器支持哪种字符集
- Accept-Encoding: 浏览器告诉服务端, 浏览器能够进行解码的数据编码方式,比如gzip
- Accept-Language: 浏览器告诉服务端,浏览器支持的语言种类
Host: 浏览器告诉服务端,浏览器所在的主机 - Referer: 浏览器告诉服务端,当前页面从哪里来的。
用处: 1. 用来记录广告的信息 2. 防盗链 - Content-Type: 浏览器告诉服务端 ,内容类型 If-Modified-Since: 浏览器告诉服务端修改的时间
- Content-Length: 浏览器告诉服务端 请求正文内容长度
- Connection: 浏览器告诉服务端,连接的状态
- Cookie: 浏览器告诉服务端 ,浏览器携带的Cookie
- Date: 浏览器告诉服务端,发送请求的时间