在tomcat上全手工部署Servlet3.0

简介:

从头写java文件的方式,编译成CLASS文件,加强对SERVLET容器的理解。

稍后试试JAR和WAR包。

文件内容(跟以前用IDE的一样):

HelloServlet.java:

复制代码
package cc.openhome;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloServlet
 */
@WebServlet(urlPatterns = {"/hello.view"})
public class HelloServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        String name = request.getParameter("name");
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1> Hello!" + name + "! </h1>");
        out.println("</body>");
        out.println("</html>");
        out.close();
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
复制代码

web.xml(这个文件可有可无的,在用servlet3.0注解的情况下,当里,用了注解,也可以定义另一个URL):

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd">


  <servlet>
      <servlet-name>firstServlet</servlet-name>
      <servlet-class>cc.openhome.HelloServlet</servlet-class>
      <load-on-startup>0</load-on-startup>
  </servlet>

  <servlet-mapping>
      <servlet-name>firstServlet</servlet-name>
      <url-pattern>/first.do</url-pattern>
  </servlet-mapping>
  
</web-app>
复制代码

注意目录的摆放:

复制代码
。HelloServlet.java文件位于C:\apache-tomcat-8.0.30\webapps\First\WEB-INF\classes目录下。
。编译命令为:

。C:\apache-tomcat-8.0.30\webapps\First\WEB-INF\classes>javac -cp .;C:\apache-tomcat-8.0.30\lib\servlet-api.jar -d . HelloServlet.java

。生成的HelloServlet.class文件位于:C:\apache-tomcat-8.0.30\webapps\First\WEB-INF\classes\cc\openhome目录下。
。web.xml当然位于C:\apache-tomcat-8.0.30\webapps\First\WEB-INF目录下。
复制代码

于是用

http://127.0.0.1:8080/First/first.do?name=hello

http://127.0.0.1:8080/First/hello.view?name=hello

都会指定到同一个servlet.

目录
相关文章
|
3月前
|
Arthas 监控 Java
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
171 2
|
4月前
|
应用服务中间件 Linux Windows
win下tomcat部署问题积累
win下tomcat部署问题积累
|
2月前
|
JavaScript Java 应用服务中间件
centos部署vue项目(java,tomcat环境的搭建)
centos部署vue项目(java,tomcat环境的搭建)
38 0
|
4月前
|
XML Java 应用服务中间件
Tomcat - 部署项目的四种方式
Tomcat - 部署项目的四种方式
38 0
|
4月前
|
Java 应用服务中间件 API
SpringBoot项目 Tomcat部署war程序时启动成功但是访问404异常处理
SpringBoot项目 Tomcat部署war程序时启动成功但是访问404异常处理
79 0
|
4月前
|
XML Java 应用服务中间件
tomcat三种部署方式和推荐方式
tomcat三种部署方式和推荐方式
|
3天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
8 0
|
4月前
|
Java 应用服务中间件
SpringBoot 项目war包部署 配置外置tomcat方法
SpringBoot 项目war包部署 配置外置tomcat方法
70 0
|
6天前
|
Java 应用服务中间件 Linux
阿里云服务器部署多个tomcat
阿里云服务器部署多个tomcat
|
1月前
|
Java 应用服务中间件
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
107 1