声明:如tomcat的安装目录为D:\Java\tomcat6,下面要根据tomcat的安装目录而定

1. 建立程序的文件结构

==>找到tomcat的安装目录,在webapps目录下新建一个名为servlet的目录

==>在servlet目录下新建名为WEB-INF的目录

==>在WEB-INF目录下新建一个名为classes的目录

==>在WEB-INF目录下新建一个名为web.xml的文件

==>在classes目录下新建一个名为FirstServlet.java的文件

2. 用文本编辑工具(如:EditPlus)打开FirstServlet.java,并写入一下代码:

package com.smalle;

import java.io.*;
import javax.servlet.*; public class FirstServlet extends GenericServlet{
public void service(ServletRequest req,ServletResponse res)throws ServletException,IOException{
OutputStream out = res.getOutputStream();
out.write("hello servlet!".getBytes());
}
}

3. 编译.java文件为.class文件。但此时编译是会出问题的,需要把相应的servlet的jar包加入到classpath中。

重新设置环境变量:==> 运行 ==> cmd ==> d: ==> 回车 ==> cd D:\Java\tomcat6\webapps\servlet\WEB-INF\classes ==> 回车 ==> set classpath=%classpath%;D:\Java\tomcat6\lib\servlet-api.jar ==> 回车

编译:==> javac -d . FirstServlet.java ==>回车

:==>如果在classes下出现了com目录,且com下有一个smalle目录,smalle目录下有文件FirstServlet.class则表示编译成功

==>%classpath%表示原来的classpath的值,classpath=%classpath%就是把原来的classpath值赋给现在的classpath,然后在后面加上分号和要加入的jar包

==>-d 表示如果.java文件有包名就要加上-d,. 表示把编译的.class文件保存在当前目录,他们之间是有空格的

4. 用文本编辑工具(如:EditPlus)打开web.xml,并写入一下代码:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>servlet</display-name>
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>com.smalle.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/FirstServlet</url-pattern>
</servlet-mapping> </web-app>

5. 启动tomcat,进入到D:\Java\tomcat6\bin目录下双击运行startup.bat

6. 打开浏览器,地址栏中输入http://localhost:8080/servlet/FirstServlet回车,若页面输出hello servlet!那么恭喜您第一个servlet程序手写成功!

附:关于Tomcat安装或者启动异常请参考:http://blog.csdn.net/oldinaction/article/details/39754635

servlet(1) - 手写第一个servlet程序 - 小易Java笔记的更多相关文章

  1. servlet(6) - servlet总结 - 小易Java笔记

    垂阅前必看: 这都是我总结的我觉得是学习servlet应该掌握的,我在学习期间也做了一个博客项目来让所学的知识得以巩固.下面就是博客项目链接.前面的servlet相关的笔记总汇,还有就是我把觉得在学习 ...

  2. servlet(2) - 利用MyEclipse新建一个servlet - 小易Java笔记

    1.Tomcat在MyEclipse中集成 ==> Window-preferences-MyEclipse-Servers-Tomcat-Tomcat 6.x-点击右侧的Browse,选择你的 ...

  3. servlet(4) - servletAPI - 小易Java笔记

    Servlet规范核心类图 1.请求和响应对象 ==> HTTP协议包含请求和响应部分. ==> HttpServletRequest就代表着请求部分 ==> HttpServlet ...

  4. servlet(3) - servlet知识点 - 小易Java笔记

    1.servlet的生命周期 (1)容器最终要调用service方法为客户进行服务.(此处“容器”指java运行的环境,tomcat是jsp/servlet的容器) ==> 在内存中一个Serv ...

  5. servlet(5) - Cookie和session - 小易Java笔记

    1.会话概述 (1)会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. (2)会话过程中的数据不宜保存在request和servle ...

  6. idea 如何新建一个Maven项目并且写第一个servlet

    使用idea已经有段时间了,但是一直没有自己亲自新建一个项目,从头开始写一个Servlet,今天就来学习一下,并且记一个笔记. 一. 1.首先,打开idea new-->Project 2.选择 ...

  7. Servlet快速入门:第一个Servlet程序

    Servlet是整个JavaWeb开发的核心,同时也是一套规范,即公共接口.用于处理客户端发来的请求并作出响应.通常情况下我们会发送不同的请求并交由不同的处理程序来处理,例如处理用户信息和处理订单信息 ...

  8. 为sproto手写了一个python parser

    这是sproto系列文章的第三篇,可以参考前面的<为sproto添加python绑定>.<为python-sproto添加map支持>. sproto是云风设计的序列化协议,用 ...

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

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

随机推荐

  1. 监控memcache服务

    监控memcache服务是否正常,模拟用户(web客户端)检测. 使用nc命令加上set/get来模拟检测,以及监控响应时间及命中率. #!/bin/bash #################### ...

  2. vim使用注意事项

    vim使用注意事项 1. 中文编码的问题 中文编码有很多,如果文件与vim的终端界面使用的编码不同,那么在vim显示的文件内容将会是一堆乱码. 2. 语系编码转换 命令iconv可以将语系编码进行转换 ...

  3. 第四次JAVA作业

    public class TvbDog { public static void main(String[] args) {  Dog per=new Dog("陈狗"," ...

  4. elasticsearch this is not a http port

    访问的是elastic search的tcp端口,需换成http端口. elastic search默认tcp端口9300,http端口9200 如果浏览器中访问http://localhost:92 ...

  5. regex & form validation & phone

    regex & form validation https://regexper.com/ https://gitlab.com/javallone/regexper-static https ...

  6. HTML5<canvas>标签:使用canvas元素在网页上绘制渐变和图像(2)

    详细解释HTML5 Canvas中渐进填充的参数设置与使用,Canvas中透明度的设置与使用,结合渐进填充与透明度支持,实现图像的Mask效果. 一:渐进填充(Gradient Fill) Canva ...

  7. P1531 I Hate It

    题目背景 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感. 题目描述 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的 ...

  8. Thymeleaf 如何支持java8的时间LocalDate和LocalDatetime

    一.添加依赖 <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thym ...

  9. BZOJ2001 [Hnoi2010]City 城市建设 【CDQ分治 + kruskal】

    题目链接 BZOJ2001 题解 CDQ分治神题... 难想难写.. 比较朴素的思想是对于每个询问都求一遍\(BST\),这样做显然会爆 考虑一下时间都浪费在了什么地方 我们每次求\(BST\)实际上 ...

  10. js保存用户名与密码

    <script>   window.onload = function(){     var oForm = document.getElementById('loginForm');   ...