17.8Servlet入门

一、 什么是Servlet?

Java Servlet 是运行在 Web 服务器或应用服务器上的程序;他是浏览器(HTTP客户端)请求和HTTP服务器上资源(访问数据库)之间的中间层。

二、什么是Servlet的运行环境?

Servlet容器是Java Servlet程序的运行环境,比如,常用的tomcat,同时它也是web服务器;

三、什么是Servlet的生命周期?

Servlet的创建到销毁的过程称为Servlet的生命周期;具体分为三个阶段:

  • Servlet初期化 init()
  • Servlet处理请求 service()
  • Servlet销毁 destroy()

四、创建一个Servlet示例程序

HellowordServlet.java

//@WebServlet(urlPatterns = {"/helloworldServet"})
public class HellowordServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public HellowordServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**初始化方法
     * @see #init(ServletConfig)
     */
    public void init(ServletConfig config) throws ServletException {
        // TODO Auto-generated method stub
        System.out.println("Servlet初期化");
    }

    /**
     * servlet销毁方法
     * @see #destroy()
     */
    public void destroy() {
        // TODO Auto-generated method stub
        System.out.println("Servlet销毁");
    }

    /**
     * get请求
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //2.重新定义doGet
        response.setContentType("text/html;charset=UTF-8");   //3.设置响应类型
        PrintWriter out = response.getWriter();   //4.取得响应输出对象
        String name = request.getParameter("name");   //5.取得请求参数
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
        out.println("<HTML>");
        out.println("<HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println("<BODY>");
        out.println("<h1>Hello!" + name + "</h1>");   //6.数据输出到前端
        out.print("This is ");
        out.print(this.getClass());
        out.println(", using the GET method");
        out.println("  </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }


    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

web.xml配置

 <servlet>
        <servlet-name>helloworldServet</servlet-name>
        <servlet-class>com.critc.servlet.HellowordServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>helloworldServet</servlet-name>
        <url-pattern>/helloworldServet</url-pattern>
    </servlet-mapping>

这里面配置一个servlet,指定名称和对应的class,再配置servlet-mapping,指定url映射的类型,这里设置为/helloworldServet,意思就是以http://localhost:8080/helloworldServet开头的请求都会指向这个servlet进行处理。

配置servlet有两种方式,在web3.0之前,一般都是通过配置web.xml来进行配置,就是上面说的这种,在web3.0之后,可以采用注解的方式,比如

@WebServlet(urlPatterns = {"/helloworldServet"})

这个注解写在HelloworldServet.java的定义上。这有一个限制,就是web.xml的最上方定义得是3.0级以上比如:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         id="WebApp_ID"
         version="3.1">

这里面的版本version得是3.0以上

这个工程部署,启动,在浏览器地址栏输入:http://localhost:8080/helloworldServet?name=java
可以看到如下界面:

servlet启动

servlet的get请求,通过获取name参数,并输出字符串的值。

这里只是最简单的介绍了一下servlet的配置和使用,servlet非常强大,目前最流行的SpringMVC的基础也是servlet,所以有必要深入学习一下servlet的主要使用。

源码下载

本例子详细源码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,010评论 6 342
  • 0 系列目录# WEB请求处理 WEB请求处理一:浏览器请求发起处理 WEB请求处理二:Nginx请求反向代理 本...
    七寸知架构阅读 14,099评论 22 190
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,877评论 18 399
  • 转自陈明乾的博客,可能有一定更新。 转原文声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、...
    C86guli阅读 4,754评论 6 72