iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >JavaWeb 入门:Hello Servlet
  • 871
分享到

JavaWeb 入门:Hello Servlet

2024-04-02 19:04:59 871人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录Servlet概述HelloServlet总结Servlet 概述 serlvet sun公司 开发动态WEB 的一门技术。 Servlet(Server Ap

Servlet 概述

  • serlvet sun公司 开发动态WEB 的一门技术。
  • Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
  • 广义的Servlet是指任何实现了这个Servlet接口的类,。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于Http协议的Web服务器。
  • sun公司在api 中提供了一个接口 如果我们想要开发一个servlet程序 我们只需要做到两点

1、写一个普通类实现servlet 这个接口

2、把写好的servlet 放进服务器。

sun公司给出了两个默认的实现类 HttpServlet 和 GenericServlet

Hello Servlet

工程结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KhBPeiJV-1620396757425)(C:\Users\ASUS\Desktop\javaweb_study\javaweb\web服务器讲解.assets\image-20210507221216543.png)]

1、创建一个Maven 项目 添加web框架(将web.xml 换成最新的4.0 后面有完整配置文件) 配置Tomcat

2、导入依赖


dependencies>
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
    </dependency>
  </dependencies>

3、编写一个Servlet程序 编写一个普通类实现HttpServlet接口


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.print("hello Servlet");
        System.out.println("");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

4、编写Servlet 的映射

为什么需要映射?我们是不是需要通过浏览器去访问,而浏览器需要连接web服务器,需要在web 服务器注册我们写的servlet,还需要给它一个浏览器能够访问的路径。


<?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_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>com.crush.servlet.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

测试:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dO79ndZl-1620396757428)(C:\Users\ASUS\Desktop\javaweb_study\javaweb\web服务器讲解.assets\image-20210507221205112.png)]

Servlet的运行过程

Servlet程序是由Web服务器调用的,Web服务器收到客户端的Servlet访问请求后:

  • ①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步;
  • ②装载并创建该Servlet的一个实例对象;
  • ③调用Servlet实例对象的init()方法;
  • ④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去;
  • ⑤Web应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。

img

5、Mapping 问题:

1、一个Servlet 可以指定一个映射路径


<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.crush.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

2、一个Servlet 可以指定多个映射路径


<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.crush.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello2</url-pattern>
</servlet-mapping>

3、一个Servlet 可以指定通用映射路径


<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.crush.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello.*</url-pattern>
</servlet-mapping>

4、默认请求路径


<servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>com.crush.servlet.HelloServletDays</servlet-class>
</servlet>    
<servlet-mapping>
    <servlet-name>helloServlet</servlet-name>
    <url-pattern>
public class ErrorServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.print("404");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

2、配置映射路径


<servlet>
    <servlet-name>error</servlet-name>
    <servlet-class>com.crush.servlet.ErrorServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>error</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

测试:访问不存在的路径 会直接到访问我们自己写的ErrorServlet 访问其他的具体的路径仍然不变

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PUm7RU9R-1620400096023)(C:\Users\ASUS\Desktop\JavaWeb_study\JavaWeb\5Servlet概述.assets\image-20210507230742029.png)]

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: JavaWeb 入门:Hello Servlet

