一、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 基础入门的更多相关文章

  1. JAVA数组的基础入门>从零开始学java系列

    目录 JAVA数组的基础入门 什么是数组,什么情况下使用数组 数组的创建方式 获取数组的数据 数组的内存模型 为什么数组查询修改快,而增删慢? 查询快的原因 增删慢的原因 数组的两种遍历方式以及区别 ...

  2. JAVA之Mybatis基础入门--框架搭建与简单查询

    JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但 ...

  3. JAVA之Mybatis基础入门二 -- 新增、更新、删除

    上一节说了Mybatis的框架搭建和简单查询,这次我们来说一说用Mybatis进行基本的增删改操作: 一. 插入一条数据 1.首先编写USER.XML(表的xml)使用insert元素,元素写在map ...

  4. 🤩全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👻002 # 第二单元 常量,变量,数据类型 #

    一.本单元知识点概述 二.本单元目标 (Ⅰ)重点知识目标 1.定义出各种数据类型的变量2.理解自动类型提升3.理解强制类型转换 (Ⅱ)能力目标 1.能够定义出所有类型的常量 2.理解Java中的基本数 ...

  5. ☠全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👾#010 #第十单元 Scanner类、Random类 #

    一.本单元知识点概述 (Ⅰ)知识点概述 二.本单元教学目标 (Ⅰ)重点知识目标 1.API的使用2.Scanner类的使用步骤3.Random类的使用 (Ⅱ)能力目标 1.掌握API的使用步骤2.使用 ...

  6. 全套Java教程_Java基础入门教程,零基础小白自学Java必备教程 #011 # 第十一单元 String&ArrayList #

    一.本单元知识点概述 (Ⅰ)知识点概述 二.本单元教学目标 (Ⅰ)重点知识目标 1.ArrayList集合的常用方法2.ArrayList存储数据和遍历数据3.String类的构造方法4.String ...

  7. 🧚‍♂️全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👨‍💻004 # 第四单元 流程控制语句上 #

    一.本单元知识点概述 二.本单元目标 (Ⅰ)重点知识目标 1.if语句的格式及执行流程2.switch语句的格式及执行流程 (Ⅱ)能力目标 1.掌握if语句的格式及执行流程2.掌握switch语句的格 ...

  8. java网络爬虫基础学习(一)

    刚开始接触java爬虫,在这里是搜索网上做一些理论知识的总结 主要参考文章:gitchat 的java 网络爬虫基础入门,好像要付费,也不贵,感觉内容对新手很友好. 一.爬虫介绍 网络爬虫是一个自动提 ...

  9. java之servlet入门操作教程一续

    本节主要是在java之servlet入门操作教程一  的基础上使用myeclipse实现自动部署的功能 准备: java之servlet入门操作教程一 中完成myFirstServlet项目的创建: ...

随机推荐

  1. service和Dao层有什么关系

    Dao层:主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类 ...

  2. Oralce 如何将查询结果中的0转成空的

    我们遇到过大多的情况的需求是查询结果中空转为0,这个可以通过oracle的NVL()函数就可以搞定. 之前做报表客户有个需求,查询出结果为0 要转成空的,不显示0 那么在oracle有没有现成函数能搞 ...

  3. 用Python实现的Internet电话软件(P2P-SIP)<开源>

    本博客为本人学习笔记,代码出自GitHub:https://github.com/theintencity/p2p-sip 由于GitHub原著为英文,且相当的啰嗦,本文为翻译内容并去除其啰嗦的部分 ...

  4. java常用JVM参数介绍

    采集服务JVM参数说明 -Xmx4g -Xms4g -Xmn512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=4g -Xss256k Xms 是指设定程 ...

  5. Swift编码总结3

    1.编码转换: dataString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? "" re ...

  6. [LeetCode] 348. Design Tic-Tac-Toe 设计井字棋游戏

    Design a Tic-tac-toe game that is played between two players on a n x n grid. You may assume the fol ...

  7. ucos III中任务之间的数据通信和任务划分

    1. 如果将关系密切(比如两个任务之间需要经常收发数据)的若干功能分别用不同的任务来实现,则需要进行大量的任务之间数据通信和同步通信,这系统来说是一个很大的负担.因此应该将关系密切的若干功能组合成一个 ...

  8. ASP.NET Core Restful Web API 相关资源索引

    GraphQL 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上) 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(下) [视频] 使用ASP.NET C ...

  9. postgresql数据库中多个Schemas互相访问

    背景: 用postgresql创建了一个数据库userDataBase,在这个数据库中创建了Schemas userA,Schemas userB,Schemas userC三个Schemas之后,给 ...

  10. html5获取自己定位的方法

    html5获取自己定位的方法直接用高德地图api 不要用百度地图api 不准确 <pre><!doctype html><html><head> < ...