详解 Servlet -- 在 IDEA 发布一个 HelloServlet(代码详细说明)

文章目录

  • 一. Servlet 简介
  • 二. HelloServlet (IDEA)[ 重要!理解!]
    • 2.1 新建一个 Maven 工程
    • 2.2 定义 HelloServlet 类和 web.xml 配置文件
    • 2.3 在 IDEA 配置 Tomcat 服务器
    • 2.4 发布网页(HelloServlet)
  • 三. Servlet 原理
  • 四. Mapping 问题
    • 4.1 一个Servlet可以指定一个映射路径
    • 4.2 一个Servlet可以指定多个映射路径
    • 4.3 一个Servlet可以指定通用映射路径
    • 4.4 默认请求路径
    • 4.5 指定一些后缀或者前缀等等….
    • 4.6 优先级问题

一. Servlet 简介

  • Servlet就是sun公司开发动态web的一门技术
  • Sun在这些API中提供一个接口叫做:Servlet,如果你想开发一个Servlet程序,只需要完成两个小步骤:
    • 编写一个类,实现Servlet接口
    • 把开发好的Java类部署到web服务器中。

把实现了Servlet接口的Java程序叫做,Servlet

二. HelloServlet (IDEA)[ 重要!理解!]

2.1 新建一个 Maven 工程

  • 选择 archetype-webapp
    详解 Servlet -- 在 IDEA 发布一个 HelloServlet(代码详细说明)_第1张图片

  • 点击 next
    详解 Servlet -- 在 IDEA 发布一个 HelloServlet(代码详细说明)_第2张图片

  • 选取自己的 Maven 环境
    详解 Servlet -- 在 IDEA 发布一个 HelloServlet(代码详细说明)_第3张图片

2.2 定义 HelloServlet 类和 web.xml 配置文件

  • HelloServlet
package com.servlet;
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 {
//        super.doGet(req, resp);
        System.out.println("进入doGet方法");
        //ServletOutputStream outputStream = resp.getOutputStream();
        PrintWriter writer = resp.getWriter(); //响应流
        writer.print("Hello,Serlvet");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}
  • web.xml

<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"
         metadata-complete="true">

    
    <servlet>
        <servlet-name>helloservlet-name>
        <servlet-class>com.servlet.HelloServletservlet-class>
    servlet>
    
    
    <servlet-mapping>
        <servlet-name>helloservlet-name>
        <url-pattern>/hellourl-pattern>
    servlet-mapping>

web-app>

2.3 在 IDEA 配置 Tomcat 服务器

详细博客教程:IDEA 配置 Tomcat 服务器

  • 点击 Edit Configurations
    详解 Servlet -- 在 IDEA 发布一个 HelloServlet(代码详细说明)_第4张图片

  • 配置本机 Tomcat 服务器环境
    详解 Servlet -- 在 IDEA 发布一个 HelloServlet(代码详细说明)_第5张图片
    详解 Servlet -- 在 IDEA 发布一个 HelloServlet(代码详细说明)_第6张图片

  • 运行 Tomcat,查看结果

2.4 发布网页(HelloServlet)

  • 初始界面-- Hello World!
    详解 Servlet -- 在 IDEA 发布一个 HelloServlet(代码详细说明)_第7张图片

  • HelloServlet 界面-- Hello Servlet!
    详解 Servlet -- 在 IDEA 发布一个 HelloServlet(代码详细说明)_第8张图片

三. Servlet 原理

  • Servlet是由Web服务器调用,web服务器在收到浏览器请求之后,会做出响应
    详解 Servlet -- 在 IDEA 发布一个 HelloServlet(代码详细说明)_第9张图片

四. Mapping 问题

4.1 一个Servlet可以指定一个映射路径

    <servlet-mapping>
        <servlet-name>helloservlet-name>
        <url-pattern>/hellourl-pattern>
    servlet-mapping>

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

   <servlet-mapping>
        <servlet-name>helloservlet-name>
        <url-pattern>/hellourl-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>helloservlet-name>
        <url-pattern>/hello2url-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>helloservlet-name>
        <url-pattern>/hello3url-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>helloservlet-name>
        <url-pattern>/hello4url-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>helloservlet-name>
        <url-pattern>/hello5url-pattern>
    servlet-mapping>

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

    <servlet-mapping>
        <servlet-name>helloservlet-name>
        <url-pattern>/hello/*url-pattern>
    servlet-mapping>

4.4 默认请求路径

    
    <servlet-mapping>
        <servlet-name>helloservlet-name>
        <url-pattern>/*url-pattern>
    servlet-mapping>

4.5 指定一些后缀或者前缀等等….


<servlet-mapping>
    <servlet-name>helloservlet-name>
    <url-pattern>*.qinjiangurl-pattern>
servlet-mapping>

4.6 优先级问题

  • 指定了固有的映射路径优先级最高,如果找不到就会走默认的处理请求;

你可能感兴趣的:(Java,tomcat,servlet,javaweb)