Servlet的HelloWorld实例
以下内容引用自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实例的更多相关文章
- SpringMVC HelloWorld实例开发及部署
SpringMVC HelloWorld实例开发及部署 2017-01-24 目录 1 Tomcat及Eclipse Tomcat插件安装配置 1.1 Tomcat的安装 1.2 Eclipse ...
- SpringMVC之HelloWorld实例
1.1 Helloworld实例的操作步骤 1. 加入jar包 2. 配置dispatcherServlet 3. 加入Spring配置文件 4. 编写请求处理器 并表示为处理器 5. 编写视图 1 ...
- 实现一个servlet的helloworld小程序(不适用Eclipse)
实现一个servlet的helloworld小程序(不适用Eclipse) 1. 在tomcat中的webapps下建一个应用程序FirstServlet(C:\tomcat\webapps\Firs ...
- 每一个Servlet只有一个实例,多个线程
每一个Servlet只有一个实例,多个线程: Servlet: package com.stono.servlet.synchronize; import javax.servlet.http.Htt ...
- Maven– HelloWorld实例
Maven– HelloWorld实例 maven安装好后,可以通过HelloWorld项目来体验一下maven是如何构建项目的.Maven项目的核心是pom.xml(就像Ant的build.xml一 ...
- JSP+JavaBean+Servlet工作原理实例…
JSP+JavaBean+Servlet工作原理实例讲解 首先,JavaBean和Servlet虽都是Java程序,但是是完全不同的两个概念.引用mz3226960提出的MVC的概念,即M-model ...
- Servlet的HelloWorld
设置好TOMCAT环境变量(如何设置?)后在命令行输入startup可以启动Tomcat,输入shutdown可以关闭Tomcat. /WEB-INF/web.xml是称为部署描述器的配置文件,Jav ...
- 基于注解配置的Spring MVC 简单的HelloWorld实例应用
2.1 问题 使用注解的方式重构helloworld应用案例. 2.2 方案 1. @RequestMapping注解应用 @RequestMapping可以用在类定义和方法定义上,它标明这个类或方法 ...
- 基于XML配置的Spring MVC 简单的HelloWorld实例应用
1.1 问题 使用Spring Web MVC构建helloworld Web应用案例. 1.2 方案 解决本案例的方案如下: 1. 创建Web工程,导入Spring Web MVC相关开发包. Sp ...
随机推荐
- Android开发中使用代码删除数据库
更多信息参考:Android开发中使用代码删除数据库 在Android开发中,如果用到数据库,就会有一个很麻烦的问题,就是有时候需要删除数据库很麻烦,要打开Android Device Monitor ...
- Java编程思想总结笔记Chapter 3
本章需要总结的不多,但细节的东西需要注意,有些很容易遗忘. 第三章 目录: 3.1 更简单的打印语句 3.2 使用Java操作符 3.3 优先级 3.4 赋值 3.5 算数操作符 3.6 自动递增和递 ...
- github——团队合作
- java web 学习笔记 - servlet01
---恢复内容开始--- 1.Servlet介绍 Servlet 是用java语言编写的服务器端小程序,属于一个CGI程序,但与传统的CGI不同的是,它是多线程实现的,并且可以多平台移植. 用户自定义 ...
- Codeforces_789C_(dp)
C. Functions again time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- template or render function not defined.
template or render function not defined. H_婷 关注 2018.08.16 17:22 字数 106 阅读 3859评论 0喜欢 2 下午写 Vue $par ...
- hystrix 解决服务雪崩效应
1.服务雪崩效应 默认情况下tomcat只有一个线程池去处理客户端发送的所有服务请求,这样的话在高并发情况下,如果客户端所有的请求堆积到同一个服务接口上, 就会产生tomcat的所有线程去处理该服务接 ...
- Java 类执行顺序
1.如果父类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块2.如果类有静态成员赋值或者静态初始化块,执行静态成员赋值和静态初始化块3.将类的成员赋予初值(原始类型的成员的值为规定值,例 ...
- vim跳转(一)
参考资料:http://easwy.com/blog/archives/advanced-vim-skills-basic-move-method/ 在normal模式下使用如下命令 1.h, j, ...
- ID字段不采用数据库自增长的几点理由
一个小程序,最初采用了 SqlServer 数据库,后来为了便于部署,转而采用了 Firebird 嵌入式数据库.在重构代码转到 Firebird 的过程中,对“数据实体的数据表的ID字段是否应该使用 ...