本文链接: https://www.lsjlt.com/news/130648.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaWeb 入门:Hello Servlet
    目录Servlet概述HelloServlet总结Servlet 概述 serlvet sun公司 开发动态web 的一门技术。 Servlet(Server Ap...
    99+
    2022-11-12
  • JavaWeb 中Hello Servlet如何使用
    JavaWeb 中Hello Servlet如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Servlet 概述serlvet sun公司 开发动态web 的一门技术...
    99+
    2023-06-20
  • javaWeb使用servlet搭建服务器入门
    百度百科说法:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。通俗讲法:是运行在服务器端的一小段...
    99+
    2023-05-30
    javaweb servlet 服务器
  • JavaWeb中Servlet的深入讲解
    Servlet 1 Servlet 简介 Servlet就是Sun 公司开发动态web的一门技术 Sun在这些API中提供一个接口叫做:Servlet ,如果你向开发一个Serv...
    99+
    2022-11-12
  • JavaWeb中Servlet的深入理解
    1.servlet:定义: 接口 2.配置servlet: public class HelloServlet extends HttpServlet {} HttpServlet...
    99+
    2022-11-12
  • python入门到实践-Hello P
    安装什么的我直接略过,网上各种教程有的是,如果在安装中出了了什么问题,你解决不了的可以随时联系我。我接下来的操作就当作你已经安装完了Python3了! 安装好Python3之后我们通过命令行来输入:Python回车之后你会进入到一个操作界...
    99+
    2023-01-31
    入门 python
  • 【JavaWeb】HTML零基础入门
    ✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【JavaWeb】 ✈️✈️本篇内容:HTML基础语法详解,附带综合案例。 🚀🚀代码托管平台github:Ja...
    99+
    2023-10-18
    html java 前端
  • JavaWeb入门:HttpResponse和HttpRequest详解
    目录HttpResponse讲解HttpServletResponse概述:Response运行流程设置响应行设置响应头一个小demo实现刷新页面累加设置字符编码解决中文乱码问题重定...
    99+
    2022-11-12
  • JavaWeb入门:ServletContext详解和应用
    目录1、获取web程序启动时初始化参数2、实现多个Servlet对象共享数据测试:3、读取web应用下的资源4、请求转发总结当Servlet 容器启动的时候 会为每个web应用创建一...
    99+
    2022-11-12
  • Javaweb基础入门HTML之table与form
    目录前章知识HTML简介:本节用到的单词意思:table的相关用法form的相关用法输入元素文本域(TextFields)密码字段单选按钮(RadioButtons)提交按钮(Sub...
    99+
    2022-11-13
  • Servlet第一个项目的发布(入门)
    创建发布web项目 具体步骤: 1.在开发工具中创建一个dynamic web project helloword 2.在webContent中创建index.html文件 3.发...
    99+
    2022-11-12
  • Servlet从入门到精通(超级详细!)
    目录概述入门案例创建Servlet程序注解方式配置Servlet程序配置文件方式配置Servlet程序(提供web.xml)测试Servlet的继承结构Servlet的生命周期ini...
    99+
    2022-11-13
  • Javaweb基础入门requse原理与使用
    request对象是什么? Request对象的作用是与客户端交互,收集客户端的Form、Cookies、超链接,或者收集服务器端的环境变量。request对象是从客户端向服务器发出...
    99+
    2022-11-12
  • Django零基础入门之运行Django版的hello world
    目录1.项目目录及文件说明:2.项目与应用app的关系:3.使用django框架编写hello world!1.项目目录及文件说明: manage.py django中的一个命令行...
    99+
    2022-11-12
  • JavaWeb 入门篇:创建Web项目,Idea配置tomcat
    目录创建一个maven项目项目结构添加框架在pom.xml中添加如下依赖配置tomcat添加完如下图:解决导入包问题:启动测试:总结创建一个maven项目 项目结构 添加框架...
    99+
    2022-11-12
  • 【JavaWeb从入门到实战】MySQL筑基&初探SQL
    🔥一个人走得远了,就会忘记自己为了什么而出发,希望你可以不忘初心,不要随波逐流,一直走下去🎶 🦋 欢迎关注🖱点赞👍收...
    99+
    2023-09-03
    mysql sql 数据库 java
  • Python编程入门之Hello World的三种实现方式
    本文实例讲述了Python编程入门之Hello World的三种实现方式。分享给大家供大家参考,具体如下: 第一种方式: $python >>>print('hello world')...
    99+
    2022-06-04
    三种 入门 方式
  • Flutter入门之怎么写一个跨平台的Hello World
    本篇内容主要讲解“Flutter入门之怎么写一个跨平台的Hello World”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Flutter入门之怎么写一个跨平台...
    99+
    2022-10-19
  • 【JavaWeb从入门到实战】MySQL筑基&初探SQL
    🔥一个人走得远了,就会忘记自己为了什么而出发,希望你可以不忘初心,不要随波逐流,一直走下去🎶 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾...
    99+
    2023-08-17
    mysql sql 数据库 java
  • 整合Mybatis、Servlet、Mysql、Axios、Filter、Session写一个入门级项目:非常适合初接触JavaWeb的小白白来进阶
    文章目录 写在前言写作收获&目的目录结构 1 依赖配置1.1 创建一个Web项目1.2 Pom.xml 2 配置Mybatis2.1 Mybatis-config.xml2.2 UserMapper.xml2.3 UserM...
    99+
    2023-08-16
    mybatis servlet mysql 后端
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作