Servlet 项目创建和部署

news2024/12/27 10:22:22

目录

创建步骤:

1.创建项目

​编辑2. 引入依赖

3.创建目录,复制内容

4.编写代码

 5.打包

6.部署

7.验证

简化:

常见报错情况:

1.端口占用

2.路径错误

3.405 

4.500 服务器代码抛出异常

5.依赖没下载好


创建步骤:

1.创建项目

正常创建项目,在New Project 页面选择Maven,然后 Next. 

2. 引入依赖

去中央仓库复制依赖路径【路径已准备好】,然后复制到pom.xml文件中

 

3.创建目录,复制内容

<!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>Archetype Created Web Application</display-name>
</web-app>

4.编写代码

注意:要先删除父类调用,然后写自己的代码,加上@WebServlet注解

 5.打包

注意:普通的java程序 打成 jar包

           部署给Tomcat的程序打成 war 包,(里面会有一些特定的目录结构和文件,tomcat需要识别这些内容,来加载webapp)

修改打包格式和包名的代码

// 在project标签下方写,war是打包的格式,XXXXX是打出来的包的文件名,自己设置
<packaging>war</packaging>  
<build>
    <finalName>XXXXX</finalName>
</build>

右侧,Maven 选项卡中选择package,双击,等待打包成功,显示如下: 

 

左侧文件目录中出现打好的包

 

6.部署

复制war包到tomcat的bin的webapps中。

7.验证

1)在tomcat的bin目录中,双击startup.bat ,启动tomcat

【这个tomcat部署项目中说过详细的过程】

2)网页访问


简化:

借助ideal的插件可以简化第5,6 步,也就是说按照下面简化的方式,写完代码就可以直接运行访问了。

安装完成以后

点击右上角

点击右上角绿色三角形,运行就ok了


常见报错情况:

1.端口占用

注意可能会出现端口占用报错,把之前打开的tomcat关了就行(或者你别的程序占用了修改端口就行)

查看端口占用代码:

netstat -aon|findstr 8080

8080是端口号,咱们这里查找8080端口的情况,下面杀死占用8080端口的进程

杀死进程

tasklist|findstr 3112

2.路径错误

404表示浏览器访问的资源服务器上不存在

可能得错误原因:

1.请求路径写错了

127.0.0:8080/content paxh/要运行的注解上的路径

2.路径写对了,但是war包没有被正确的加载 【 web.xml 写错了,如果有两Servlet 的 Servlet Path 相同】

3.405 

发请求的方法和代码不匹配 ,比如发的是 doPost ,写的是 get请求

方法和代码对了,但是没有删掉 super.doXXX

4.500 服务器代码抛出异常

可以通过打印信息,仔细观察异常调用栈

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String s = null;
resp.getWriter().write(s.length());
}
}

5.依赖没下载好

 解决:点击这个,刷新等待下载完成

6.出现“空白页面”

修改代码, 去掉 resp.getWritter().write() 操作
 

7.出现“无法访问此网站”

⼀般是 Tomcat 启动就失败了
注意检查路径,经常是Servlet Path 写错了


以上就是本文分享的全部内容了,关注小亭子,一起学编程~~~

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

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

相关文章

标注一致性计算

在统计学中&#xff0c;标注一致性&#xff08;Inter-annotation agreement, IAA&#xff09;用于评价独立观察者之间对同一现象进行评估时的一致程度。因此&#xff0c;本文讨论最多的是多位标注员对相同数据进行标注时的一致性评估方法。 一、Kappa统计量 评估一致性最简单…

Mysql高级篇(面试必看)

Mysql高级篇知识点&#xff0c;全篇手打&#xff0c;大家觉得有用的话点一个赞&#xff0c;持续更新 目录 1.Mysql锁的机制&#xff1a;粒度分类&#xff0c;思想分类&#xff0c;实现分类&#xff0c;状态分类&#xff0c;算法分类 2.Mysql的隔离级别&#xff1a;读未提交&…

视觉SLAM学习路线思维导图

整理了一下视觉SLAM学习路线的思维导图&#xff0c;防遗忘&#xff0c;不足的地方也希望各路大神能够不吝赐教。

Nginx(2)静态资源部署

静态资源 静态资源的配置指令静态资源优化配置静态资源压缩Gzip模块配置指令Gzip压缩功能的实例Gzip和sendfile共存问题gzip_static测试使用 静态资源的缓存处理浏览器缓存相关指令 Nginx的跨域问题解决静态资源防盗链防盗链的实现原理防盗链的具体实现 上网搜索访问资源是通过…

Java15——枚举类、注解、作业

1. 枚举类 跳了很多。。。 2. 注解 3. 作业 1. 注意&#xff1a;所有类共享静态属性 所以结果是 9&#xff0c;red 100&#xff0c;red package com.zsq.homework1;public class HM1 {public static void main(String[] args) {Cellphone cellphone new Cellphone();cel…

Java面试题大全(23年整理版)最新全面技巧讲解

