如何开发 Servlet 程序

文章目录

  • 如何开发 Servlet
    • 步骤 1:写一个类
    • 步骤 2:编译
    • 步骤 3:打包
    • 步骤 4:部署
    • 步骤 5:启动服务器
    • 步骤 6:访问 servlet
  • Servlet 开发示例
    • 不使用 IDE 开发(手动编译和部署)
      • 步骤 1:导入需要的 jar 包
      • 步骤 2:写一个 Java 类
      • 步骤 3:编译
      • 步骤 4:打包
      • 步骤 5:部署
      • 步骤 6:启动服务器,访问 servlet
    • 使用 IDE 开发
      • 步骤 1:新建 Web Project(Web 工程)
      • 步骤 2:填写“Project Name”
      • 步骤 3:新建一个 Java 类
      • 步骤 4:新建 web.xml
      • 步骤 5:部署项目到 tomcat 服务器
      • 步骤 6:访问 tomcat 服务器上的 Servlet 实例
    • 自动部署说明
    • Source folder
  • Servlet 优化重构

如何开发 Servlet

步骤 1:写一个类

此类实现 Servlet 接口或者继承自 HttpServlet 抽象类,需要重写 service 方法,该方法无返回值。这个方法需要 2 个参数,一个是 HttpServletRequest 对象,一个是 HttpServletResponse 对象,这两个对象会由 Tomcat 自动生成,方法内执行的主要任务是从 request 对象获得参数等数据,并访问有关数据库,然后将结果写入 response 中,容器(Tomcat)会从 response 中获得数据并传送给浏览器。

注:servlet 只能使用 java 语言来编写

步骤 2:编译

使用 IDE 编译或者终端命令编译源码文件

[root@linux ~]# javac -cp Servlet-api.jar -d . HelloServlet.java

命令说明:
HelloServlet.java 编译后的 .class 文件存放在当前目录下,且编译中需要的类文件,编译器可以在 Servlet-api.jar 中查找,该jar文件存放在 HelloServlet.java 所在目录下。

步骤 3:打包

建立一个如下的目录结构

-- appname-- WEB-INF-- classes     存放 .class 文件-- lib         存放 .jar 文件,该目录可选-- web.xml     部署描述文件

注:该目录结构可以使用 jar 命令打成一个.war 为后缀的文件

步骤 4:部署

将第三步的整个目录结构或者是对应的.war 文件拷贝到服务器特定的目录

步骤 5:启动服务器

步骤 6:访问 servlet

http://ip:port/appname/servlet 的 url-pattern 配置

Servlet 开发示例

不使用 IDE 开发(手动编译和部署)

步骤 1:导入需要的 jar 包

在 D:\ 盘新建 work 目录将 tomcat 目录 common\lib 下的 servlet-api.jar 拷贝到 work 目录下

在这里插入图片描述

在这里插入图片描述

步骤 2:写一个 Java 类

使用编辑器写一个 java 类 HelloServlet.java(编译这个类需要 servlet-api.jar 包)

在这里插入图片描述
目录结构:
在这里插入图片描述

步骤 3:编译

编译 HelloServlet.java

  1. 启动终端

在这里插入图片描述
2) 进入 d:盘 work 目录,编译 HelloServlet.java
在这里插入图片描述

编译命令参数含义:

  1. -cp 表示告诉 Java 编译器去哪里找需要的 class 文件(到 servlet-api.jar 的 jar 包中找)
  2. -d . 表示将编译生成的字节码文件放入当前文件夹下

目录结构(在当前目录下生成编译好的字节码文件)

在这里插入图片描述

步骤 4:打包

只是根据规则创建一个目录结构,把字节码文件放在指定目录中,然后 xml 文件中描述好部署信息

  1. 在工作区 work 目录下新建 helloweb 目录

在这里插入图片描述

  1. 建立一个如下的目录结构
-- appname-- WEB-INF-- classes   存放.class 文件-- lib       存放.jar 文件,该文件夹可选-- web.xml   部署描述文件

在这里插入图片描述

  1. 将编译好的 first.HelloWeb.java 拷贝到 helloweb/WEB-INF/classes 目录下

在这里插入图片描述
4) 编辑 web.xml

拷贝 D:\apache-tomcat-5.5.23\webapps\servlets-examples\WEB-INF\web.xml 作为 模板

在这里插入图片描述

步骤 5:部署

将 helloweb 目录拷贝到 tomcat 的 webapps 目录下

在这里插入图片描述

步骤 6:启动服务器,访问 servlet

http://ip:port/appname/servlet 的 url-pattern 配置

在这里插入图片描述

使用 IDE 开发

步骤 1:新建 Web Project(Web 工程)

在这里插入图片描述

步骤 2:填写“Project Name”

其他选项默认,点击“finish”

在这里插入图片描述

Web 工程的目录结构

在这里插入图片描述

步骤 3:新建一个 Java 类

