好吧,又是一个简单到不能再简单的问题~~

由于各种原因,这次就不上图了,直接步骤和代码了。

1、前期准备

jdk、tomcat、EditPlus(eclipse)安装成功并且设置好环境变量。

2、由于jdk(JavaSE)是无法直接编译servlet的,所以需要将tomcat安装目录\lib\servlet-api.jar复制到java安装目录\lib下,并且为了确保没有问题,可以在系统变量CLASSPATH后面加上“;%CATALINA_HOME%\lib\servlet-api.jar”(前提是CATALINA_HOME要设置好啊。。)

3、创建文件结构

我在tomcat的webapps目录下新建了一个my文件夹,下面又新增了src文件夹(放所有的java文件包括servlet)、WEB-INF文件夹(放所有的classes类、jar包、静态页面和web.xml),WEB-INF文件夹里新建两个文件夹:classes和lib。

4、现在可以写代码了,在src文件夹下新建文件夹servlet,在servlet文件夹内新建一个java文件,命名为HelloWorldServlet.java。

 package servlet;

 //打包,注意这个地方,待会在配置web.xml时会用到

 import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*; //以上三个导入语句都是servlet要用到的,尤其是前两个 public class HelloWorldServlet extends HttpServlet{ protected void doGet(HttpServletRequest req,HttpServletResponse resp)throws IOException,ServletException{ PrintWriter out = resp.getWriter(); //打印流,自动flush,不会抛出异常
out.println("<html><head><title>Hello</title></head><body>HelloWorld!</body></html>");
    
//作用是输出HelloWorld!字段 out.flush(); //flush() 清空缓冲区的数据 out.close(); //关闭 }
}

因为我用的是EditPlus,所以就手动来编译一下吧(实话说一个两个都也没啥,多了我也不知道怎么办比较好。。。)

运行——cmd——cd D:\apache-tomcat-8.0.12\webapps\my\src\servlet(这个路径根据实际情况可以改)——javac HelloWorldServlet.java

如果出现乱码的问题,请参见我的上一篇文章《解决java文件编码和windows7系统(中文版)默认编码冲突所导致的乱码情况

成功编译之后,将生成的class文件复制到WEB-INF文件夹的classes文件夹中。注意,因为HelloWorldServlet.java的位置是在servlet文件夹内,所以在这里也要如法炮制,在classes文件夹里也要新建servlet文件夹,并将HelloWorldServlet.class文件放入其中。

5、别以为这就完事了。。配置web.xml同样是件大事。如果没有配置这个,100%报404(我才不会告诉你我蛋疼了好长时间)

如果你用的是eclipse或者其他的工具的话,可以在建立项目时就选择创建默认的web.xml(内面的内容非常少,只有一些欢迎的页面设置)。我是用的tomcat里example项目中改的,大家可以参考:

 <?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"
metadata-complete="true"> <servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>servlet.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/HelloWorldServlet</url-pattern>
</servlet-mapping>
</web-app>

加粗的内容是针对上文中写的servlet的设置。大家可以如法炮制(实话说我也讲不太明白,大家自行百度吧)。。。

6、最后,启动tomcat,输入http://localhost:8080/my/HelloWorldServlet ,搞定。