程序员面试背八股&#xff0c;可以说是现在互联网开发岗招聘不可逆的形式了&#xff0c;其中最卷的当属 Java&#xff01;&#xff08;网上动不动就是成千上百道的面试题总结&#xff09;你要是都能啃下来&#xff0c;平时技术不是太差的话&#xff0c;面试基本上问题就不会太大…

如何在 MATLAB 中进行图像分割(matlab仿真与图像处理系列第7期)

在 MATLAB 中进行图像分割有多种方法,下面介绍一些常用的方法: 基于阈值的二值化分割这是一种最简单的分割方法,将图像分为两个部分:背景和前景。其主要思想是,选择一个阈值,将图像中的像素值与阈值进行比较,将像素值大于阈值的像素标记为前景(白色),将像素值小于阈值…

自动化测试练手项目推荐

最近收到许多自学自动化测试的小伙伴私信&#xff0c;学习了理论知识后&#xff0c;却没有合适的练手项目。 测试本身是一个技术岗位&#xff0c;如果只知道理论&#xff0c;没有实战经验&#xff0c;在面试中很难说服面试官&#xff0c;比如什么场景下需要添加显示等待&#x…

小白用旧手机搭建web服务器(一):实现局域网访问

1、首先要拥有一部安卓手机 2、下载ksweb 我们需要下载ksweb这款app&#xff0c;这是一位俄罗斯大神制作的&#xff0c;里面集成了Lighttpd、nginx、Apache的服务器&#xff0c;还有mysql服务器等&#xff0c;十分强大。 下载地址&#xff1a;KSWEB_3-93_kill_无ad.apk - 蓝…

大数据技术生态体系

6 大数据技术生态体系 图中涉及的技术名词解释如下: 1)Sqoop:Sqoop 是一款开源的工具,主要用于在 Hadoop、Hive 与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进…

GPIO复用功能1——定时器输入捕获

文章目录 前言定时器输入捕获红外接收的数据分析捕获思路编程实践1.初始化时钟2.初始化GPIO3.配置定时器的时钟基准4.配置输入捕获参数5.中断配置6.中断服务函数7.处理数据帧 实现效果 总结 前言 前面介绍了GPIO的通用输入输出功能&#xff0c;以及其模拟时序的功能&#xff0c…

软件模拟实现SPI通信-GD32

软件模拟实现SPI通信-GD32 设计流程 #ifndef _SOFT_SPI_H #define _SOFT_SPI_H /** filename: soft_spi.h**/ #include "gd32f10x.h" #include "systick.h"//定义表示具体IO口的资源宏 #define SPI_PORT GPIOA #define SPI_MOSI GPIO_PIN_7 #define SP…

【华为OD机试】翻转骰子(python, java, c++, js)

翻转骰子 前言:本专栏将持续更新华为OD机试题目,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你。关于OD机试流程、面经、面试指导等,如有任何疑问,欢迎联系我,wechat:steven_moda;email:nansun0903@163.com;备注:CSDN。 题目描述 骰子是…

java中的knife4j、Swagger配置过程详解

knife4j的配置过程如下&#xff1a; 1、首先引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency> <dependency><groupId>com.github…

CentOS Linux的替代品(四)_openEuler 22.03-LTS基础安装教程

文章目录 1 openEuler 22.03-LTS简介1.1 系统安装1.1.1 发布件1.1.2 最小硬件要求1.1.3 硬件兼容性 1.2 关键特性1.2.1 openEuler 22.03-LTS基于 Linux Kernel 5.10内核构建, 在进程调度、内存管理等方面带来10余处创新1.2.2 新介质文件系统1.2.3 内存分级扩展1.2.4 用户态协议…

Clouder Manager日常管理及使用

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

低代码:解放生产力的利器还是一场空洞的炒作?

低代码有人说是毒瘤&#xff0c;也有人说是银弹。到底应该怎么看呢&#xff1f;存在即合理。 “存在”包括两个角度&#xff1a; 银弹论毒瘤论 无论从哪个角度看&#xff0c;既然存在这样的论调&#xff0c;就有它们的合理性。 先把关注点移到低代码本身&#xff0c;低代码…

关联查询和子查询

关联查询和子查询&#xff1a; 二、关联查询&#xff1a; 1、全连接&#xff1a;两个表作笛卡尔积 2、内连接&#xff1a;找到两个表中的关联数据 3、外连接&#xff1a; 左外连接&#xff1a;grade中12无学生&#xff0c;但是还是会显示出来&#xff08;以左边的表为基准&am…

javascript 触发事件

在 JavaScript 中&#xff0c;原始方法 initEvent() 用于创建新事件。 最新更新添加了用于构建自定义事件的新关键字。 此外&#xff0c;在为 JavaScript 构建的清单中还有大量事件。 以下部分将预览预定义事件之一的示例及其触发方式。 还有一个定制的事件&#xff0c;将细节…

Redis 高可用【主从复制 哨兵 集群】

主从复制&#xff1a;主从复制是高可用Redis的基础&#xff0c;哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份&#xff0c;以及对于读操作的负载均衡和简单的故障恢复。缺陷&#xff1a;故障恢复无法自动化&#xff1b;写操作无法负载均衡&am…