Java 之 Servlet 基础入门
一、Servlet 技术
1、概念
Servlet:server applet,是指运行在服务器端的小程序。
Servlet 就是 JavaEE 规范之一。(规范就是接口)
Servlet 就是 JavaWeb 三大组件之一。(三大组件分别是:Servlet程序、Filter 过滤器、Listener监听器)
Servlet 就是运行在服务器上的一个 Java 小程序。(它可以接收客户端发送过来的请求,并响应数据给客户端)
2、Servlet
servlet 就是一个接口,定义了 Java 类被浏览器访问到(Tomcat识别)的规则。

二、Servlet 入门案例
手动实现 Servlet 程序:
(1)编写一个类去实现 Servlet 接口;
(2)实现 service 方法,处理请求,并响应数据;
(3)到 web.xml 中去配置 servlet 程序的访问地址;
1、入门案例
(1)创建 JavaEE 项目
(2)定义一个类,实现 Servlet 接口
public class ServletDemo1 implements Servlet
(3)实现接口中的抽象方法
import javax.servlet.*;
import java.io.IOException; public class ServletDemo1 implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException { } @Override
public ServletConfig getServletConfig() {
return null;
} @Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("Hello Servlet被访问了");
} @Override
public String getServletInfo() {
return null;
} @Override
public void destroy() { }
}
(4)配置servlet
在 web.xml 里面配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"> <!--配置servlet-->
<servlet>
<!--servlet名称-->
<servlet-name>demo1</servlet-name>
<!--servlet全类名-->
<servlet-class>cn.ks.web.servlet.ServletDemo1</servlet-class>
</servlet> <servlet-mapping>
<!--servlet名称-->
<servlet-name>demo1</servlet-name>
<!--映射路径-->
<url-pattern>/demo1</url-pattern>
</servlet-mapping> </web-app>
Demo:

2、配置 xml 常见错误
(1)错误1:url-pattern 中配置的路径没有以斜杠开头。

(2)错误2:servlet-name 写错了,配置的值不存在。

(3)错误3:servlet-class 标签的全类名配置错误。

三、执行原理(url如何访问到Servlet程序)
(1)当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
(2)查找 web.xml 文件,是否有对应的<url-pattern>标签体内容。
(3)如果有,则在找到对应的<servlet-class>全类名
(4)Tomcat会将字节码文件加载进内存,并且创建其对象
(5)调用其方法
示意图:


Java 之 Servlet 基础入门的更多相关文章
- JAVA数组的基础入门>从零开始学java系列
目录 JAVA数组的基础入门 什么是数组,什么情况下使用数组 数组的创建方式 获取数组的数据 数组的内存模型 为什么数组查询修改快,而增删慢? 查询快的原因 增删慢的原因 数组的两种遍历方式以及区别 ...
- JAVA之Mybatis基础入门--框架搭建与简单查询
JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但 ...
- JAVA之Mybatis基础入门二 -- 新增、更新、删除
上一节说了Mybatis的框架搭建和简单查询,这次我们来说一说用Mybatis进行基本的增删改操作: 一. 插入一条数据 1.首先编写USER.XML(表的xml)使用insert元素,元素写在map ...
- 🤩全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👻002 # 第二单元 常量,变量,数据类型 #
一.本单元知识点概述 二.本单元目标 (Ⅰ)重点知识目标 1.定义出各种数据类型的变量2.理解自动类型提升3.理解强制类型转换 (Ⅱ)能力目标 1.能够定义出所有类型的常量 2.理解Java中的基本数 ...
- ☠全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👾#010 #第十单元 Scanner类、Random类 #
一.本单元知识点概述 (Ⅰ)知识点概述 二.本单元教学目标 (Ⅰ)重点知识目标 1.API的使用2.Scanner类的使用步骤3.Random类的使用 (Ⅱ)能力目标 1.掌握API的使用步骤2.使用 ...
- 全套Java教程_Java基础入门教程,零基础小白自学Java必备教程 #011 # 第十一单元 String&ArrayList #
一.本单元知识点概述 (Ⅰ)知识点概述 二.本单元教学目标 (Ⅰ)重点知识目标 1.ArrayList集合的常用方法2.ArrayList存储数据和遍历数据3.String类的构造方法4.String ...
- 🧚♂️全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👨💻004 # 第四单元 流程控制语句上 #
一.本单元知识点概述 二.本单元目标 (Ⅰ)重点知识目标 1.if语句的格式及执行流程2.switch语句的格式及执行流程 (Ⅱ)能力目标 1.掌握if语句的格式及执行流程2.掌握switch语句的格 ...
- java网络爬虫基础学习(一)
刚开始接触java爬虫,在这里是搜索网上做一些理论知识的总结 主要参考文章:gitchat 的java 网络爬虫基础入门,好像要付费,也不贵,感觉内容对新手很友好. 一.爬虫介绍 网络爬虫是一个自动提 ...
- java之servlet入门操作教程一续
本节主要是在java之servlet入门操作教程一 的基础上使用myeclipse实现自动部署的功能 准备: java之servlet入门操作教程一 中完成myFirstServlet项目的创建: ...
随机推荐
- 基于 Mathematica 的机器人仿真环境(机械臂篇)[转]
完美的教程,没有之一,收藏学习. 目的 本文手把手教你在 Mathematica 软件中搭建机器人的仿真环境,具体包括以下内容(所使用的版本是 Mathematica 11.1,更早的版本可能缺少某些 ...
- Netty 读写检测机制(心跳)
一.创建服务端 1.MyServer 类 public class MyServer { public static void main(String[] args) throws Exception ...
- Selenium自动化对非输入框的日历或日期控件的处理
4.这个时候我们可以移除readonly的属性,问题就轻轻松松解决了,代码如下: String js = "document.getElementById('createTime').rem ...
- ESXi6.5上的Ubuntu虚机在远程SSH时宕机
情况是这样的, 有一个ESXi6.5上跑的Ubuntu虚机, 版本是18.04.1, 今天升级成18.04.2后, 就发现远程连接SSH不对劲, 在本地登录和操作都好好的, 只要远程SSH一连接, 服 ...
- Wise Force Deleter 强制删除文件工具
https://www.xitmi.com/3321.html Wise Force Deleter v1.49 中文绿色版 强制删除文件工具
- Freemarker语法收集
1. 取数组第一项 <#if subModelList?? && (subModelList?size > 0)> <#assign subFirst = su ...
- Laya的版本管理
参考: Laya项目发布详解 发布时,勾选开启版本管理 点击上图“是否开启版本管理”右边的+号. 可以选择加入版本管理,或者排除版本管理的文件夹. 比如我要排除bin/test这个文件夹下的文件,不使 ...
- 有相关性就有因果关系吗,教你玩转孟德尔随机化分析(mendelian randomization )
流行病学研究常见的分析就是相关性分析了. 相关性分析某种程度上可以为我们提供一些研究思路,比如缺乏元素A与某种癌症相关,那么我们可以通过补充元素A来减少患癌率.这个结论的大前提是缺乏元素A会导致这种癌 ...
- python web开发——django学习(二)orm介绍与model检查
原始是这样连接数据库的: 现在改用django orm (1)先在setting里配置app (2)在modle.py里建model class UserMessage(models.Model): ...
- (转)自动微分(Automatic Differentiation)简介——tensorflow核心原理
现代深度学习系统中(比如MXNet, TensorFlow等)都用到了一种技术——自动微分.在此之前,机器学习社区中很少发挥这个利器,一般都是用Backpropagation进行梯度求解,然后进行SG ...