学习笔记是参考的how2j

开发第一个Servlet

Servlet 本身不能独立运行,需要在一个web应用中运行的,而一个web应用是部署在tomcat中的

所以开发一个servlet需要如下几个步骤

创建web应用项目
编写servlet代码
部署到tomcat中

本例使用Eclipse EE版 结合独立的 tomcat进行一次java普通项目的创建。

java ee可以自动创建web项目,但是,自动创建会让我们忽略一些细节,因此,在这里,我们先用eclipse手动创建一个简单的项目,熟悉一下创建流程

在这里,我们先使用一个不依赖JAVA_HOME的tomcat(称为纯净版tomcat)进行测试,可以和商品文章中的tomcat共存在D盘中。纯净版tomcat下载地址为https://how2j.cn/frontdownload?bean.id=1177,然后将下载的压缩包还是解压在D盘根目录下,文件夹名称为tomcat_80,因为这个纯净版tomcat默认端口号为80。

需要说明的时,我是通过how2j来学习Javaweb的,笔记和资料都是基于how2j。

先看一下项目的效果

通过输入网址127.0.0.1/hello可以访问网页显示如下内容。

创建java项目j2ee

打开eclipse,file-other-java-javaproject,输入项目名称j2ee,不使用默认位置,而是将项目建立在E:projectj2ee下,然后finish。

导入必须的jar包

编写servelet需要用到servlet-api.jar 这个包里的相关类,而这个包位于D:tomcat_80libservlet-api.jar.

导入方式为:项目名上右键-properties-Java Build Path -Libraries-Add External JARs-浏览找到servelet-api.jar加入到里面-Apply and close

编写HelloServelet类

在eclipse中创建一个普通类,步骤为File-New-Class-需要注意的是要把默认包名删除掉-finish。

复制以下代码到HelloServelet.java中

