简单记录一下我从头写一个 Servlet 的过程。

我安装的是 Tomcat 7 版本,在 Ubuntu 18.04 上运行,IDE 为 Intellij IDEA。

首先创建一个 Java Web 项目,进入你的 IDEA,然后点击 Create New Project。如下图所示:

选择完毕之后点击下一步。

然后给你的项目取个名字,第一个就叫 HelloWorld 好了。

第三步是新建一个 Java 类文件,在你的 src 路径下,新建包和 Java 类文件,然后在类文件中开始写一个 Servlet。

写一个最简单的 Servlet,只实现一个 Get 请求,这就需要我们的 Servlet 类继承 HttpServlet 父类,然后重写 doGet 方法。

具体代码如下:

package cn.zhongdeming;

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;
import java.io.Writer; public class HelloWorld extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// super.doGet(req, resp);
Writer writer = resp.getWriter();
((PrintWriter) writer).print("<h1>Hello World!</h1><p>This is from a Java Servlet!</p>");
}
}

  

在 doGet 方法中,我们通过 resp 对象的 getWriter 方法,获取到了一个 PrintWriter 对象。然后我们可以通过这个对象向客户端浏览器做出回应。

我们传回去了一个字符串,是一个标题和一段文字。

写好了 Servlet 还不够,还要配置 Servlet,让 Tomcat 容器能够知道我们的 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">
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>cn.zhongdeming.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>

需要我们写的代码是 servlet 节点和 servlet-mapping 节点以及它们所有的子节点。分别交代了我们的 HelloWorld Servlet 的位置,以及其对应的前端路由。

接下来我们就可以启动我们的 Tomcat 查看效果了。

点击右上角的运行按钮,启动 Tomcat:

然后在我们的浏览器中输入 localhost:8080/HelloWorld,即可看到效果如下:

注意事项

  • 如果第一次新建 Java Web 项目,还需要配置 IDEA Intellij。具体参考:Intellij 新建 Java Web 项目
  • IDEA 有可能无法找到 javax.servlet,需要手动导入 Tomcat 安装目录下的 lib 文件夹中的 servlet-api.jar 包。

我的第一个 Servlet的更多相关文章

  1. Servlet基础-手工编写第一个servlet

    [手工编写第一个servlet] [步骤] 1.继承HttpServlet 2.重写doGet()或者doPost()方法  //这个doGet或者doPost方法取决用户提交的方式 3.在web.x ...

  2. servlet的一个web容器中有且只有一个servlet实例或有多个实例的理解1

    servlet的一个web容器中有且只有一个servlet实例或有多个实例的理解 (2013-06-19 19:30:40) 转载▼     servlet的非线程安全,action的线程安全 对提交 ...

  3. 第一个servlet小例子

    1.sendForward.jsp <%@ page language="java" contentType="text/html; charset=UTF-8&q ...

  4. 动手学servlet(一) 第一个servlet程序

    1.文件>新建>动态WEB项目 "javaeedemo">在Java Resource的src下新建包“servletdemo”,包下新建一个类“MyServet ...

  5. 【WEB小工具】BaseServlet—一个Servlet处理多个请求

    package cn.itcast.test.web.servlet; import java.io.IOException; import java.io.PrintWriter; import j ...

  6. Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期

    servlet的404错误困扰了两天,各种方法都试过了,翻书逛论坛终于把问题解决了,写此博客来纪念自己的第一个servlet经历. 下面我会将自己的编写第一个servlet的详细过程提供给初学者,大神 ...

  7. 第一个Servlet

    一,第一个Servlet的编写过程 1,建立JavaWeb应用目录 HelloServlet--web应用名称 classes:Servlet就放在此处 lib web.xml 2,classes目录 ...

  8. 【转】MyEclipse第一个Servlet程序

    转自:http://blog.csdn.net/wangdingqiaoit/article/details/7674367 前言 本文旨在帮助学习java web开发的人员,熟悉环境,在Win7系统 ...

  9. 实现一个servlet的helloworld小程序(不适用Eclipse)

    实现一个servlet的helloworld小程序(不适用Eclipse) 1. 在tomcat中的webapps下建一个应用程序FirstServlet(C:\tomcat\webapps\Firs ...

  10. 配置一个servlet程序

    <!-- 配置一个servlet程序 --> <servlet> <!-- servlet的内部名称 ,可以自定义--> <servlet-name>H ...

随机推荐

  1. 玩转树莓派《三》——Scratch

    今天大姨妈折磨了一整个白天,稍微好点,现在打开实验楼,看到有个朋友回答了关于ubuntu上面操作SQL 的时候到处数据到txt文件,被批评没有思考问题,或许吧,虽然那个权限我现在想起确实是可读可写的, ...

  2. C# 相对路径指定详解

    1. 根目录 .\\ 或者直接给出文件名称,是找根目录的路径. 如:path = "gs.mdb" 与 path = ".\\gs.mdb"是一个意思. 2. ...

  3. 集群搭建之Spark配置要点解析

    注意点: 安装Spark前先要配置好Scala运行环境. Spark和Scala需要在各个机器上配置. 环境变量配置 在~/.bashrc中添加如下的配置信息. #scala conf export ...

  4. vi 编辑器使用中常见的命令

    原创作品,转载请在文章头部(显眼位置)注明出处:https://www.cnblogs.com/sunshine5683/p/10014724.html 要在linux学习的路上越走越远,总结是必不可 ...

  5. 进度监视器--ProgressMonitorInputStream

    进度监视器--ProgressMonitorInputStream ProgressMonitorInputStream 可以创建一个进度监视器,以监视读取输入流的进度.如果需要一段时间,将会弹出 P ...

  6. HDU 2955(01背包)

    http://acm.hdu.edu.cn/showproblem.php?pid=2955 这道题求不被抓时的最大金钱.金额是整数,概率是小数.因为数组小标不能是小数,所以我们可以以钱作为weigh ...

  7. K:hash的应用场景

    本博文主要用于讲解Hash的应用场景 Hash主要应用于数据结构中和密码学中. 用于数据结构时,主要是为了提高查询的效率,这就对速度比较重视,对抗碰撞不太看中,只要保证hash均匀分布就可以. 在密码 ...

  8. MVC 中导出Execl 对 科学计数 的转化

    相信大家在使用MVC 的做execl 数据导出的时候,遇到过 身份证号码 银行卡号 交易号 等一大串数字的时候,在导出execl 的时候就会出现 科学计数的输入:下面来说一下解决方案: 第一种:在MV ...

  9. Tomcat的下载安装及使用

    macOS Sierra Version 10.13.2 环境下Tomcat的下载与安装以及InterlliJ IDEA 2017.2 环境下配置Tomcat 与创建Web项目 一.Tomcat的下载 ...

  10. redux、immutablejs和mobx性能对比(三)

    四.我的结论 通过第三部分的数据数据分析,我觉得我们可以得到以下结论: 无论是在开发环境还是测试环下页面的首次加载速度结果都是:redux>immutablejs>mobx,但是他们之间的 ...