Tomcat下运行servlet

author: scruffybear

release time: 21/10/2006

company: Watchdata  

如有转载,请注明出处,并保持文章的完整性,谢谢!   

    Tomcat下运行Servlet以前虽然没有做过关于servlet的开发,但是也配置过,当时是成功了,现在重新做一下,发现竟然已经忘了怎么配置了,由于受到前几天病毒的影响,本来早就试验成功,今天继续研究了一下,没想到一下成功了,所谓会者不难,难者不会,有些东西还是要靠自己去慢慢摸索,网络是最好的老师。

一、安装Tomcat并配置环境变量。

    首先是安装Tomcat,安装JDK的方法在前面的日志中已经提到过,这个是必须的,Tomcat我使用是较为老一点的版本,Tomcat5.0,安装路径为C:/Tomcat 5.0/
    在环境变量里添加以下两个变量,作用以前也提到过,不赘述:
       CATALINA_HOME=C:/Tomcat 5.0/
       CATALINA_BASE=C:/Tomcat 5.0/
    
    在C:/Tomcat 5.0/common/lib目录下加入一个运行servlet所必须的包servlet.jar,我以前以为是my-servlet.jar,后来发现不是,但又找不到,最后是在网上好不容易下到的,所以小心地做好了备份,这回又拷贝出来用。
    
    拷贝了所需要的servlet.jar包后,再把C:/Tomcat 5.0/common/lib下的servlet.jar追加到classpath中去,修改后的classpath如下:
    classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%CATALINA_HOME%/common/lib/servlet.jar;
  
    接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。


二、运行servlet。

1,首先编写一个HelloWorld.java 并编译生成HelloWorld.class,代码如下:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet
  {
    public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
   {

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html><head><title>");
    out.println("This is my first Servlet");
    out.println("</title></head><body>");
    out.println("<h1>Hello,World!</h1>");
    out.println("</body></html>");
  
   }
   }

2,建立工作目录。

    在C:/Tomcat 5.0/webapps目录下创建一个我的工作目录 myServlets,跟着在myServlets下创建WEB-INF目录,在WEB-INF目录下再创建 classes 目录,这个classes 目录是用来存放你编译好的.class(即是你要运行的servelt文件,这里为HelloWorld.class),我的人个全路径是:
      C:/Tomcat 5.0/webapps/myServlets/WEB-INF/classes
将编译好的HelloWorld.class拷贝到 C:/Tomcat 5.0/webapps/myServlets/WEB-INF/classes下。

3,修改配置文件。
    
    如果这个时候在网址栏里输入http://localhost:8080/myServlet/HelloWorld,只会出现常见的找不到网络资源404错误,因为servlet和工作目录都没有注册,Tomcat找不到相应的资源。这里要分别修改两个文件:web.xml, server.xml进行注册。

    首先修改server.xml文件,作用为注册工作目录。用记事本打开 C:/Tomcat 5.0/conf 下的 server.xml文件
并找到一下一段内容:
        <!--
          <Context path="" docBase="ROOT" debug="0">
        -->

修改如下:
        <!--
          <Context path="" docBase="ROOT" debug="0">
          <Context path="/myServlets" docBase="myServlets" debug="0" reloadable="true" crossContext="true">            
        -->
在这里要注意,一定要将内容写在 <!--和--> 之间,否则也会出404错误,想到Tomcat真BT,让我们走了多少冤枉路。

    修改web.xml,这个文件是在C:/Tomcat 5.0/webapps/myServlets/WEB-INF,其实这个文件是不存在的,新创建一个,内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat
</description>
<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-app>  
    网上提醒说添加的内容必须放置在</description>跟</web-app>之间,而不是直接在</web-app>后面添加,又一个陷井。


4,运行Servlet。
    最后运行servlet,重新启动Tomcat(即startup.bat),打开浏览器,输入http://localhost:8080 在后面加上工作目录名 myServlets 再加上servelt文件名(即:编译好的.class文件)
    全路径为:http://localhost:8080/myServlet/HelloWorld
    出现的网页的标题是:This is my first Servlet, 硕大的英文Hello World ,大功告成,Tomcat开源的果真BT!  

### 如何在 Tomcat 上配置和运行 Servlet 示例 要在 Tomcat 上成功运行 Servlet 示例,需要完成以下几个方面的操作: #### 1. 准备工作 确保已经下载并解压了 Apache Tomcat 的安装包。Tomcat 提供了一个内置的 `examples` 应用程序,用于演示各种功能,包括 Servlet 和 JSP 示例[^4]。 #### 2. 编译 Servlet 文件 如果要手动创建自己的 Servlet 并部署到 Tomcat 中,则需要引入必要的依赖库来编译 Java 源代码文件。具体步骤如下: - 将 Tomcat 解压后的 `lib/` 目录下找到的 `servlet-api.jar` 复制到与自定义 Servlet 类(如 `MyServlet.java`)相同的目录中。 - 使用以下命令对 Servlet 进行编译: ```bash javac -cp ./servlet-api.jar MyServlet.java ``` 这一步是为了让编译器能够识别 Servlet 接口的相关类定义[^2]。 #### 3. 配置 web.xml 文件 每个 Web 应用都需要一个描述其结构的 `web.xml` 文件。对于简单的 Servlet 示例,可以在 `<TOMCAT_HOME>/webapps/ROOT/WEB-INF/web.xml` 或新建应用的 `WEB-INF/web.xml` 中添加相应的映射规则。例如: ```xml <servlet> <servlet-name>myServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>myServlet</servlet-name> <url-pattern>/helloWorld</url-pattern> </servlet-mapping> ``` 上述 XML 片段表示当客户端请求路径 `/helloWorld` 时,将调用名为 `myServlet` 的 Servlet 实例处理请求[^3]。 #### 4. 启动 Tomcat 服务 进入 Tomcat 安装目录下的 `bin/` 子目录,执行启动脚本: - 对于 Linux/Mac 用户:`./startup.sh` - 对于 Windows 用户:双击 `startup.bat` 确认控制台输出表明服务器已正常启动后,在浏览器地址栏输入类似下面 URL 地址验证是否生效: ``` http://localhost:8080/helloWorld ``` #### 5. 嵌入式 Tomcat 的使用场景 除了传统的独立部署方式外,还可以利用嵌入式的 Tomcat 来简化开发流程。这种方式特别适合微服务架构或者快速原型构建阶段。通过 Maven 插件 Smart Tomcat 可以轻松实现这一目的。 --- ### 注意事项 尽管 Tomcat 自带了一些示例应用程序便于学习研究用途,但在生产环境中应谨慎对待这些默认样例,因为它们可能存在安全隐患,比如 Cookie 泄露等问题。 ---
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值