一、动态网络编程的概念
动态网页:结合了HTML以外的高级程序编程语言和数据库技术生成的页面。

动态网页编程技术:
ASP,PHP,JSP

HTTP协议:规范浏览器和服务器之间通信的数据格式。
浏览器发送请求和服务器响应结果时的数据格式。

请求和响应模式:
用户通过浏览器发送HTTP请求至服务器
服务器(Tomcat)接受到请求后,解析请求数据(项目/资源),服务器查找部署的项目和具体的组件(Serlvet组件)处理请求
服务器封装响应结果数据包,通过网络将结果发送回浏览器
浏览器解析响应数据包(response body:结果),显示到浏览器上

![](1.png)

# 二、搭建Tomcat
###<1>步骤
1. 下载
2. 解压
3. 配置环境变量
JAVA_HOME JDK
4. 在eclipse中配置tomcat
window---preferences---server---runtime environment ---选择tomcat版本---管理tomcat

###<2>Tomcat和Apache的区别
两个都是web服务器
Apache是普通的服务器,只支持普通网页
Tomcat是java应用的服务器,支持java项目

###<3>HTTP的状态码
1XX:提示信息
2XX:成功
3XX:重定向
4XX:客户端错误
5XX:服务器端错误

200: 客户端请求成功
404: 资源不存在
500:服务器发生错误

# 三、Servlet组件
###<0>概念
Servlet是运行在服务器上的java对象
处理客户端的请求和响应处理结果

###<1>实现步骤
1. 创建一个java类,实现Servlet接口
(在实际的开发中,通常不会去实现接口,继承HttpServlet类)
2. 重写Servlet接口中的方法
service()
3. 在web.xml中进行配置Servlet
<servlet>
<servlet-name>servlet的别名</servlet-name>
<servlet-class>servlet的类全名</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>servlet的别名</servlet-name>
<url-pattern>url中请求servlet的名称</url-pattern>
</servlet-mapping>

###<2>url-pattern的配置方式
1. <url-pattern>/</url-pattern> 表示此/对应Servlet是缺省的Servlet(DefaultServlet)
客户端的所有访问都交给此Servlet处理,如果访问的资源不存在,则显示404页面

2. /servlet的url名称 , 例如:/myservlet ,完全匹配
3. /目录* ,例如:/a/b/c , 目录匹配
4. *.扩展名 ,例如:*.do , 扩展名匹配

###<3>Servlet响应结果数据的乱码处理:HttpServletResponse
1. 响应的结果数据是纯本文数据:response.setCharacterEncoding("gbk");
设置当前响应结果的字符集
不设置会使用当前浏览器默认的字符集进行解码

2. 响应的结果数据是页面数据:response.setContentType("text/html;charset=utf-8");//在 创建流对象之前设置页面的编码
设置当前页面响应结果的字符集

###<4>Servlet的生命周期
实例化Servlet---->初始化Servlet---->服务----->销毁----->回收

![](2.png)

![](3.png)

1. 实例化
第一次请求此Servlet
服务器启动时:在web.xml中配置<load-on-startup>num</load-on-startup>
num:Servlet被实例化的顺序,越小优先级越高
<servlet>
<servlet-name>myservlet4</servlet-name>
<servlet-class>cn.xdl.serlvet.MyServlet4</servlet-class>

<load-on-startup>1</load-on-startup>
</servlet>

2. 初始化
实例化完毕之后,直接调用init方法对当前的Servlet进行初始化操作
init方法只执行一次
在此方法中获取Servlet中存储的配置参数
<servlet>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/db1</param-value>
</init-param>
</servlet>
3. 服务
重写service方法
重写doget/dopost方法

4. 销毁
调用destroy方法
服务器停止时
将当前的程序从服务器上移除

5. 回收
被GC回收

内存( 栈 堆 方法区)

GC回收 : 堆 ,方法区 (线程共享的区域)

Java对象引用:

6. Tomcat只维护一个相同的Servlet实例