如何成功运行一个最简单的servlet的更多相关文章

  1. javaWeb之写一个最简单的servlet

    1. 创建一个类servletTest2 继承HttpServlet类. public class servletTest2 extends HttpServlet { public servletT ...

  2. 一个最简单的Servlet实例

    先在tomcat的webapps目录下,新建一目录,如test.然后,在test目录下建立WEB-INF为名的目录.这个必须有. 然后,在WEB-INF目录下建立classes目录.用以存储所用到的c ...

  3. 通过Jetty搭建一个简单的Servlet运行环境

    最近在做一些简单的Servlet开发的时候,感觉每次调试的时候都要发布到tomcat上很麻烦,把程序共享给同事也很麻烦,需要帮他设置本地的tomcat环境. 在网上找了找其他的Servlet运行环境, ...

  4. 开发部署一个简单的Servlet

    Servlet是一个执行在服务器端的Java Class文件,载入前必须先将Servlet程序代码编译成.class文件,然后将此class文件放在servlet Engline路径下.Servlet ...

  5. 在cmd下编译一个简单的servlet时出现程序包javax.servlet不存在

    由于servlet和JSP不是Java平台JavaSE(标准版)的一部分,而是Java EE(企业版)的一部分,因此,必须告知编译器servlet的位置. 解决“软件包 javax.servlet不存 ...

  6. Servlet复习1: 一个简单的Servlet的使用

    Servlet学习 1. Servlet与JSP的关系 2. Servlet的声明周期 3. 一个简单的Servlet的使用方法 什么是Servlet? 什么又是JSP? 继承了javax.servl ...

  7. Tomcat剖析(二):一个简单的Servlet服务器

    Tomcat剖析(二):一个简单的Servlet服务器 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三) ...

  8. Tomcat学习笔记(二)—— 一个简单的Servlet容器

    1.简介:Servlet编程是通过javax.Servlet和javax.servlet.http这两个包的类和接口实现的,其中javax.servlet.Servlet接口至关重要,所有的Servl ...

  9. 使用Dockerfile创建一个tomcat镜像,并运行一个简单war包

    docker已经看了有一段时间了,对镜像和容器也有了一个大致了解,参考书上的例子制作一个tomcat镜像,并简单运行一个HelloWorld.war 1.首先下载linux环境的tomcat和jdk, ...

随机推荐

  1. jquery怎么获取radio选中的值

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. sql关于Group by

    SELECT JBGS.XMID, SUM(JBGS.JBGS * JBYXXS.YXXS) / (SELECT  SUM(B.GS)  FROM T_XMCBHZ B  WHERE  B.XMID= ...

  3. android 图片浏览器

    自定义了gallary和ImageView: gallary: public class MyGallery extends Gallery { /**  * GestureDetector类 在on ...

  4. aes rsa加密

    aes在加密时,若加密字符串的长度不是16,则会在后面加0x00补足16位,所以在解密后还应该去除0x00 小于16字节的原文会得到16字节长度的密文,小于32字节的原文会得到32字节长度的密文,大于 ...

  5. js本地图片预览

    相信大家都遇到过上传图片之前预览,网上找了很多,但都不是所有浏览器都支持,不过后来找到一个,但自己没有完全实验. 代码如下: <script> //使用IE条件注释来判断是否IE6,通过判 ...

  6. 前端学习 第七弹: Javascript实现图片的延迟加载

    前端学习 第七弹: Javascript实现图片的延迟加载 为了实现图片进入视野范围才开始加载首先: <img    src="" x-src="/acsascas ...

  7. oracle恢复误删除数据

    --开启行移动功能alter table 表名 enable row movement;--恢复表数据flashback table 表名 to timestamp to_timestamp('201 ...

  8. 一种让超大banner图片不拉伸、全屏宽、居中显示的方法

    现在很多网站的Banner图片都是全屏宽度的,这样的网站看起来显得很大气.这种Banner一般都是做一张很大的图片,然后在不同分辨率下都是显示图片的中间部分.实现方法如下: <html> ...

  9. Head First 设计模式之适配器模式与外观模式

    Head First设计模式之适配器模式与外观模式 前言: 之前讲过装饰者模式,将对象包装起来并赋予新的职责,这一章我们也会将对象进行包装,只不过是让它们看起来不像自己而像是别的东西.这样就可以在设计 ...

  10. docker存储结构解析

    由于aufs并未并入内核,故而目前只有Ubuntu系统上能够使用aufs作为docker的存储引擎,而其他系统上使用lvm thin provisioning(overlayfs是一个和aufs类似的 ...