以下内容引用自http://wiki.jikexueyuan.com/project/servlet/first-example.html

Servlets是Java类,服务于HTTP请求并实现了javax.servlet.Servlet接口。Web应用程序开发人员通常编写扩展javax.servlet.http.HttpServlet的Servlets,它是一个实现了Servlet接口的抽象类并且是为处理HTTP请求专门设计的。

一、Hello World的示例代码

下面是Servlet编写Hello World的示例源代码:

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
// Extend HttpServlet class
public class HelloWorld extends HttpServlet {
private String message;
public void init() throws ServletException
{
// Do required initialization
message = "Hello World";
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
// Set response content type
response.setContentType("text/html");
// Actual logic goes here.
PrintWriter out = response.getWriter();
out.println("<h1>" + message + "</h1>");
}
public void destroy()
{
// do nothing.
}
}

二、编译Servlet

把上述代码放入HelloWorld.java文件中,并把这个文件放在C:\ServletDevel(Windows 操作系统中)或/usr/ServletDevel(UNIX 操作系统中)中,然后需要将这些目录添加到CLASSPATH中。

假设环境已经正确地设置,进入ServletDevel目录,并编译HelloWorld.java,如下所示:

$ javac HelloWorld.java

如果Servlet依赖于任何其他库,必须还要在CLASSPATH中包含那些JAR文件。只包含了servlet-api.jar文件,因为在Hello World程序中没有使用任何其他库。

该命令行使用了来自Sun Microsystems Java软件开发工具包(JDK)的内置的javac编译器。为使该命令正常工作,必须包含在PATH环境变量中使用的Java SDK的位置。

如果一切顺利,上述编译会在相同的目录中产生HelloWorld.class文件。

注意:POM和Eclipse项目忽略这一步。

三、Servlet部署

默认情况下,Servlet应用程序是位于路径/webapps/ROOT中的,且类文件放在/webapps/ROOT/WEB-INF/classes中。

如果有一个完全合格的com.myorg.MyServlet的类名称,那么这个servlet类必须被放置在WEB-INF/classes/com/myorg/MyServlet.class中。

现在,把HelloWorld.class复制到/webapps/ROOT/WEB-INF/classes中,并在位于/webapps/ROOT/WEB-INF/的web.xml文件中创建以下条目:

注意:POM和Eclipse项目忽略上述做法,直入web.xml配置即可。

<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>

上面的条目要被创建在web.xml文件中可用的<web-app>...</web-app>标签内。在这个表中可能已经存在各种可用的条目,但没有关系。

基本上已经完成了,现在使用<Tomcat-installation-directory>\bin\startup.bat(Windows 操作系统中)或 <Tomcat-installation-directory>/bin/startup.sh(Linux/Solaris 等操作系统中)启动 tomcat 服务器,最后在浏览器的地址栏中输入http://localhost:8080/HelloWorld。如果一切顺利,会看到下面的结果:

注意:上面做法忽略,POM和Eclipse直接运行即可。

测试工程:https://github.com/easonjim/5_java_example/tree/master/servletbasics/test1

