第一个Servlet,Hello Servlet

导读:本篇文章讲解 第一个Servlet,Hello Servlet,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

6:Servlet

6.1: Servlet简介

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

Servlet是javaWeb程序的三大组件之一:Servlet程序,Filter过滤器,Linstener监听器

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

6.2:HelloServlet

1:构建一个Maven项目:删除里面的src 目录,学习练习就在这个里面建造Moudel, 这个空的工程就是父工程;
2:关于Maven父工程的理解:
夫工程会有:

 <modules>
        <module>servlet-01</module>
        <module>servlet-02</module>
        <module>response</module>
    </modules>

这里面就是你编写子工程目录,父工程管理的子工程。

3:子项目会有:继承父工程

 <parent>
        <artifactId>javaweb-02-study</artifactId>
        <groupId>com.kuang</groupId>
        <version>1.0-SNAPSHOT</version>
 </parent>

父项目中的子项目就可以使用了:

6.3:Servlet原理
Servlet是由Web服务器调用,web服务器在收到请求之后,会:
在这里插入图片描述

6.4:实现一个HelloServlet
1:编写一个类,实现Servlet接口;

  • 重写方法

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("进入了DoGet方法");
        PrintWriter writer = resp.getWriter();
        writer.print("Hello,Servlet");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}
  • 把开发好的Java类部署到web服务器中。
    在web.xml中配置Servlet
 <!--注册Servlet-->
  <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.kuang.servlet.HelloServlet</servlet-class>
  </servlet>

  <!--Servlet的请求方式-->
  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
  • 配置TomCat
    在这里插入图片描述
    测试运行
    在这里插入图片描述
    这说明你的Servlet启动成功,TomCat成功

在这里插入图片描述

在注册Servler时,请求路径是hello,输入hello后,就会响应给你自己写的实体类的对象信息!

6.5:Mapping问题
1:一个Servlet可以指定一个映射路径;

 <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.kuang.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.kuang.servlet.HelloServlet</servlet-class>
  </servlet>
  
<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/hello1</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/hello2</url-pattern>
</servlet-mapping>

在这里插入图片描述
这里请求hello1和hello2, 都可以被映射到,,从而实现一个Servlet可以指定多个映射路径;

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

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

在这里插入图片描述
这里就随便编写了, 表示通配符*

4:一个Servlet可以自定义请求映射路径;

<!--可以自定义后缀实现请求映射-->
  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>*.hanshuo</url-pattern>
  </servlet-mapping>

5:默认请求路径(直接进入的是Servlet,尽量不要这么写)

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

6:优先级的问题

  • 指定了固有的映射路径优先级最高,如果找不到就会走默认的处理请求:
  • 当我们的配置有明确的表示应该是由谁映射,或者是谁去访问的话,就是谁去访问。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/71924.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!