Day39-Servlet

Day39-Servlet

解决遇到的问题

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

在这里插入图片描述

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

<?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">
</web-app>

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">
    <!--web.xml中是配置我们web的核心应用-->
    <!--注册servlet-->
    <servlet>
        <servlet-name>helloxiaozhao</servlet-name>
        <servlet-class>com.xiaozhao.HelloXiaoZhao</servlet-class>
    </servlet>
    <!--一个Servlet对应一个mapping-->
    <servlet-mapping>
        <servlet-name>helloxiaozhao</servlet-name>
        <!--请求路径-->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>
  • 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("<html>");
        out.println("<head>");
        out.println("<title>老婆,你好!</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Hello XiaoZhao!</h1>");
        out.println("</body>");
        out.println("</html>");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}
  • 运行(通过请求路径)

在这里插入图片描述

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>servlet01</module>
  </modules>

子项目中会多一个parent

    <parent>
        <artifactId>javaweb-02-maven</artifactId>
        <groupId>com.xiaozhao02</groupId>
        <version>Unknown</version>
    </parent>

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

son extends parent
  1. Maven环境优化

将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">
</web-app>

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

在这里插入图片描述

  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. 编写Servlet的映射

为什么需要映射:

我们写的是java程序,但是通过服务器访问,而浏览器需要连接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"
         metadata-complete="true">
  <!--注册Servlet-->
  <servlet>
    <servlet-name>helloxiaozhao</servlet-name>
    <servlet-class>com.xz.servlet.HelloServlet</servlet-class>
  </servlet>
  <!--Servlet的请求路径-->
  <servlet-mapping>
    <servlet-name>helloxiaozhao</servlet-name>
    <url-pattern>/helloxiaozhao</url-pattern>
  </servlet-mapping>
</web-app>
  1. 配置Tomcat
  2. 启动测试

在这里插入图片描述

控制台输出

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值