编写Servlet

Servlet本质上就是一个java类

Tomcat与Servlet的关系

Servlet运行在Tomcat中
在这里插入图片描述

Servlet与普通的Java程序的区别

  1. Servlet本质上就是一个Java类
  2. Servlet类必须实现接口javax.servlet.Servlet接口
  3. 运行在Web容器中,tomcat就是一个Web容器。
  4. 能够接收浏览器发送的请求,并且做出响应给浏览器。

使用Servlet2.5编写Servlet的步骤

  1. 写一个类继承于HttpServlet,HttpServlet是个抽象类它已经实现了Servlet接口。
  2. 重写doGet或doPost方法,分别处理表单的get或post请求。
    如果直接在浏览器输入地址访问,使用的是get方法。
  3. 编写web.xml配置文件,对Servlet进行配置,才能通过浏览器来访问。

Demo1Servlet.java

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;

//1. 编写一个类继承于HttpServlet, 我们写的Servlet必须实现Servlet接口
public class Demo1Servlet extends HttpServlet {

    //2. 重写doGet方法
    /**
     用来处理浏览器发送的get请求
     @param request 请求对象
     @param response 响应对象
     @throws ServletException
     @throws IOException
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置响应的类型和字符集
        response.setContentType("text/html;charset=utf-8");
        //得到打印流,向浏览器输出内容
        PrintWriter out = response.getWriter();
        out.print("<h1>Hello 第1个Servlet </h1>");
    }
}

编辑目录:web/WEB-INF/web.xml中配置servlet,设置访问地址为/demo1
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_3_1.xsd"
         version="3.1">

    <!--配置servlet-->
    <servlet>
        <!--servlet的名字-->
        <servlet-name>demo1</servlet-name>
        <!--servlet的类全名-->
        <servlet-class>com.test.servlet.Demo1Servlet</servlet-class>
    </servlet>

    <!--配置servlet的访问地址-->
    <servlet-mapping>
        <!--与上面的名字相同-->
        <servlet-name>demo1</servlet-name>
        <!--访问地址,以/开头 -->
        <url-pattern>/demo1</url-pattern>
    </servlet-mapping>
</web-app>

xml执行流程:
在这里插入图片描述

Servlet3.0的新特性

  1. 异步处理支持:在接收到请求之后,Servlet 线程可以将耗时的操作委派给另一个线程来完成,自己在不生成响应的情况下返回至容器。针对业务处理较耗时的情况,这将大大减少服务器资源的占用,并且提高并发处理速度。
  2. 新增的注解支持:用于简化 Servlet、过滤器(Filter)和监听器(Listener)的声明,这使得 web.xml 部署描述文件从该版本开始不再是必选的了。
  3. 可插性支持:开发者可以通过插件的方式很方便的扩充已有 Web 应用的功能,而不需要修改原有的应用。
  4. 简化了文件上传的功能:现在可以直接使用Servlet的API实现文件的上传,以前需要借助第三方上传组件。

使用Servlet3.0编写Servlet(使用注解的方式)

Demo2Servlet .java

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

//@WebServlet(name = "demo2",urlPatterns = "/demo2")
@WebServlet("/demo2")
public class Demo2Servlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 设置响应类型和字符集
        response.setContentType("text/html;charset=utf-8");
        // 获取打印流
        PrintWriter out = response.getWriter();
        out.println("<h1 style='color:orange'>使用Servlet 3.0</h1>");
    }
}
  • 7
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值