一、Servlet简介

 1.1 什么是Servlet(server applet): 是一种独立于平台和协议的服务器端Java应用程序,通过Servlet可以生成动态web页面。还可以在服务器端对客户端的请求进行处理,控制程序的执行。

  作用:交互式的浏览和更新数据,并生成动态的页面内容展示。

  Servlet处理web请求过程:

  

  1. 服务器接受从客户端发送的请求
  2. 服务器将请求信息发送至Servlet
  3. Servlet经处理后,生成响应的内容
  4. 服务器将响应的内容返回客户端

  jsp和Servlet关系:Jsp被web容器解析时,最终会编译成一个Servlet类

1.2 Servlet API

名称 说明 包名
Servlet接口 Java Servlet的基础接口,定义类Servlet必须实现的方法 javax.srevlet
GenericServlet类 继承自Servlet接口,属于通用的、不依赖于协议的Servlet javax.srevlet
HttpServlet类 继承自GenericServlet类,是在其基础上拓展了HTTP协议的Servlet javax.srevlet.http
HttpServletRequest接口 继承自ServletRequest接口,用于获取请求数据的读取 javax.srevlet.http
HttpServletResponse接口 继承自ServletResponse接口,用于返回响应数据 javax.srevlet.http

1.3 Servlet生命周期

  Servlet生命周期:Servlet从创建到销毁的过程。

  Servlet容器:用来装载Servlet对象的一种容器,是负责管理Servlet的一类组件。

  包括一下几个环节:

  1.加载和实例化。

    Servlet容器负责加载和实例化Servlet,当客户端发送一个请求时,容器查找是否存在对应的Servlet实例,没有则创建一个,有则取出该实例来响应请求

  2.初始化。

     容器完成Servlet实例化后,容器将调用Servlet的init()方法进行初始化,初始化的目的是让Servlet对象在处理客户端请求前完成一些初始化工作,如设置数据库连接参数、建立JDBC连接,或者建立对其他资源的引用。init()方法在java.servlet.Servlet接口中定义。(对于每一个Servlet实例,init()方法只被调用一次)

  3.提供服务,请求处理。

         Servlet被初始化后,就处于能响应请求的就绪状态。当Servlet容器接收到客户端请求时,调用Servlet的service()方法处理客户端请求。Servlet实例通过ServletRequest对象获得客户端的请求。通过ServletResponse对象的方法设置响应信息。

  4.销毁。

    容器判断一个Servlet是否应当被释放时(容器关闭或需要回收资源),容器就会调用Servlet的destroy()方法。destroy()方法知名哪些资源可以被系统回收,而不是由destroy()方法直接进行回收。

二、Servlet应用

 2.1 创建Servlet三种方式

  • 实现Servlet接口
  • 继承GenericServlet类
  • 继承HttpServlet类
package myproject;

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class MyServlet extends HttpServlet{
protected void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
System.out.println("调用doGet方法");
} protected void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
System.out.println("调用doPost方法");
} public void destroy(){
System.out.println("Servlet 被销毁");
} public void init(ServletConfig config)throws ServletException{
System.out.println("Servlet 初始化");
String initParam = config.getInitParameter("charSetConfig");
System.out.println(initParam);
}
}

2.2 Servlet的部署与运行

  部署Servlet需要配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>myproject</display-name> <servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>myproject.MyServlet</servlet-class>
<init-param>
<param-name>charSetContent</param-name>
<param-value>utf-8</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
<welcome-file-list> <welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>

 

