1 Servlet是sun公司提供的一门用于开发动态web资源的技术。用户若用Java技术开发一个动态web资源或者网页,需要完成以下2个步骤:
① 编写一个Java类,实现servlet接口
② 把开发好的Java类部署到web服务器中

2 Servlet - Java 小程序

① servlet 就是java程序(java 类)

② servlet 遵循servlet 开发规范

③ servlet是运行在服务器端

④ 功能强大,几乎可以完成网站所有的需求

⑤ 学习jsp的基础

3 Servlet 和 Tomcat 在网络中的位置

4 Servlet 快速入门案例

Servlet 开发有三种方式

① 实现servlet 接口

② 通过继承GenericServlet

③ 通过继承HttpServlet

① 实现servlet 接口

  • 建立 web应用 TestWeb
  • 在 TestWeb 下建立 WEB-INF/web.xml
  • 在 WEB-INF 下建立 classes目录(servlet就要在这开发),建立lib目录
  • 实现 Servlet接口来开发 Servelt  编写FirstServlet.java 类然后编译
 import javax.servlet.*;
import javax.servlet.http.*; public class FirstServlet implements Servlet
{
//该函数用于初始化Servlet,把Servlet加载到内存,整个Servlet生命周期只会被调用一次
public void init(ServletConfig config) throws ServletException
{ } //获取ServletConfig对象
public ServletConfig getServletConfig()
{
return null;
} //该函数是服务函数,业务逻辑在这个函数实现
public void service(ServletRequest request, ServletResponse response)
{
PrintWriter out = response.getWriter(); out.println("Hello Servlet"+" "+ new java.util.Date());
} //返回Servlet配置信息
public String getServletInfo()
{
return null;
} //destroy()方法只会被调用一次,在 Servlet 生命周期结束时被调用
public void destroy()
{ }
}

  

  根据 Servlet 规范部署 Servlet,打开WEB-INF/web.xml 添加如下代码部署 FirstServlet:

   <!--Deploys the servlet to here -->
<servlet>
<!-- 自己定义 -->
<servlet-name>FirstServlet</servlet-name>
<!--FirstServlet所在项目的全路径(非物理路径,而是以项目WEB-INF\classes为根目录开始计算) -->
<servlet-class>FirstServlet</servlet-class>
</servlet> <servlet-mapping>
<!-- 与上面的servlet-name保持一致 -->
<servlet-name>FirstServlet</servlet-name>
<!-- 外部访问的url: 自己定义 -->
<url-pattern>/First</url-pattern>
</servlet-mapping>

  

  重启Tomcat,浏览器访问FirstServlet,输入的地址为:http://localhost:8080/TestWeb/First,最后的First就是web.xml 里配置的,可以随意定义。

  

  ③ 继承HttpServlet

  通过继承HttpServlet 开发 Servlet,需要重写 doGet,doPost方法。

  首先编写一个Login.html 用于访问SecondServlet,Login.html必须放在 \LatinyWeb\WEB-INF下

<html>
<body>
<form action="/TestWeb/Second" method="post">
user:<input type="text" name="username"/>
<input type="submit" value="login"/>
</body>
</html>

  

  然后编写SecondServlet.java 类,并在 web.xml配置外部访问的 url。

 public class SecondServlet extends HttpServlet
{
//在HttpServlet中,设计者对post与get提交分别处理
//doGet()与doPost()调用Servlet的service方法
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
res.getWriter().println("This is doGet method!");
} protected void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException
{
res.getWriter().println("This is doPost method!");
res.getWriter().println(req.getParameter("username")+" visits.");
}
}

  

  浏览器访问

  

  

  

  5 Servlet生命周期

  

  

Servlet生命周期简述

① 当Servlet第一次被调用时,首先会触发init 函数,该函数会把servlet实例加载到内存,它在整个生命周期只会被调用一次。

② 然后Servlet 的 service函数会被调用,后台业务逻辑都在此实现

③  第二次及以后调用Servlet,都是直接调用service函数。

④ 当web服务器停止或者reload时,tomcat关闭或者关机时,都会调用Servlet的destory函数销毁Servlet对象

Servlet 运行过程

Serlvet程序是由web服务器调用,web服务器接收到客户端请求后:

① Web服务器首先检查 Serlvet是否创建并且装载到内存,如果是则到第2步,如果未创建装载Serlvet 实例,则创建Servlet实例对象并且调用init函数装载该Servlet实例对象到内存中。

② 创建一个用于封装http请求消息的 HttpServletRequest 对象和一个代表http响应消息的 HttpServletResponse 对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。

