1. Servlet

1.1 静态网页和动态网页

如果浏览器在不同时刻访问Web服务器所获得的页面内容(源文件)可以发生变化,那么这个页面就称之为动态网页。我们参考以下代码:

<html><head><script type="text/javascript">document.write(new Date());</script></head><body></body>
</html>

虽然每隔一段时间刷新网页会看见时间的改变,但是网页的源文件是没有变化的,这种情况就不属于动态网页。

1.2 Servlet简介

一个Servlet程序就是一个实现特殊接口的java类,它由支持Servlet的Web服务器调用和运行。Servlet程序负责处理它所对应的一个或多个访问请求,并用于接收客户端发出的访问请求信息和产生的响应内容

我们可以在Servlet中完成如下功能: 1. 获取浏览器Html页面中的Form表单,并通过一种方式提交到服务器 2. 创建对浏览器的响应消息内容 3. 访问服务器的文件系统 4. 连接数据库 5. 调用其他Java类 **开发Servlet涉及的相关知识:** 1. 应该具备良好的Java编程基础 2. Servlet是基于Web站点的技术,应该对于Xml、Http协议以及Html、Css和Js有所了解 3. 应该具备数据库系统的相关知识,能对数据库进行基本的管理和操作是必要的

#2. Servlet开发 ##2.1 Servlet的第一个例子 上文已经提到 **Servlet是一个实现特殊接口的Java类**我们可以在API文档中发现

|--java.lang.Object|--javax.servlet.GenericServlet|--javax.servlet.http.HttpServlet

HttpServlet是在GenericServlet类的基础上进行了一些针对Http的扩充。显然,一个类只要继承了GenericServlet或者HttpServlet,它就是一个Servlet。为了充分利用Http协议的功能,在一般情况下我们都应该继承HttpServlet。

**Servlet开发步骤:** 1. 新建Web工程MyJavaWeb 2. 编写类继承HttpServlet 3. 配置web.xml文件

