servlet(1) - 手写第一个servlet程序 - 小易Java笔记
声明:如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笔记的更多相关文章
- servlet(6) - servlet总结 - 小易Java笔记
垂阅前必看: 这都是我总结的我觉得是学习servlet应该掌握的,我在学习期间也做了一个博客项目来让所学的知识得以巩固.下面就是博客项目链接.前面的servlet相关的笔记总汇,还有就是我把觉得在学习 ...
- servlet(2) - 利用MyEclipse新建一个servlet - 小易Java笔记
1.Tomcat在MyEclipse中集成 ==> Window-preferences-MyEclipse-Servers-Tomcat-Tomcat 6.x-点击右侧的Browse,选择你的 ...
- servlet(4) - servletAPI - 小易Java笔记
Servlet规范核心类图 1.请求和响应对象 ==> HTTP协议包含请求和响应部分. ==> HttpServletRequest就代表着请求部分 ==> HttpServlet ...
- servlet(3) - servlet知识点 - 小易Java笔记
1.servlet的生命周期 (1)容器最终要调用service方法为客户进行服务.(此处“容器”指java运行的环境,tomcat是jsp/servlet的容器) ==> 在内存中一个Serv ...
- servlet(5) - Cookie和session - 小易Java笔记
1.会话概述 (1)会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. (2)会话过程中的数据不宜保存在request和servle ...
- idea 如何新建一个Maven项目并且写第一个servlet
使用idea已经有段时间了,但是一直没有自己亲自新建一个项目,从头开始写一个Servlet,今天就来学习一下,并且记一个笔记. 一. 1.首先,打开idea new-->Project 2.选择 ...
- Servlet快速入门:第一个Servlet程序
Servlet是整个JavaWeb开发的核心,同时也是一套规范,即公共接口.用于处理客户端发来的请求并作出响应.通常情况下我们会发送不同的请求并交由不同的处理程序来处理,例如处理用户信息和处理订单信息 ...
- 为sproto手写了一个python parser
这是sproto系列文章的第三篇,可以参考前面的<为sproto添加python绑定>.<为python-sproto添加map支持>. sproto是云风设计的序列化协议,用 ...
- Servlet基础-手工编写第一个servlet
[手工编写第一个servlet] [步骤] 1.继承HttpServlet 2.重写doGet()或者doPost()方法 //这个doGet或者doPost方法取决用户提交的方式 3.在web.x ...
随机推荐
- 问题 D: 约数的个数
问题 D: 约数的个数 时间限制: 1 Sec 内存限制: 32 MB提交: 272 解决: 90[提交][状态][讨论版][命题人:外部导入] 题目描述 输入n个整数,依次输出每个数的约数的个数 ...
- python进阶训练
1.列表,字典,集合解析 from random import randint #列表解析,选出大于0的元素 data=[randint(-10,10)for i in range(10)] resu ...
- iterator 的设计原则和traits
iterator我前面写过是作为algorithm和container之间的一个桥梁,algorithm进程操作的时候向iterator进行提问,iterator并对提问进行了回答,其中主要就是回答5 ...
- SQL Server 性能调优 之执行计划(Execution Plan)调优
SQL Server 存在三种 Join 策略:Hash Join,Merge Join,Nested Loop Join. Hash Join:用来处理没有排过序/没有索引的数据,它在内存中把 Jo ...
- (转)Nginx配置和内核优化 实现突破十万并发
nginx指令中的优化(配置文件) worker_processes 8; nginx进程数,建议按照cpu数目来指定,一般为它的倍数. worker_cpu_affinity 00000001 00 ...
- 接触到的一些数据结构: LIST_ENTRY, TAILQ
双链表: LIST_ENTRY: typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; follow: next entry, header ...
- 【算法】高斯消元&线性代数
寒假作业~就把文章和题解3道题的代码扔在这里啦——链接: https://pan.baidu.com/s/1kWkGnxd 密码: bhh9 1.HNOI2013游走 #include <bit ...
- 【BZOJ 1082】[SCOI2005]栅栏 二分+dfs
对于最优解我们发现所有的最优解都可以是前多少多少个,那么我们就二分这个前多少多少个,然后用dfs去判解,我们发现在dfs的过程中如果不剪枝几乎必T,所以我们就需要一些有效的剪枝 I. 我们在枚举过程中 ...
- Codeforces 937.B Vile Grasshoppers
B. Vile Grasshoppers time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Codeforces Round #534 (Div. 2) D. Game with modulo(取余性质+二分)
D. Game with modulo 题目链接:https://codeforces.com/contest/1104/problem/D 题意: 这题是一个交互题,首先一开始会有一个数a,你最终的 ...