一、动态网络编程的概念 二、Tomcat服务器搭建 三、Servlet组件介绍的更多相关文章

  1. JavaWeb学习总结(二)——Tomcat服务器学习和使用(一)

    一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...

  2. JSP学习笔记(二):Tomcat服务器的安装及配置

    一.Tomcat的下载及安装. 前往Tomcat官网下载安装包或者免安装压缩包.链接http://tomcat.apache.org/ 这里,我选择的是Tomcat8.0,而不是最新的Tomcat9. ...

  3. JavaWeb学习总结(二)——Tomcat服务器学习和使用(一)(转)

    转载自 http://www.cnblogs.com/xdp-gacl/p/3734395.html 一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的serve ...

  4. JavaWeb(二)——Tomcat服务器(一)

    一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...

  5. JAVA WEB学习笔记(二):Tomcat服务器的安装及配置

    一.Tomcat的下载及安装. 前往Tomcat官网下载安装包或者免安装压缩包.链接http://tomcat.apache.org/ 这里,我选择的是Tomcat8.0,而不是最新的Tomcat9. ...

  6. java web(一):tomcat服务器的安装和简单介绍,与eclipse关联

    一:下载tomcat安装包和安装 这个百度一下就可以了. 安装完以后进入tomcat的安装路径查看 如图所示:有几个目录简单介绍下 bin目录:   存放运行tomcat服务器的相关命令. conf目 ...

  7. Tomcat服务器搭建

    一.JDK环境搭建 二.tomcat下载安装 三.tomcat服务启动 cmd> net start  tomcat8 四.查看tomcat服务器启动情况: http://localhost:8 ...

  8. LINUX服务器搭建和常用配置介绍

    服务器搭建 : 搭建私有CA服务器 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_011_ca.html搭建samba服务器 : h ...

  9. Java网络编程(模拟浏览器访问Tomcat服务器)

    程序运行结果: HTTP/1.1 404 Not FoundServer: Apache-Coyote/1.1Content-Type: text/html;charset=utf-8Content- ...

随机推荐

  1. UUID生成随机数工具类

    package com.qiyuan.util; import java.util.UUID; public class RanNum { /** * 生成随机数<br> * GUID: ...

  2. lucene源码分析(3)facet实例

    简单的facet实例 public class SimpleFacetsExample { private final Directory indexDir = new RAMDirectory(); ...

  3. iOS 使用UI控件的外观协议UIAppearance进行设置默认UI控件样式

    在iOS开发中,经常会对UINavigationBar的样式进行全局样式.采用的设置方式有两种: 第一种,采用方式如下: [UINavigationBar appearance] 这种是对一类对象的默 ...

  4. H5如何用Canvas画布生成并保存带图片文字的新年快乐的海报

    摘要:初略算了算大概有20天没有写博客了,原本是打算1月1号元旦那天写一个年终总结的,博客园里大佬们都在总结过去,迎接将来,看得我热血沸腾,想想自己也工作快2年了,去年都没有去总结一下,今年势必要总结 ...

  5. js jq封装ajax方法

    json文本格式 { "userInfo":[ {name:"admin",password:"123"}, {name:"adm ...

  6. [转]C# 关闭嵌在程序中的word进程而不关闭用户通过word手动打开的word进程

    命名空间 :System.Diagnostics 以前在word的时候,经常碰到word进程产生一大堆,怕关错了,把用户自己打开的word也关闭,一直搞忽悠,今天上网花了10块钱,下了个文件,给我了一 ...

  7. ubuntu上使用ufw配置管理防火墙

    在Linux上使用ufw配置管理防火墙 UFW,即简单防火墙uncomplicated firewall,是一个 Arch Linux.Debian 或 Ubuntu 中管理防火墙规则的前端.UFW ...

  8. 【JavaScript 从零开始】变量作用域

    变量作用域 一个变量的作用域(scope)是程序源代码中定义这个变量的区域. 全局变量拥有全局作用域,在JavaScript代码中的任何地方都是有定义的.然而在函数内声明的变量只是函数体内有定义. 他 ...

  9. [javaSE] 集合框架(TreeSet)

    TreeSet:可以对Set集合中的元素排序,默认按照ascii表排序,二叉树结构 左边叉是小的,右边叉是大的 存储自定义对象 定义一个类Student实现Comparable类,使自定义类具备比较性 ...

  10. 中小型研发团队架构实践七:集中式日志ELK

    一.集中式日志 日志可分为系统日志.应用日志以及业务日志,系统日志给运维人员使用,应用日志给研发人员使用,业务日志给业务操作人员使用.我们这里主要讲解应用日志,通过应用日志来了解应用的信息和状态,以及 ...