package com.xpeng_V.servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class MyServlet extends HttpServlet {//doGet方法public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.getWriter().write("this is my first Servlet");}}

配置web.xml文件

<servlet><servlet-name>MyServlet</servlet-name><servlet-class>com.xpeng_V.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping><servlet-name>MyServlet</servlet-name><url-pattern>/MyServlet</url-pattern>
</servlet-mapping>

注册Servlet:
其中,指定了MyServlet.java的注册名是MyServlet,servlet的注册名可以是任意的,但是不能和其他的servlet重复。指定了当前servlet的完整路径
映射Servlet:
与servlet的注册名相同,是servlet对外的访问路径
同一个Servlet可以被映射到多个URL上,在上可以使用“”通配符。例如,“.do”表示匹配所有以“.do”结尾的URL,另一种“/*”表示匹配当前路径下所有的URL。

将工程发布到Tomcat并重启服务器,在浏览器地址栏中输入http://127.0.0.1:8080/MyJavaWeb/MyServlet

**缺省Servlet** 如果某一个Servlet的映射路径仅仅为“/”,那么这个Servlet就是当前Web应用的缺省Servlet。凡是web.xml文件中不能匹配的元素,就都交给缺省Servlet处理。访问Tomcat服务器中的静态页面和图片时,实际上访问的就是缺省Servlet,我们将web.xml中的缺省Servlet注释,就会发现浏览器的静态页面无法正常显示了。 Tomcat服务器中的缺省Servlet:

    <servlet-mapping><servlet-name>default</servlet-name><url-pattern>/</url-pattern></servlet-mapping>

2.2 Servlet生命周期

Servlet的生命周期主要的方法有构造方法、init、service、destroy:

public class LifeServlet extends HttpServlet {public LifeServlet() {System.out.println("Servlet被创建...");}@Overridepublic void init(ServletConfig config) throws ServletException {System.out.println("init初始化方法...");}@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {System.out.println("service方法被调用");}@Overridepublic void destroy() {System.out.println("destroy被调用,Servlet被销毁");}
}

当第一次从浏览器访问时,控制台输出如下:

Servlet被创建...
init初始化方法...
service方法被调用

每一次发出请求都只会调用service方法,当服务器关闭或者重新发布web应用时会调用destroy方法。

构造方法:创建Servlet对象时被调用 Servlet构造方法只调用一次,所以在Tomcat服务器中Servlet是单例的
init:创建完Servlet对象后被调用
service:每次发出请求时被调用
destroy:停止Web服务器或者重新发布Web应用时会销毁Servlet对象

转载于:https://www.cnblogs.com/xpeng-V/p/7349686.html

初学Java Web——Servlet(一)相关推荐

  1. JAVA Web Servlet中的异步处理 (2) -- Servlet3.1中的Non-blocking IO支持

    JAVA Web Servlet中的异步处理 (2) – Servlet3.1中的Non-blocking IO支持 在servlet 3.1中,新增了non-blocking IO支持. 在serv ...

  2. JAVA Web Servlet中的异步处理 (1) -- Servlet3.0中的Async支持

    JAVA Web Servlet中的异步处理 (1) – Servlet3.0中的Async支持 每个请求来到Web容器,Web容器会为其分配一个线程来专门负责该请求,直到完成处理前,该执行线程都不会 ...

  3. Java Web Servlet

    Java Web Servlet Servlet是在服务器上运行的小程序.一个Servlet就是一个Java类,并且可以通过"请求-响应"编程模型来访问的这个驻留在服务器内存里的S ...

  4. java request获取域,Java Web - Servlet(13)HttpServletRequest详解(获取请求数据、请求分派、请求域)(二)...

    Java Web -- Servlet(13)HttpServletRequest详解(获取请求数据.请求分派.请求域)(2) HttpServletRequest ----------------- ...

  5. 基于java web servlet生鲜商城管理系统源码含报告文档

    (一)目的 电子商务的迅速兴起,网上购物也为人们的生活提供了极大的便利,不受时间和空间的限制.商城系统的兴起,扩大了消费市场的空间,对于大型企业来说,建设商城系统是正确的选择,不仅要扩大销售渠道,而且 ...

  6. 【暑假学习笔记】之——用Intellij idea新建一个java web+Servlet项目(有实例)——idea中快速重写父类的方法

    Intellij idea中快速重写父类方法 在写java文件时,有时候需要重写父类方法,但在idea中创建java文件时并不会像eclipse一样可以选择父类,但是重写父类方法其实只需要这样做: 鼠 ...

  7. 初学 Java Web 开发,请远离各种框架,从 Servlet 开发

    写在前面: 本文是转自:http://www.oschina.net/question/12_52027  的文章,如果要求删除,第一时间联系我立即删除! Web框架是开发者在使用某种语言编写Web应 ...

  8. 初学Java Web开发,请远离各种框架,从Servlet开发

    [转载自红薯,原帖地址]http://www.oschina.net/question/12_52027 OSCHINA 软件库有一个分类--Web框架,该分类中包含多种编程语言的将近500个项目. ...

  9. 初学Java Web(4)——Servlet学习总结

    经过一段时间的学习,对于Servlet有了新的不一样的见解,在这里做一下总结,将近来学习到的知识总结一下. Servlet 的请求流程 浏览器发出请求:http://localhost:80/xxx1 ...

最新文章

  1. java两个线程同时运行_java如何几乎同时结束两个线程
  2. 使用 IntraWeb (8) - 系统模板
  3. mysql悲观锁 更新_MySQL学习笔记(四)悲观锁 for update
  4. 显式锁select for update 用法
  5. linux光标美化包,使用 [ powerlevel10k ] 美化你的WSL (Linux)
  6. OpenJudge NOI 1.4 20:求一元二次方程的根
  7. rdd转换成java数据结构_Spark RDD转换成其他数据结构
  8. python文字处理dummy_python中multiprocessing、multiprocessing.dummy和threading用法笔记
  9. “土豪机”8848出新品 手机数据备份保险箱1699起
  10. 常用SQL语句---备忘
  11. 让Windows 7安装更快速.
  12. 叮咚智管-智慧物业管理系统
  13. sm3 算法java_java sm3加密算法
  14. Python学习笔记(五)——读写文件
  15. LightOj 1336(Sigma Function)
  16. 双系统卸载Linux,重装Deepin
  17. 重识Nginx - 18 网络收发与Nginx事件间的对应关系
  18. AVR单片机开发3——定时器T0 查询方式
  19. php 抢红包_用PHP实现的抢红包小程序
  20. 【技术人快报】摩拜单车多地区现Bug+iCloud完成中国本土化落地

热门文章

  1. Java虚拟机常量池和本地变量表、自己定义的数值自动装入常量池
  2. DirectX Shader 入门学习
  3. VC++ 自定义消息学习总结
  4. 一款名为Blue_Moon的后台模板的初步研究
  5. Linux DMA 驱动学习总结
  6. Java设计模式理论知识要点总结
  7. 带着问题读CLR via C#(六)常量与字段
  8. layui给select下拉框赋值
  9. 3.1 普通型生成函数
  10. Oracle数据库的下载和安装