import java.io.IOException;
import java.util.Date;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class HelloServlet extends HttpServlet{public void doGet(HttpServletRequest request, HttpServletResponse response){try {response.getWriter().println("<h1>Hello Servlet!</h1>");response.getWriter().println(new Date().toLocaleString());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

配置web.xml

现在j2ee项目下新建文件夹web
然后在web文件夹下新建文件夹WEB-INF
然后再WEB-INF中新建xml文件web.xml

复制下列代码到web.xml中

<?xml version="1.0" encoding="UTF-8"?>
<web-app><servlet><servlet-name>HelloServlet</servlet-name><servlet-class>HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping></web-app>

指定项目输出到classes目录

现在WEB-INF文件夹中新建文件夹classes。然后把项目的class文件输出默认路径由原来的j2ee/bin重新设置为j2ee/web/WEB-INF/classes。

修改方式为:项目名称上右键->properties->Java Build Path->Source->右下角的 Brower-> 指定位置是 j2ee/web/WEB-INF/classes。

【这么做是为什么?】:eclipse中默认class文件输出目录是bin目录下,但是tomcat启动后,默认去 WEB-INF/classes目录下去寻找文件,所以需要这样配置使得eclipse和tomcat兼容。

配置server.xml中的context

打开D:tomcat_80confserver.xml,在下列位置添加一句<Context path="/" docBase="e:projectj2eeweb" debug="0" reloadable="false" />

path="/"表示可以直接使用127.0.0.1/hello访问网页。

如果添加的语句使用的是<Context path="/j2ee" docBase="e:projectj2eeweb" debug="0" reloadable="false" />,那么必须使用127.0.0.1/j2ee/hello访问网页。

然后重启tomcat,即关闭已经打开的tomcat然后双击D:tomcat_80binsatrtup.bat,然后在浏览器中输入127.0.0.1/hello,可以看到正常访问,如下图

从一个servlet转发到另一个servlet_javaweb02-创建第一个Servlet相关推荐

  1. 在Microsoft Teams中,以一个已经存在的Team作为模板创建Team

    在Microsoft Teams中,创建Team的时候,可以通过选择一个已经存在的Team的方式,将这个已存在的Team作为模板来创建新的Team. 选择 Create a team using an ...

  2. 04 创建第一个Qt程序

    最新QT从入门到实战完整版 一.04 创建第一个Qt程序 来自 一.04 创建第一个Qt程序 好,那么刚才我们看到了Qt create的一单一些简单介绍之后呢,我们不可能只是对它进行一个简单的简介就完 ...

  3. 创建一个带参数的formgoup_基于原生Fabric-SDK-Go 实现一个简单的学历征信系统,状态数据库使用 CouchDB 来实现...

    [TOC] 1. 需求分析与架构设计 我们要基于 原生Fabric-SDK-Go 实现一个简单的学历征信系统(web项目),状态数据库使用 CouchDB 来实现. 1.1 需求分析 现在是一个信息化 ...

  4. 一步步的教你如何创建第一个APP?-swift

    准备好了么? 准备好创建你的第一个app了么? 在这个教程中,你会学习到如何创建一个简单的游戏,叫做"Tap me",游戏的玩法是看你在30秒之内可以点击按钮多少次,来给你评分. ...

  5. JSP 编译原理:JSP 是 Servlet?如何用 Eclipse 查看 JSP 编译生成的 Servlet 源文件?

    文章目录 前言 一.JSP 文件编译流程原理 二.创建并运行待测试 JSP 页面 三.查找 JSP 编译文件输出位置 3.1.打开动态项目运行配置 3.2.查看 JSP 编译文件输出位置 3.3.查看 ...

  6. 一个Servlet同一时刻只有一个实例。 当多个请求发送到同一个Servlet,服务器会为每个请求创建一个新线程来处理。

    Servlet是一种独立于操作系统平台和网络传输协议的服务器端的Java应用程序.  相同点:  1. 不是独立的应用程序,没有main()方法.  2. 不是由用户调用,由另一个应用程序(容器)调用 ...

  7. 【JavaEE】 IntelliJ IDEA 2022.2最新版Tomcat导入依赖详细教程全解及创建第一个Servlet程序

    目录 一.软件资源 二.放置settings.xml文件 三.创建项目 四.引入依赖 ​五.创建目录 六.编写代码 写在前面:☞What is Servlet? Servlet其实是一种实现动态页面的 ...

  8. 不用eclipse创建第一个servlet

    新建HelloWorld.java如下 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public cl ...

  9. IT兄弟连 JavaWeb教程 Servlet转发

    2019独角兽企业重金招聘Python工程师标准>>> Servlet对象由Servlet容器创建,并且Servlet对象的service()方法也由容器调用,一个Servlet对象 ...

最新文章

  1. LM393,LM741可以用作电压跟随器吗?
  2. java知识点8——垃圾回收原理和算法、通用的分代垃圾回收机制、 JVM调优和Full GC、开发中容易造成内存泄露的操作
  3. vim 设置编码方式
  4. (chap7 确保WEB安全的HTTPS) HTTPS和SSL
  5. 一度的让自己变得那么懒惰,不知道后路还会如何
  6. C# 枚举(Enum)
  7. JavaScript学习笔记:迷宫游戏
  8. python如何导入多个文件_在python中导入多个文件
  9. html视频播放 bootstrap,基于Bootstrap和jQuery的视频播放器插件
  10. AEJoy —— 介绍神奇的 10 个 AE 表达式附带 2 种简单的调试方法
  11. 撰写计算机专业调研报告,计算机实习调研报告.doc
  12. 计算机科学与技术影响因子排名,173个学科SCI期刊影响因子排名
  13. 奶爸日记1 - 特殊的日子里
  14. 读取excel标题、内容
  15. JavaWeb项目搭建准备工作
  16. 计算机毕业设计Java超市货品进销存系统后台(源码+系统+mysql数据库+lw文档)
  17. 基于Arduino、ESP8266的物联网项目开发方案整理、毕业设计(第一波)
  18. python怎样按某一列值拆分Excel表格
  19. Java 生成 OFD 文档
  20. 群论学习——几种基本的群

热门文章

  1. hive 集群初探,查询比较
  2. 简单说一下Nginx配置说明
  3. 网络地址和广播地址的作用
  4. Del.icio.us应用工具杂烩
  5. 基于SSM的餐饮工业化管理系统-计算机毕业设计
  6. VMware vSphere4.1看图识HA
  7. vue 1.0和vue 2.0的变化和区别
  8. PHP设计模式:观察者模式
  9. CSS实现鼠标移入图片边框有小三角
  10. Caused by: java.lang.NoSuchMethodException: onClick_Flashlight [class android.view.View]