• Day39-Servlet


    Day39-Servlet

    解决遇到的问题

    1. maven默认web项目中的web.xml版本问题

    在这里插入图片描述

    替换web.xml为webapp4.0版本和tomcat一致

    
    <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">
    web-app>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    Maven仓库的使用

    [Maven仓库地址](Maven Repository: Search/Browse/Explore (mvnrepository.com))

    1. 搜索并且找到自己想要的

    在这里插入图片描述

    1. 选择需要的版本,尽量选择人多使用的

    在这里插入图片描述

    1. 下载或者复制

    在这里插入图片描述

    1. 插入到pom.xml中

    在这里插入图片描述

    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_4_0.xsd"
             version="4.0"
             metadata-complete="true">
        
        
        <servlet>
            <servlet-name>helloxiaozhaoservlet-name>
            <servlet-class>com.xiaozhao.HelloXiaoZhaoservlet-class>
        servlet>
        
        <servlet-mapping>
            <servlet-name>helloxiaozhaoservlet-name>
            
            <url-pattern>/hellourl-pattern>
        servlet-mapping>
    web-app>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • servlet类
    package com.xiaozhao;
    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;
    /**
     * @author 小龚
     * @create 2022-08-26 17:25
     */
    public class HelloXiaoZhao extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //响应类型:html
            resp.setContentType("text/html");
            //设置字符类型
            resp.setCharacterEncoding("utf-8");
            //获取响应的输出流
            PrintWriter out = resp.getWriter();
            out.println("");
            out.println("");
            out.println("老婆,你好!");
            out.println("");
            out.println("");
            out.println("

    Hello XiaoZhao!

    "
    ); out.println(""); out.println(""); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); } }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 运行(通过请求路径)

    在这里插入图片描述

    Servlet

    Servlet简介

    Servlet类在Sun公司有两个默认的实现类:HttpServlet,

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

    把实现Servlet接口的java程序叫做Servlet

    HelloServelt

    1. 构建一个普通的Maven项目,删掉里面的src目录,以后我们的学习就在这个项目里面建立Moudle;这个空的工程就是Maven主工程

    在这里插入图片描述

    1. 在pom.xml中导入需要的包;

    导入失败需要手动导入

    在这里插入图片描述

    找到Maven仓库里的文件夹

    在这里插入图片描述

    1. 新建Moudle

    在这里插入图片描述

    1. 关于Maven父子工程的理解

    父项目中会多一个moudle

      <modules>
        <module>servlet01module>
      modules>
    
    • 1
    • 2
    • 3

    子项目中会多一个parent

        <parent>
            <artifactId>javaweb-02-mavenartifactId>
            <groupId>com.xiaozhao02groupId>
            <version>Unknownversion>
        parent>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    父项目中的jar包子项目可以使用

    son extends parent
    
    • 1
    1. Maven环境优化

    将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">
    web-app>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    添加源代码目录和资源目录

    在这里插入图片描述

    1. 编写一个Servlet程序
    package com.xz.servlet;
    
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    /**
     * @author 小龚
     * @create 2022-08-27 1:35
     */
    public class HelloServlet extends HttpServlet {
        //由于get或者post只是请求实现不同的方法,可以相互调用,业务逻辑都一样
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
            //ServletOutputStream ot = resp.getOutputStream();
            PrintWriter writer = resp.getWriter();//响应流
            resp.setCharacterEncoding("utf-8");
            writer.print("你好小赵!");
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            super.doPost(req, resp);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    1. 编写Servlet的映射

    为什么需要映射:

    我们写的是java程序,但是通过服务器访问,而浏览器需要连接web服务器,所以我们需要在web服务器中注册我们写的Servlet,还需要给他一个浏览器访问的路径。

    
    <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>helloxiaozhaoservlet-name>
        <servlet-class>com.xz.servlet.HelloServletservlet-class>
      servlet>
      
      <servlet-mapping>
        <servlet-name>helloxiaozhaoservlet-name>
        <url-pattern>/helloxiaozhaourl-pattern>
      servlet-mapping>
    web-app>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    1. 配置Tomcat
    2. 启动测试

    在这里插入图片描述

    控制台输出

    在这里插入图片描述

  • 相关阅读:
    离散对数问题(DLP) && Diffie-Hellman问题(DHP)
    【微服务技术】微服务技术栈/各模块介绍
    【亲测有效】hadoop hive1,hive2 索引加速查询 hive sql优化 大幅优化查询速度 索引建立
    智能台灯语音控制丨解放双手
    剑指offer(C++)-JZ38:字符串的排列(算法-搜索算法)
    【数据结构】二分搜索树
    微服务架构
    websocket逆向【python实现http/https拦截】
    postCss基本介绍
    ADC采集到的数值和电压值、频率有什么联系?
  • 原文地址:https://blog.csdn.net/GHY0911/article/details/126553031