③ Tomcat重启或者关闭时;reload 该webapp时;关闭电脑时;都会调用destroy()方法。

  

  

  

1 Servlet 简介的更多相关文章

  1. Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解

    Servlet基础(一) Servlet基础和关键的API介绍 Servlet简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中. Servlet容器负责Servl ...

  2. Servlet简介与Servlet和HttpServlet运行的流程

    1.Servlet      [1] Servlet简介         > Server + let         > 意为:运行在服务器端的小程序.         > Ser ...

  3. JavaEE:Servlet简介及ServletConfig、ServletContext

    Servlet简介 1.Servlet是sun公司提供的一门用于开发动态web资源的技术*静态web资源:固定数据文件*动态web资源:通过程序动态生成数据文件2.Servlet技术基于Request ...

  4. Servlet简介及使用

    javaweb学习总结(五)——Servlet开发(一) 一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口 ...

  5. servlet简介及生命周期

    Servlet 简介 Servlet 是什么? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上 ...

  6. (一)Servlet简介

    相关名词解释 HTML:Hyper Text Markup Language,超文本标记语言 HTTP:Hyper Text Transfer Protocol,超文本传输协议 URL:Uniform ...

  7. 【Servlet】(1)Servlet简介、Servlet底层原理、Servlet实现方式、Servlet生命周期

    一.Servlet简介 1.Servlet定义: Servlet(Server Applet)是Java Servlet的简称,是为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交 ...

  8. 1.1(学习笔记)Servlet简介及一个简单的实例

    一.Servlet简介 Servlet是使用Java语言编写的服务器端程序,可以生产动态的Web界面. 主要运行在服务器端,Servlet可以方便的处理客户端传来的HTTP请求,并返回一个响应. 二. ...

  9. Servlet学习笔记【1】--- 背景和基础知识(CGI、Web服务器发展史、Servlet简介、任务、继承结构)

    本文主要讲Servlet的基础知识和背景知识. 1 CGI简介 CGI(Common Gateway Interface 公共网关接口)是WWW技术中最重要的技术之一,有着不可替代的重要地位.CGI是 ...

  10. 二:Servlet简介

    一.Servlet简介 1.什么是Servlet Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是 ...

随机推荐

  1. Linux 基本操作--文件查看 (day3)

    一.查看文件-----cat (详情参考:http://blog.sina.com.cn/s/blog_52f6ead0010127xm.html) 语法结构: cat 查看方式 文件 cat  -A ...

  2. docker学习笔记(二)-dockerfile docker仓库

    dckerfile2这样写才对,不然打印的是hello $name 例子 登陆https://hub.docker.com 上面是提交到公共仓库 创建本地私有仓库 开启另外一个虚机,将重新构建上传镜像 ...

  3. 获取列表的索引操作:enumerate

    通过循环获取列表的索引操作: 主要使用:enumerate product_list = [['Iphone7',5800], ['Coffee',30], ['疙瘩汤',10], ['Python ...

  4. 发现一款比echarts更牛B,效果更炫的图表组件 d3.js

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code d3.js  ,能制作更加复杂的图表 https://github.com/d3/d3 ...

  5. P2370 yyy2015c01的U盘(二分+背包)

    思路:先说一下题意吧.就是给你n个文件大小为v,价值为c, 但是硬盘的大小为S, 而且要存的总价值大于等于p.问每次传输k大小的文件.问k的最大值是多少? 我们以k为二分对象. 直接讲检验函数吧. 假 ...

  6. python 那些我记不清的函数

    eval 函数:用来计算在字符串中的有效Python表达式,并返回一个对象......将字符串变回数据类型 enumerate函数:加上序号 isinstance函数:判断数据类型 isinstanc ...

  7. go标准库的学习-errors

    参考https://studygolang.com/pkgdoc 导入方式: import "errors" errors包实现了创建错误值的函数. 1)func New func ...

  8. (折扣计算)需求说明:普通顾客购物满100元打9折;会员购物打8折;会员购物满200元打7.5折(判断语句if-else和switch语句的嵌套结

    package com.summer.cn; import java.util.Scanner; /** * @author Summer *折扣计算 需求说明:普通顾客购物满100元打9折:会员购物 ...

  9. P4550 收集邮票-洛谷luogu

    传送门 题目描述 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡也很喜欢 ...

  10. LeetCode264:Ugly Number II

    自己的做法超时了.主要是每次生成一个数据,保存到list中,然后对List重新排序.排序太耗费时间 记录下讨论组里的写法 public int NthUglyNumber(int n) { int[] ...