在这里插入图片描述
在这里插入图片描述

目录结构

在这里插入图片描述

步骤 4:新建 web.xml

在这里插入图片描述

步骤 5:部署项目到 tomcat 服务器

  1. 点击工具栏“Deploy MyEclipse J2EE Project to Server”按钮

在这里插入图片描述

  1. 弹出对话框“Project Deployments”

在这里插入图片描述

  1. 点击“Add”按钮,弹出“New Deployment”对话框 选择“Tomcat 5.x”,点击“Finish”

在这里插入图片描述

  1. 出现如下界面,点击“OK”

在这里插入图片描述

说明:
在对话框“Project Deployments”对话框有 4 个按钮,常用的为:

1. “Add”按钮              在tomcat服务器上增加新应用
2. “Remove”按钮           删除tomcat服务器上的新应用
3. “Redeploy”按钮         重新部署该应用,一般每次修改后都需要重新部署一下

注意:
先启动服务,再部署项目,或者先部署,再启动服务器都可以

步骤 6:访问 tomcat 服务器上的 Servlet 实例

输入 http://localhost:8080/web01/sayHello?name=xiaoxiao

在这里插入图片描述

MyEclipse 控制台显示

在这里插入图片描述
说明:
IDE 工具简化了 Servlet 的开发步骤

第1步 写一个 java 类              手动
第2步 编译                       自动
第3步 打包                       自动
第4步 部署                       手动
第5步 启动服务器,访问 servlet     手动

自动部署说明

在这里插入图片描述

自动部署的时候,会先自动打包,根据上图的配置,打包时会找到 Web root folder (这个目录有固定的结构),将这个目录下内容进行打包,且把名称设置为 Project Name 的名称, 接着将 Context root URL 的路径填入 tomcat 中的 server.xml 文件中,映射到实际的工程根目录。

Project Name 和 Context root URL 可以不一致,服务器会根据 server.xml 的配置信息找到 Web 工程。

例如:用户访问 /sm,服务器会去 E:\Workspaces\student-management\WebRoot 目录下获取资源

path="/sm" docBase="E:\Workspaces\student-management\WebRoot"

Source folder

标记为 Source folder 的目录,是告诉 IDE,此目录存放着可以编译的源码文件,IDE 自动编译时,就会让编译器到此目录下找到源文件完成编译

Servlet 优化重构

Servlet 类中的 out.println() 不要再写了,用 JSP 来完成
Servlet 类中的 JDBC 代码不要写了,用 DAO、工厂类代替

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

报任安书文言现象_语文老师精心总结【文言文常考点】够你从初一用到初四!...

点击本号菜单栏 免费获取学习资料▼今天给大家整理了初中文言文的一些常用知识点:特殊句式和古今异义,这些只是文言文学习模块中的一部分,除此之外,其他大家需要在平时积累的文言文知识点有下面这些:文言文高频词、古代…

参数化测试 junit_JUnit 5 –参数化测试

参数化测试 junitJUnit 5令人印象深刻,尤其是当您深入研究扩展模型和体系结构时 。 但是从表面上讲,编写测试的地方,开发的过程比革命的过程更具进化性 – JUnit 4上没有杀手级功能吗? 幸运的是,至少有一个&#xff1a…

devexpress textedit调整文字何文本框的间距_手把手教学:用PPT做效果超赞的文字效果...

本文总计:2391 字预计阅读时间:6 分钟昨天文章的头图,貌似反馈还不错,挺多人比较感兴趣。所以,今天就分享一下,这种文字排版效果,是怎么做出来的。而且今天的实现手法与效果,做了一些…

IntelliJ IDEA for Mac 如何取消双击shift键打开全局搜索弹窗

取消双击shift键打开全局搜索弹窗 按ShiftcmdA,打开如下图的搜索框: 输入Registry搜索后打开如下的窗口: 3. 找到“ide.suppress.double.click.handler”,将后面的复选框勾上,勾选上复选框后直接关闭退出,…

vb6 判断打印机是否有效_吊打面试官 | 算法之如何判断括号是否有效?

今天要讲的这道题是 bilibili 今年的笔试真题,也是一道关于栈的经典面试题。经过前面文章的学习,我想很多朋友已经看出来了,我接下来要写的是一个关于「算法图解」的系列文章,中间可能会穿插少量的其他类型的文章,但「…

如何理解字符编码

一直有个困惑,为什么计算机系统搞那么多字符编码,就一个Unicode统一天下不就得了,后来看了篇文章,才多少理解一丁点。 英语的国家,只要一个字节就可以表示全部的字符,一个无符合的字节可以表示256个字符&a…

框架下载_25. Scrapy 框架-下载中间件Middleware

1. Spider 下载中间件(Middleware)Spider 中间件(Middleware) 下载器中间件是介入到 Scrapy 的 spider 处理机制的钩子框架,您可以添加代码来处理发送给 Spiders 的 response 及 spider 产生的 item 和 request2. 激活一个下载DOWNLOADER_MIDDLEWARES要激活一个下载…

