如何成功运行一个最简单的servlet
好吧,又是一个简单到不能再简单的问题~~
由于各种原因,这次就不上图了,直接步骤和代码了。
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的更多相关文章
- javaWeb之写一个最简单的servlet
1. 创建一个类servletTest2 继承HttpServlet类. public class servletTest2 extends HttpServlet { public servletT ...
- 一个最简单的Servlet实例
先在tomcat的webapps目录下,新建一目录,如test.然后,在test目录下建立WEB-INF为名的目录.这个必须有. 然后,在WEB-INF目录下建立classes目录.用以存储所用到的c ...
- 通过Jetty搭建一个简单的Servlet运行环境
最近在做一些简单的Servlet开发的时候,感觉每次调试的时候都要发布到tomcat上很麻烦,把程序共享给同事也很麻烦,需要帮他设置本地的tomcat环境. 在网上找了找其他的Servlet运行环境, ...
- 开发部署一个简单的Servlet
Servlet是一个执行在服务器端的Java Class文件,载入前必须先将Servlet程序代码编译成.class文件,然后将此class文件放在servlet Engline路径下.Servlet ...
- 在cmd下编译一个简单的servlet时出现程序包javax.servlet不存在
由于servlet和JSP不是Java平台JavaSE(标准版)的一部分,而是Java EE(企业版)的一部分,因此,必须告知编译器servlet的位置. 解决“软件包 javax.servlet不存 ...
- Servlet复习1: 一个简单的Servlet的使用
Servlet学习 1. Servlet与JSP的关系 2. Servlet的声明周期 3. 一个简单的Servlet的使用方法 什么是Servlet? 什么又是JSP? 继承了javax.servl ...
- Tomcat剖析(二):一个简单的Servlet服务器
Tomcat剖析(二):一个简单的Servlet服务器 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三) ...
- Tomcat学习笔记(二)—— 一个简单的Servlet容器
1.简介:Servlet编程是通过javax.Servlet和javax.servlet.http这两个包的类和接口实现的,其中javax.servlet.Servlet接口至关重要,所有的Servl ...
- 使用Dockerfile创建一个tomcat镜像,并运行一个简单war包
docker已经看了有一段时间了,对镜像和容器也有了一个大致了解,参考书上的例子制作一个tomcat镜像,并简单运行一个HelloWorld.war 1.首先下载linux环境的tomcat和jdk, ...
随机推荐
- iOS纯代码适配masonry中mas_的问题
//equalto 和 mas_equalto 是有区别的.但是我们不打算去了解,可以通过添加以下代码来统一. //注意!! 宏定义必须要放在 import 引入头文件之前! //define thi ...
- 第三方Girdview中文件下载的方法,以及js显示图片
/// <summary> /// 文件下载事件 /// </summary> /// <param name="sender"></ ...
- OAuth2.0授权
一.什么是OAuth2.0官方网站:http://oauth.net/ http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secu ...
- IO流一行一行读取TXT文件
我们在开发或者测试的时候,往往会用到读取本地txt文件内容来处理数据的情况.下面是读取本地txt文件内容,是一行一行读取.如下列txt例子 小明 20 小红 20 小亮 20 下面是代码: publi ...
- js中属性和方法的类型和区别
对象的属性:私有属性(var).类属性(静态属性).对象属性(this).原型属性(prototype). 对象的方法: 私有方法(funtion).类方法(静态方法).对象方法(this).原型方法 ...
- nginx配置文件语法高亮显示方法
1.去官方站点下载nginx.vim http://www.vim.org/scripts/script.php?script_id=1886 2.创建nginx.vim的存放目录 # mkdir - ...
- linux下c语言实现搜索根目录下所有文件(转-wangxiangshang)
头文件: #include<dirent.h> #include<sys/types.h> opendir(): 函数原型: DIR * opendir(const char* ...
- LeetCode() Largest Number
全排列,超时,知道超时,只是想验证一下. class Solution { public: string largestNumber(vector<int>& nums) { so ...
- jd-gui报错INTERNAL ERROR 解决办法
问题:我用dex2jar工具反编译了apk文件,但当我用jd-gui反编译前面操作获得的jar文件的时,能很完美地看到大部分类反编译后的代码,但有一部分类不能显示出来--constants类,仅仅显示 ...
- C++引用详解
引用的概念 引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 引用的声明方法:类型标识符 &引用名=目标变量名: 如下:定义引用ra,它是变量a的引用,即别名. i ...