Servlet的HelloWorld实例的更多相关文章

  1. SpringMVC HelloWorld实例开发及部署

    SpringMVC HelloWorld实例开发及部署 2017-01-24 目录 1 Tomcat及Eclipse Tomcat插件安装配置  1.1 Tomcat的安装  1.2 Eclipse ...

  2. SpringMVC之HelloWorld实例

    1.1 Helloworld实例的操作步骤  1. 加入jar包 2. 配置dispatcherServlet 3. 加入Spring配置文件 4. 编写请求处理器 并表示为处理器 5. 编写视图 1 ...

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

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

  4. 每一个Servlet只有一个实例,多个线程

    每一个Servlet只有一个实例,多个线程: Servlet: package com.stono.servlet.synchronize; import javax.servlet.http.Htt ...

  5. Maven– HelloWorld实例

    Maven– HelloWorld实例 maven安装好后,可以通过HelloWorld项目来体验一下maven是如何构建项目的.Maven项目的核心是pom.xml(就像Ant的build.xml一 ...

  6. JSP+JavaBean+Servlet工作原理实例…

    JSP+JavaBean+Servlet工作原理实例讲解 首先,JavaBean和Servlet虽都是Java程序,但是是完全不同的两个概念.引用mz3226960提出的MVC的概念,即M-model ...

  7. Servlet的HelloWorld

    设置好TOMCAT环境变量(如何设置?)后在命令行输入startup可以启动Tomcat,输入shutdown可以关闭Tomcat. /WEB-INF/web.xml是称为部署描述器的配置文件,Jav ...

  8. 基于注解配置的Spring MVC 简单的HelloWorld实例应用

    2.1 问题 使用注解的方式重构helloworld应用案例. 2.2 方案 1. @RequestMapping注解应用 @RequestMapping可以用在类定义和方法定义上,它标明这个类或方法 ...

  9. 基于XML配置的Spring MVC 简单的HelloWorld实例应用

    1.1 问题 使用Spring Web MVC构建helloworld Web应用案例. 1.2 方案 解决本案例的方案如下: 1. 创建Web工程,导入Spring Web MVC相关开发包. Sp ...

随机推荐

  1. oracle 安装,启动 ,plsql 连接

    1.下载oracle 服务器端,正常安装,在选择桌面类或者是服务器类的时候选择服务器类. 2.下载oracle 客户端解压版 下载地址   链接:https://pan.baidu.com/s/1mi ...

  2. web.xml 加载顺序

    参考网址: 上下文对象>监听>过滤器>servlet 1.先加载上下文对象 <!-- 初始化Spring classpath*:spring/applicationContex ...

  3. select * from a, b的意思

    其结果中总记录数为a表记录数乘以b表记录数,a的每条记录都会重复列出b记录总数次 很多晦涩的sql都要通过测试具体的数据来理解

  4. C#枚举中的位运算权限分配

    什么是位运算 常用的位运算主要有与(&), 或(|)和非(~), 比如: & = ; | = ; ~ = ; 运用在权限设计中 先建立一个枚举表示所有的权限管理操作: [Flags] ...

  5. vb,wps,excel 分裂

    Sub 分列() '以空格为分隔符,连续空格只算1个.对所选中的单元格进行处理 Dim m As Range, tmpStr As String, s As String Dim x As Integ ...

  6. A Convolution Tree with Deconvolution Branches: Exploiting Geometric Relationships for Single Shot Keypoint Detection

    作者:嫩芽33出处:http://www.cnblogs.com/nenya33/p/6817781.html 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须 ...

  7. druid监控及慢sql记录

    本文提要 前文也提到过druid不仅仅是一个连接池技术,因此在将整合druid到项目中后,这一篇文章将去介绍druid的其他特性和功能,作为一个辅助工具帮助提升项目的性能,本文的重点就是两个字:监控. ...

  8. No-6.If语句

    判断(if)语句 01. 开发中的应用场景 生活中的判断几乎是无所不在的,我们每天都在做各种各样的选择,如果这样?如果那样?…… 程序中的判断 if 今天发工资: 先还信用卡的钱 if 有剩余: 又可 ...

  9. 题解 洛谷P4035/BZOJ1013【[JSOI2008]球形空间产生器】

    题目链接在这QvQ "你要求出这个n维球体的球心坐标",这使我想到的解方程...... 先假设n=2,这是一个二维平面.设圆心的坐标为\((x,y)\),有两个坐标\((a_1,b ...

  10. Layui框架 中table解决日期格式问题

    使用templet自定义模板(详细查看官方文https://www.layui.com)  1.对Date的扩展,将 Date 转化为指定格式的String ,创建一个js文件: (dataForma ...