Java Web——Servlet初探

本文介绍Servlet的概念及其在浏览器和服务器间交互中的作用,并详细讲解使用Java Servlet进行Web开发的具体步骤,包括Maven项目创建、Servlet接口实现类开发及配置等。

文章目录:

1.开篇

2.Servlet接口实现类的开发步骤

2.1 使用Maven创建web项目 

2.2 在项目的结构中新建一个java文件夹

2.3 在controller包下,创建一个Java类,继承HttpServlet类 

2.4 在WEB-INF目录下的web.xml中注册Servlet接口实现类的信息

2.5 启动Tomcat服务器

3.使用IDEA中的模板创建Servlet接口的实现类


1.开篇

上一篇文章中,讲了将Tomcat集成到IDEA中,那么这篇文章,来谈谈Servlet吧。

所谓Servlet就是完成浏览器和服务器之间的交互,浏览器发出请求,服务器做出响应,二者既然能进行信息的交流,那么他们就一定有一种规范,那这个规范就是HTTP协议。有了这种协议,不管是什么浏览器,所发出来的信息,服务器都认识。 

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

Java Servlet 通常情况下与使用 CGI(Common Gateway Interface,公共网关接口)实现的程序可以达到异曲同工的效果。但是相比于 CGI,Servlet 有以下几点优势:

  • 性能明显更好。
  • Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。
  • Servlet 是独立于平台的,因为它们是用 Java 编写的。
  • 服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。
  • Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。

2.Servlet接口实现类的开发步骤

2.1 使用Maven创建web项目 

2.2 在项目的结构中新建一个java文件夹

将这个java文件夹的类型修改为 Resources Root,同时建一下对应的包。(com.songzihao.controller)

Servlet规范认为,只有作为Servlet接口的实现类才可以被称为动态资源文件,只有动态资源文件才有资格被Tomcat服务器进行调用。

Servlet接口实现类的开发步骤:

  1. 创建一个Java类,继承HttpServlet。
  2. 重写其中的 doGet、doPost方法。
  3. 在 web.xml 中注册 Servlet 接口实现类的相关信息。

2.3 在controller包下,创建一个Java类,继承HttpServlet类 

这里重写的是service方法。在后面那个例子中重写了 doGet、doPost方法。

package com.songzihao.controller;


import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import java.io.IOException;

/**
 *  这里是直接继承了HttpServlet这个类,你也可以写成下面这样
 *  MyServlet implements Servlet
 */
public class MyServlet extends HttpServlet {

    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        res.getWriter().write("This is my first servlet!!!");
        System.out.println("MyServlet类成功处理了用户请求。。。。。");
    }

}

2.4 在WEB-INF目录下的web.xml中注册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接口实现类的全限定名称 -->
    <servlet>
        <servlet-name>myServlet</servlet-name>
        <servlet-class>com.songzihao.controller.MyServlet</servlet-class>
    </servlet>


    <!-- 为Servlet接口实现类指定一个简短的对外别名 -->
    <servlet-mapping>
        <servlet-name>myServlet</servlet-name>
        <url-pattern>/myServlet</url-pattern>
    </servlet-mapping>

    <!--
        tomcat启动时,自动读取网站中的web.xml
        分别使用两个map对象存储Servlet实现类中的注册信息
        Map servletMap=new HashMap();
        servletMap.put("myServlet","com.songzihao.controller.MyServlet");
        Map servletMapping=new HashMap();
        servletMapping.put("/myServlet","myServlet");

        此时浏览器发送如下请求:http://localhost:8080/szh01_first/myServlet

        tomcat通过 servletMapping 了解 /myServlet 对应的信息
        tomcat通过 servletMap 转发 myServlet
    -->

</web-app>

2.5 启动Tomcat服务器

在浏览器中输入正确的url:http 协议、localhost:8080 本地ip和端口号、szh01_first web项目名、/myServlet是我们注册的Servlet接口实现类的信息。

回到IDEA中,可以看到Tomcat服务器运行出了相应的结果。


3.使用IDEA中的模板创建Servlet接口的实现类

上面两步完成之后,可以看到controller包、web.xml文件中,都生成了IDEA的模板代码。

package com.songzihao.controller;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class YourServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("YourServlet针对GET请求方式进行处理");
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("YourServlet针对POST请求方式进行处理");
    }
}
<?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>yourServlet</servlet-name>
        <servlet-class>com.songzihao.controller.YourServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>yourServlet</servlet-name>
        <url-pattern>/your</url-pattern>
    </servlet-mapping>

</web-app>

运行Tomcat服务器,在浏览器中输入:localhost:8080/szh01_first/your

可以看到如下的结果:👇👇👇 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贝尔摩德苦艾酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值