web.xml常用的<url-pattern>设置有3中形式

  • <url-pattern>/xxx</url-pattern>。精确匹配,例如:<url-pattern>/helloserlvet</url-pattern>
  • <url-pattern>/xxx/*</url-pattern>。匹配路径,如果没有精确匹配,对/xxx/路径的说有请求将由该Servlet处理,例如:<url-pattern> /helloservlet/*</url-pattern>
  • <url-pattern>*.do</url-pattern>。如果没哦有精确匹配和路径匹配,则对所有的.do扩展名的请求将由该Servlet处理

运行:浏览器输入http://localhost:8080/myproject/test

控制台:

   

【JavaWeb】之Servlet的更多相关文章

  1. JavaWeb学习——Servlet相关的接口和类

    JavaWeb学习——Servlet相关的接口和类 摘要:本文主要学习了Servlet相关的接口和类. Servlet的接口和类 三种方式 实现Servlet有三种方式: 实现javax.servle ...

  2. JavaWeb之Servlet入门(二)

    1. 准备 在JavaWeb之Servlet入门(一)中,我们完成了第一个Servlet程序,完成了从URL到后台控制器的中转过程,接下来我们延续JavaWeb之Servlet入门(一)学习下如何传参 ...

  3. JavaWeb学习--Servlet认识

    Servlet开发 用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这种请 ...

  4. IDEA新建javaWeb以及Servlet简单实现

    刚开始用IDEA开发,还不太熟悉,因此写一个教程,加深印象 1.新建一个Web项目 两种方法:java 和 Java Enterprise(推荐) 第一种)通过Java工程创建,这个方法需要手动导入T ...

  5. Intellij IDEA创建javaWeb以及Servlet简单实现

    1.创建web工程 File --> New --> Project...

  6. javaweb之servlet 全解

    ①Servlet概述 ⑴什么是Servlet Servlet是JavaWeb的三大组件之一,它属于动态资源.Servlet的作用是处理请求, 服务器会把接收到的请求交给Servlet来处理,在Serv ...

  7. JavaWeb学习—Servlet

    1.什么是Servlet Servlet是一个继承HttpServlet类的Java类 Servlet必须部署在web服务器端,用来处理客户端的请求 2.Servlet运行过程 Web Client ...

  8. JavaWeb之Servlet总结

    今天上班居然迟到了,昨天失眠了,看完吐槽大会实在不知道做些什么,刚好朋友给我发了两个JavaWeb的练习项目,自己就又研究了下,三四点才睡,可能周日白天睡的太多了,早上醒来已经九点多了,立马刷牙洗脸头 ...

  9. javaWEB之Servlet

    Servlet 1. 什么是Servlet  * Servlet是JavaWeb三大组件之一(Servlet.Filter.Listener)  * Servlet是用来处理客户端请求的动态资源  * ...

  10. Intellijidea建javaWeb以及Servlet简单实现

    一.创建并设置javaweb工程1.创建javaweb工程File --> New --> Project... 点击Project后出现如下界面,选择Java Enterprise,选中 ...

随机推荐

  1. webdriervAPI(元素等待)

    from  selenium  import  webdriver from selenium.common.exceptions import NoSuchElementException driv ...

  2. C++学习笔记-模板

    模板把函数或类要处理的数据类型参数化,表现为参数的多态性,称为类属.模板用于表达逻辑结构相同,但具体数据元素类型不同的数据对象的通用行为. 什么是模板 类属--类型参数化,又称参数模板 使得程序(算法 ...

  3. Luogu P2569 [SCOI2010] 股票交易

    此题链接到dp常见优化方法 开始的时候被纪念品误导,以为是多支股票,后来发现事情不妙: 这道题知道的是某一只股票的走势: \(Solution\): \(70pts\): 设\(f[i][j]\)表示 ...

  4. mysql-1.1基础

    笔记内容:mysql基础,创建数据库,创建表,操作数据表,操作数据,简单查询,条件查询,排序,分组,聚合,连接查询(等值连接,内连接,外链接),子查询 自己提示:脑图笔记存于网盘中  右键:新标签页打 ...

  5. VMware Ubuntu18.04 安装及配置笔记

    安装Ubuntu 下载虚拟机VMware 下载镜像Ubuntu 过程略, 参考 https://zhuanlan.zhihu.com/p/38797088 Ubuntu配置 特别提示: 在Ubuntu ...

  6. 数据结构(三) 树和二叉树,以及Huffman树

    三.树和二叉树 1.树 2.二叉树 3.遍历二叉树和线索二叉树 4.赫夫曼树及应用 树和二叉树 树状结构是一种常用的非线性结构,元素之间有分支和层次关系,除了树根元素无前驱外,其它元素都有唯一前驱. ...

  7. C语言No such file or directory错误

    昨天晚上因为这个错误,都没睡好觉 早上六点起来查资料,换了个绝对路径就行了 #include"D:\软工专业\数据结构PPT和作业\实验作业\实验上机\单链表的基本操作\HeadFile.h ...

  8. Spring Cloud netflix 概览和架构设计

    pring Cloud是基于Spring Boot的一整套实现微服务的框架.他提供了微服务开发所需的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等 ...

  9. Spark在美团是怎么实现的

    目录 1. 美团离线计算平台架构都有哪些框架? 2. 为什么要使用Spark架构? 3. spark推广过程中需要注意哪些方面? 前言 美团是数据驱动的互联网服务,用户每天在美团上的点击.浏览.下单支 ...

  10. Altium Designer 只导出PCB元器件及标号的PDF文件的方法

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 作者:struct_mooc 博客地址:https://www.cnblogs.com/stru ...