android activity 显示无焦点_Android面试题集锦之fragemnt

大家可以关注一下小编,小编以后会一直更新Android相关技术资料文章。创建方式静态创建首先我们需要创建一个xml文件,然后创建与之对应的java文件,通过onCreatView()的返回方法进行关联,最后我们需要在Activity中进行配置相关参数即…

node 安装_VUE项目迁移之node.js的安装

【摘要】由于公司的项目需要迁移到VUE中去, 所以就用到了node.js, 这里简单整理了一下node.js的安装教程和环境变量的配置【作者】田鋆鹏Node.js 安装教程1. 在node.js的官网下载安装包下载地址1: https://nodejs.org/en/下载地址2: http://nodejs.cn/直接下载.msi的安装包即可…

jsp mysql servlet_JSP+Servlet+JDBC+mysql实现的学生成绩管理系统

本系统基于JSPServletMysql一个基于JSPServletJdbc的学生成绩管理系统。涉及技术少,易于理解,适合JavaWeb初学者学习使用。难度等级:入门技术栈编辑器Eclipse Version: 2019-12 (4.14.0)前端技术基础:htmlcssJavaScript框架&#…

mariadb mysql 配置文件_MariaDB/MySQL配置文件my.cnf解读

MariaDB/MySQL的默认设置性能非常差,仅仅起一个功能测试的作用,不能用在生产环境中,因此要对一些参数进行调整优化。当然,对配置文件各参数的调整需要根据实际环境,不同时期不同数量级的数据进行性能优化。MySQL/Maria…

react 事件处理_在React中处理事件

react 事件处理在使用React渲染RESTful服务后,我们创建了简单的UI,用于渲染从RESTful服务获取的员工列表。 作为本文的一部分,我们将扩展同一应用程序以支持添加和删除员工操作。 我们将通过添加/删除员工操作来更新react-app后端api&#x…

多元回归求解 机器学习_金融领域里的机器学习算法介绍:人工神经网络

人工智能的发展在很大程度上是由神经网络、深度学习和强化学习推动的。这些复杂的算法可以解决高度复杂的机器学习任务,如图像分类、人脸识别、语音识别和自然语言处理等。这些复杂任务一般是非线性的,同时包含着大量的特征输入。我们下面我们将分几天的…

apache ignite_使用Spring Data的Apache Ignite

apache igniteSpring Data提供了一种统一而简便的方法来访问不同类型的持久性存储,关系数据库系统和NoSQL数据存储。 它位于JPA之上,添加了另一层抽象并定义了基于标准的设计以在Spring上下文中支持持久层。 Apache Ignite IgniteRepository实现了Spri…

java事件处理过程分布写_Java 9中的进程处理

java事件处理过程分布写一直以来,用Java管理操作系统进程都是一项艰巨的任务。 这样做的原因是可用的工具和API较差。 老实说,这并非没有道理:Java并非旨在达到目的。 如果要管理OS进程,则可以使用所需的Shell,Perl脚本…

mac mysql5.7.9 dmg_Mac 安装 mysql5.7

mac 安装msql 5.7最近使用Mac系统,准备搭建一套本地web服务器环境。因为Mac系统没有自带mysql,所以要手动去安装mysql,本次安装mysql最新版5.7.28。安装步骤参考以下博客https://www.jianshu.com/p/71f81a0c62b2安装成功后,因为密…

安卓系统dicom阅读器_用户分享:电子书阅读器Note Pro,一座贴心的移动图书馆...

本文转载自“什么值得买”官网用户“小良读书”,经作者授权转载。Note Pro,一座贴心的移动图书馆移动图书馆貌美的小书郎10.3寸高清大屏更适合专业书籍的阅读如果说多年前入手了一台kindle paperwite3电纸书阅读器,它让我畅游了书籍的江河&am…

vim 编辑器命令整理

文章目录一、基本使用流程二、普通命令模式(一)切换到插入模式(编辑/写入/输入)(二)切换到可视模式(选择文本模式)(三)切换至底行命令模式(四&…

activiti dmn_端到端BPM(带有DMN标记)

activiti dmn下周的红帽峰会即将成为有史以来最好的峰会之一! 而且,如果您是Drools或jBPM的狂热者,您会很忙 :Signavio和Red Hat之间的合作伙伴关系是我们为您准备的另一个顶级演讲。 邓肯道尔(Duncan Doyle&#xff…

netbeans 9_NetBeans 9抢先体验

netbeans 9Java 9即将来临,NetBeans 9也即将来临。在本文中,我们将看到NetBeans 9 Early Access为开发人员提供的支持,以帮助他们构建Java 9兼容的应用程序。 Java 9提供了许多(大约90种) 新功能,包括模块…