从头写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 stubresponse.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.

在tomcat上全手工部署Servlet3.0相关推荐

  1. solr7在tomcat上的部署

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 solr是基于lucence的企业级搜索服务器.之前使用的都是4.x版本,但是在5.x之后solr的目录结构已经发生 ...

  2. android 服务端 servlet webservice,Tomcat 上如何部署Servlet及Android中如何与服务器通信(12页)-原创力文档...

    Tomcat 上如何部署Servlet及Android中如何与服务器通信 下载Tomcat并安装 Apache Tomcat powers numerous large-scale, mission- ...

  3. 在Tomcat上安装部署SAIKU

    在Tomcat上安装部署SAIKU Saiku是一个强大的独立工具,用于查询构建数据集市,如:即席查询报表.图表展示.导出报表成excel或csv格式等.Saiku是基于Mondrian OLAP引擎 ...

  4. Spring MVC-09循序渐进之文件上传(基于Servlet3.0+内置功能)

    概述 测试 源码 概述 Spring MVC-09循序渐进之文件上传(基于Apache Commons FileUpload) 上篇博文我们说了基于Apache Commons FileUpload的 ...

  5. Springmvc文件上传(servlet3.0)/下载(ssm)以及坑点

    前言 (补充:再linux服务器上可能没用创建文件的权限,那就需要找到文件夹给权限,比如我的chmod -R 777 /home/tomcat/apache-tomcat-default/webapp ...

  6. Spring MVC-09循序渐进之文件上传(基于Servlet3.0+Html5客户端上传文件)

    示例 测试 源码 虽然Servlet3.0+中上传文件,我们在服务端编程即可非常容易,但是用户体验却不是非常友好.单独的一个HTML表单并不能显示进度条,或者显示已经成功上传的文件数量. 不管是Jav ...

  7. 解决在Tomcat上手动部署WAR服务器不能自动解压的方法

    手动部署文件的方式有很多,其中一个方法是将项目打包成war包,放置到webapps目录下,正常效果是Tomcat自动解压war包,项目至此部署成功,但第一次部署时失效,我首先怀疑Tomcat版本的问题 ...

  8. 从零开始写项目第八篇【将未完成的项目发布在Tomcat上】

    tags: 从零开发项目, title: 从零开始写项目第八篇[将未完成的项目发布在Tomcat上] 将项目打包成war包 我使用的是Maven来构建项目的,因此打war包也是非常方便的. 参考链接: ...

  9. 如何把springboot项目部署到tomcat上

    文章目录 一. 企业发布场景 1. 首次发布 2. 非首次发布 3. 全量发布和增量发布概念和区别 二.springboot部署tomcat 2.1. 创建Web初始化类 2.2. 修改打包方式 2. ...

最新文章

  1. linux服务 ssh
  2. rail server 启动时报告错误undefine mysql_get_client_info
  3. 种草之火,何以燎原?
  4. 【收藏】在 Linux 上以 All-in-One 模式安装 KubeSphere
  5. mysql 快照能否恢复某个表_mysql全库备份恢复某个表
  6. redis 超时失效key 的监听触发
  7. python 调用opencv dll_【问题已解决】python 3.6下安装opencv-python解决cv2 DLL load failed: 找不到指定的模块问题...
  8. 京东面试题:ElasticSearch深度分页解决方案
  9. Nginx+Keepalived主备配置
  10. 【一分钟知识】决策树-ID3,C4.5,CART
  11. 【Alpha】第七次Scrum meeting
  12. javascript array map方法
  13. 【软技能】完全写作指南--演讲
  14. 使用RoboCopy 命令[转载]
  15. c语言中快排函数,c语言快排函数详解
  16. WannaCry勒索病毒处理指南
  17. OSChina 周二乱弹 —— 有一种蛋蛋的忧伤
  18. 图片合并pdf 解决Cannot read JPEG2000 image: Java Advanced Imaging (JAI) Image I/O Tools are not installed
  19. python通达信模块_通达信转python
  20. 叮咚买菜两年亏损50亿、上市难解盈利困局,红海市场求突围

热门文章

  1. 7-166 二分法求多项式单根 (20 分)
  2. EL表达式和JSTL标签的区别
  3. Android中Adapter适配器的介绍以及用法的总结
  4. Could not clean server of obsolete files
  5. 容器的基础 XmlBeanFactory(下篇)
  6. Python----面试题(二)
  7. TCP拥塞控制和流量控制
  8. 微信红包功能(含示例demo)
  9. WINDOWS 下安装boost
  10. 关于如何获得网站集宿主网站集地址的问题