Java Web 基本概念


Web 就是网页的意思,互联网上主机提供的对外访问的资源。

  • 静态 Web 资源:网页内容不会随时间改变,不能和后台交互,如 HTML + CSS + JS → jQuery。
  • 动态 Web 资源:网页内容会随时间而改变,可以与后台交互,如 servlet/jsp。

软件开发模式:
B/S 架构:浏览器服务器模式
C/S 架构:客户端服务器模式

Java Web

Java Web 就是 Java 提供 Web 资源访问的技术总成

与其他语言的 Web 资源访问技术对比:

  • asp.net —— 小型 Web 应用,快速开发
  • php —— 做网站,性能好,速度快,但是没有 Java Web 安全。
  • Java Web —— 企业级 Web 应用

服务器

安装了服务程序的计算机就是服务器。

常用服务器

  • apache-tomcat —— 免费开源的服务器
    只支持 Servlet 和 jsp 规范
  • weblogic —— IBM 公司开发的收费的商业服务器
    支持 13 中技术规范(netbeans)
  • websphere —— 收费的商业版服务器
    支持 13 中技术规范(netbeans)
  • jboss —— 免费开源的服务器
    支持除了 Servlet 和 jsp 的其他技术规范
  • Java EE 服务器
    两台 tomcat 搭一台 jboss 服务器

Java EE 有 13 钟技术规范
JDBC
JNDI
EJBs
RMI
JSP

tomcat

官方网站下载

启动与关闭

目录结构

  • bin 目录 —— 存放了 Tomcat 的指令代码,包括启动、停止等
  • conf 目录 —— 存放 Tomcat 的配置文件(.xml 和 .properties)
  • lib 目录 —— 存放了支持 Tomcat 运行的 jar 文件
  • logs 目录 —— 日志目录,存放了 Tomcat 运行过程中记录
  • temp 目录 —— 存放 Tomcat 临时文件
  • webapps 目录 —— Web 应用存放的目录
  • work 目录 —— Tomcat 的工作目录(将 jsp 文件编译成 .class 文件)

Tomcat 虚拟目录映射

将存在的 Web

配置 Tomcat

配置 server.xml
标签下面添加 Context 标签

<Context docBase="磁盘路径" path="/映射路径"></Context>


在 conf/Catelina/localhost 目录中添加一个 “映射路径.xml” 文件(若为 ROOT.xml 则为缺省)
并编辑内容为
此方法不需要重新启动 tomcat 服务器

该代码表示在浏览器中输入 localhost/映射路径 时,将访问 【磁盘路径】的网页

去除端口

配置 server.xml 文件
设置 端口为 80 端口。

配置 servlet 的映射

配置 jsp 映射
配置监听器,过滤器的映射
配置错误处理页面

http 协议

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

  • Http 1.0 只支持单个 web 资源的访问
  • HTTP 1.1 支持多个 web 资源访问

客户端请求

GET /baidu/index.heml HTTP/1.1
请求的消息投(请求方式,请求资源路径+参数,请求的协议)
Host : localhost:8080
请求的主机地址和端口号
Connection: keep-alive
访问完毕后服务器保持链接
Cache-Control: max-age=0
缓存控制,>=0 表示支持缓存
Upgrade-Insecure-Requests: 1
自动将 HTTP 协议 升级为 HTTPS
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
浏览器信息
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
告诉服务器能够接受的数据类型
Accept-Encoding: gzip, deflate, sdch, br
支持的压缩格式
Accept-Language: zh-CN,zh;q=0.8
浏览器使用的语言
If-None-Match: W/“20-1492573751023”
记录修改的时间,精确到毫秒
If-Modified-Since: Wed, 19 Apr 2017 03:49:11 GMT
记录上次修改的时间,精确到秒

POST 请求

服务器响应

HTTP/1.1 200 OK
响应消息航(协议,响应的状态吗)
Server: Apache-Coyote/1.1
服务器类型
ETag: W/“”
访问资源最后修改的时间
Last-Modified: Wed,…
访问资源最后修改的时间精确到秒
Content-Type: text/html
富强武器响应的数据类型
Content-Length: 184
服务器相应数据的长度
Date:
响应的时间

servlet

Servlet(Server applet)—— 服务器端小程序
servlet 3.1 版本 — 4.0
可以实现网页的动态 web 资源访问

开发 servlet 步骤

1.
2. 在 classes 目录编写一个 HelloServlet.java
extends GenericServlet
3. 编译生成.class 文件

  1. 获取一个服务器写出流
    PrintWriter out = res.getWriter();
  2. 写出服务器响应
  3. 配置 server.xml 映射
    <!--映射路径-->
    <servlet>
    	<servlet-name>helloServlet</servlet-name>
    	<servlet-class>com.crazybunqnq.HelloServlet</servlet-class>
    </servlet>
    <!--映射-->
    <servlet-mapping>
    	<servlet-name>helloServlet</servlet-name>
    	<url-pattern>/hello</url-pattern>
    </servlet-mapping>

javac -cp jar 包路径 -d pakage 路径 java 文件.java
javac -cp .\servlet-api.jar -d . HelloServlet.java
-cp 确定添加的 classpath 路径
-d 生成对应的 pakage 文件夹
. 当前目录


文章作者: CrazyBunQnQ
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 CrazyBunQnQ !
 上一篇
初识 Servlet 初识 Servlet
Servlet 生命周期 初始化阶段第一次访问 Servlet 时,调用 init() 方法之后再次访问该 Servlet 时,会使用已经创建好的 servlet 为用户服务Servlet 是一个多线程的。 服务阶段(响应客户请求)会调用
2017-04-21
下一篇 
XML 解析 XML 解析
XML (Extenstion Markup Language 扩展性标记语言),可以用来做资源配置文件(.properties, xml)、数据的传输格式(json, xml 数据)。
2017-04-18
  目录