3.1  概念    运行在服务器端的小程序
Servlet 就是一个接口 定义JAVA类被浏览器访问(Tomact 识别)的规则 将来 我们需要自定义一个类 实现servlet 接口 重写方法
3.2 快速入门
1 创建一个JavaEE项目
2 定义一个实现Servlet 接口
3 实现接口中的抽象方法
4 配置Servlet 在web.xml 配置
配置文件:
<servlet>
<servlet-name>demo1</servlet-name> <!-- 可以随便起个名字->
<servlet-class>cn.qu.demo.ServletDemo</servlet-class><!-- 路径必须正确 包名 跟类名->
</servlet>
<servlet-mapping>
<!-- 映射->
<servlet-name>demo1</servlet-name>
<!--虚拟路径->
<url-pattern>/aaa</url-pattern>
</servlet-mapping>
package cn.lijun.web.servlet;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/mingming")
public class Demo1Servlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("我是init我启动了");
} @Override
public ServletConfig getServletConfig() {
return null;
} @Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("干事");
} @Override
public String getServletInfo() {
return null;
} @Override
public void destroy() {
System.out.println("我被销毁");
}
}
执行原理:
1.当服务器 接收到客服端浏览器请求后 会解析url地址 获得url路径 获得访问Servlet资源路径
2 查找web.xml文件 是否有对应的<url-pattern></url-pattern>标签内容
3 如果有 则找对应的<servlet-class>全类名
4 tomcat 会将这个类加载进内存 创建其对象
5 调用其方法
1.4生命周期
1 被创建 执行init方法 只执行一次
Servlet 什么时候被创建 第一次被访问的时候 servlet被创建
2 提供服务 执行service方法 执行多次 每次访问servlet时候都执行
3 被销毁 执行destroy方法 服务器被关闭的时候 servlet被销毁
1.5Servlet3.0注解配置
支持注解配置 可以不需要web.xml
1.6Servlet体系结构
Servlet ----接口
GenericServlet-----抽象类-------》重写service方法
HttpServlet 抽象类-------》 对HTTP进行了封装 简化操作 doGet() doPost()
1.7Servlet相关配置
Urlpartten:servlet访问的路径
1 一个servlet可以定义多个访问路径 @WebServlet({“/lijun”,“/demo”,“/de”})
2 路径的规则
1 /XXXX 完全的路径匹配
2 /xxx/xxx 多层匹配
3 *.xxx 拓展名匹配
servlet 中几种错误
404:资源未找到
原因一:在请求地址中的Servlet的别名书写错误
原因二:虚拟项目名称拼写错误
500错误:内部服务器错误
在web.xml中校验servlet的全限定路径是否正确
在service方法体中存在逻辑错误 根据错误语法service方法体中的代码进行错误更改 405错误:强求方式不支持
请求方式和servlet、方法不匹配
尽量使用service方法 尽量不要在service方法中调用父类方法

Servlet 学习的更多相关文章

  1. JSP&Servlet学习手册

    JSP&Servlet学习手册 沙琪玛 书 目录 JSP 指令... 3 书写方式... 3 指令列表... 3 JSP 内置对象... 3 内置对象特点... 3 常用内置对象... 3 o ...

  2. Servlet 学习笔记

    Servlet 运行在服务器上的 java 类: Servlet 容器为 javaWeb 应用提供运行时环境,负责管理 servlet 和 jsp 生命周期,以及管理他们的共享数据. 现在我们知道了 ...

  3. Servlet学习:(三)Servlet3.0 上传文件

    转: Servlet学习:(三)Servlet3.0 上传文件 2018年08月03日 11:57:58 iDark_CSDN 阅读数:362   一.注意事项 客户端(浏览器) 表单的提交方法必须是 ...

  4. Servlet学习(九)——request

    request运行流程在Servlet学习(四)——response已介绍,不再赘述 1.通过抓包工具获取Http请求 因为request代表请求,所以我们可以通过该对象分别获得Http请求的请求行, ...

  5. # jsp及servlet学习笔记

    目录 jsp及servlet学习笔记 JSP(Java Server Page Java服务端网页) 指令和动作: servlet(小服务程序) jsp及servlet学习笔记 JSP(Java Se ...

  6. Servlet学习笔记(四)

    目录 Servlet学习笔记(四) 一.会话技术Cookie.session 1. 什么是会话技术? 2. 会话技术有什么用? 3. Cookie 3.1 什么是Cookie? 3.2 使用Cooki ...

  7. Servlet学习笔记(三)

    目录 Servlet学习笔记(三) 一.HTTP协议 1.请求:客户端发送欸服务器端的数据 2.响应:服务器端发送给客户端的数据 3.响应状态码 二.Response对象 1.Response设置响应 ...

  8. Servlet学习笔记(二)

    目录 Servlet学习笔记(二) Request对象 1.request和response对象: 2.request对象继承体系结构: 3.什么是HttpServletRequest ? 4.Htt ...

  9. servlet 学习(二)

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  10. JavaWeb学习总结-04 Servlet 学习和使用

    一 Servlet 1 Servlet概念 Servlet时运行在服务器端的Java程序. Servlet的框架核心是 javax.servlet.Servlet 接口. 所有自定义的Servlet都 ...

随机推荐

  1. GO语言学习笔记(一)

    GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...

  2. A Deep Learning-Based System for Vulnerability Detection(一)

    接着上一篇,讨论讨论具体步骤实现方法.步骤1-3分别在下面进行阐述,步骤4,6都是标准的,步骤5类似于步骤1-3. 结合这个图进行讨论详细步骤: 步骤1:提取库/API函数调用和程序片段 1.1将库/ ...

  3. 5.3Python数据处理篇之Sympy系列(三)---简化操作

    目录 5.3简化操作 目录 前言 (一)有理数与多项式的简化 1.最简化-simplify() 2.展开-expand() 3.提公因式-factor() 4.合并同类项-ceiling() 5.简化 ...

  4. 爬虫系列二(数据清洗--->正则表达式)

    一 正则常识 模式 描述 \w 匹配字母数字及下划线 \W 匹配非字母数字及下划线 \s 匹配任意空白字符,等价于 [\t\n\r\f]. \S 匹配任意非空字符 \d 匹配任意数字,等价于 [0-9 ...

  5. Spark RDD持久化、广播变量和累加器

    Spark RDD持久化 RDD持久化工作原理 Spark非常重要的一个功能特性就是可以将RDD持久化在内存中.当对RDD执行持久化操作时,每个节点都会将自己操作的RDD的partition持久化到内 ...

  6. Android--图片轮播(banner)

    使用步骤 Step 1.依赖banner Gradle dependencies{ compile 'com.youth.banner:banner:1.4.10' //最新版本 } 或者引用本地li ...

  7. Jetson TX2(3)opencv3 打开usb摄像头

    ubuntu2604 opencv3.4.0 https://blog.csdn.net/ultimate1212/article/details/80936175?utm_source=blogxg ...

  8. Oracle优化器

    本文参照:https://www.cnblogs.com/Dreamer-1/p/6076440.html 读优化器之前建议先读: https://www.cnblogs.com/zhougongji ...

  9. 异步渲染页面怎么点击checkbox获取value值

    前后端分离时 后端向前端传递json数据  前端根据需要进行页面渲染 因为是异步渲染 想要获取获取渲染数据里面的值时获取不到的 介绍两个方法: 1,设置全局变量 即渲染时在html页面设置全局变量 如 ...

  10. InheritedWidget

    下面这个示例是InheritedWidgt的一个简单用法: class CounterProvider extends InheritedWidget{//数据之前必须加上final,下面这三个数据都 ...