不借助idea开发工具构建一个Javaweb项目
不借助idea开发工具构建一个Javaweb项目
目录结构
webappsroot
|----------WEB-INF
|----------classes(存放字节码)
|----------lib(存放第三方jar包)
|----------web.xml(注册Servlet)
|---------html
|---------css
|---------javascript
|---------image
...............
开发步骤
(1)构建目录
创建一个根目录,
my-first在根目录下构建一个
WEB-INF目录,(必须大写,是Servlet中的规范)在
WEB-INF目录下新建classes,lib目录和一个web.xml文件<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"> </web-app>
(2)编写Java程序
这个程序必须实现Servlet接口
import jakarta.servlet.Servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.ServletConfig;
import java.io.IOException;
public class MyFirstServlet implements Servlet{
public void init(ServletConfig var1) throws ServletException{
}
public ServletConfig getServletConfig(){
return null;
}
public void service(ServletRequest request,ServletResponse response)
throws ServletException, IOException{
System.out.println("My First Servlet, Hello Servlet");
}
public void destroy(){
}
public String getServletInfo(){
return "";
}
}
注意这个Servlet接口不在JDK中(Servlet不是JavaSE了,Servlet属于JavaEE,是另一套类库)
Tomcat服务器实现了Servlet规范,可以在Tomcat服务器的lib目录下看到一个servlet-api.jar,解压这个jar包,可以找到一个Servlet.class文件

从JakartaEE9开始,Servlet接口名全变了:
javax.servlet.Service---->jakarta.servlet.Servlet
(3)编译MyFirstServlet
配置环境变量CLASSPATH,添加.;D:\dev\apache-tomcat-10.0.18\lib\servlet-api.jar
注意:配置CLASSPATH和Tomcat服务没有关系,配置环境变量只是为了让你可以正常编译MyFirstServlet.java文件生成MyFirstServlet.class文件

将MyFirstServlet.class文件拷贝到my-first\WEB-INF\classes目录下

(4)编写配置信息
在web.xml文件中编写配置信息吗,将请求路径和Servlet类名关联在一起
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>MyFirst</servlet-name>
<!-- 要填全限定名称 -->
<servlet-class>MyFirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<!-- 要和上面的servlet-name保持一致 -->
<servlet-name>MyFirst</servlet-name>
<!-- 这个随便取,但是必须是以 / 开始 -->
<url-pattern>/myfirst</url-pattern>
</servlet-mapping>
</web-app>
(5)启动Tomcat服务器
开启服务:打开DOS窗口,执行
startup.bat命令打开浏览器,在地址栏输入:http://localhost:8080/my-first/myfirst

总结
之前都是用idea开发的,它帮助我们做了很多事情,项目中有很多细节都不知道。在没idea的帮助下,新建一个JavaWeb项目,对整个项目是怎么运作的更加清晰了。
idea虽然很方便,但是对于刚刚学习的人说,我觉得反而是件坏事情,会留下很多隐患。
不借助idea开发工具构建一个Javaweb项目的更多相关文章
- 不借助vue-cli,自行构建一个vue项目
前言: 对于刚刚接触vue的同学来说,直接用官方的构建工具vue-cli来生成一个项目结构会存在一些疑惑,比如: .vue组件 为什么可以写成三段式(tempalte.script.style)? ...
- 怎用不用工具创建一个javaWeb项目
整体步骤是: 1: 新建一个文件夹: 以项目名称命名 2:在新建的文件夹下再新建一个文件夹 WEB-INF (注意:大小写) 和 一个文件 index.jsp : index.jsp里面的代码: ...
- javaweb开发2.新建一个javaweb项目
1.File → New → Dynamic Web Project 2.创建一个Dynamic Web Project 3.点击“Next”下一步 4.点击“Next”下一步 5.点击“Finish ...
- (转)一个JavaWeb项目开发总结
原文地址:http://www.cnblogs.com/lzb1096101803/p/4907775.html 一.学会如何读一个JavaWeb项目源代码 步骤:表结构->web.xml-&g ...
- 一个JavaWeb项目开发总结
一.学会如何读一个JavaWeb项目源代码 步骤:表结构->web.xml->mvc->db->spring ioc->log->代码 先了解项目数据库的表结构,这 ...
- 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字“Hello Android”,并将应用程序的名称更改为“FirstApp”。
需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字"Hello Android",并将应用程序的名称更改为"Firs ...
- 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行
需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行 实现步骤: 打开 Android Studio,创建一个 Andr ...
- 利用 vue-cli 构建一个 Vue 项目
一.项目初始构建 现在如果要构建一个 Vue 的项目,最方便的方式,莫过于使用官方的 vue-cli . 首先,咱们先来全局安装 vue-cli ,打开命令行工具,输入以下命令: $ npm inst ...
- 快速构建一个vue项目
首先介绍一下命令行构建一个vue项目步骤: 1.下载安装node.js(直接运行安装包根据步骤安装完),打开命令行输入:node -v ,出现版本号即安装成功. 2.命令行界面输入:cnpm inst ...
- Eclipse的maven构建一个web项目,以构建SpringMVC项目为例
http://www.cnblogs.com/javaTest/archive/2012/04/28/2589574.html springmvc demo实例教程源代码下载:http://zuida ...
随机推荐
- XXL-JOB最佳实践与升级指南
前言: xxl-job是国内一款使用者比较多的分布式任务调度平台,我们内部从19年开始使用该款开源软件,使用的是2.0.1版本,并在此基础上做了二次开发,添加了一些定制化的功能.随着使用该定时器的业务 ...
- JAVA反序列化漏洞修复解决方法
MyObject类建立了Serializable模块,而且重新写过了readObject()变量,仅有建立了Serializable模块的类的目标才能够被实例化,沒有建立此模块的类将无法使他们的任意状 ...
- KingbaseES R6 集群修改物理IP和VIP案例
在用户的实际环境里,可能有时需要修改主机的IP,这就涉及到集群的配置修改.以下以例子的方式,介绍下KingbaseES R6集群如何修改IP. 一.案例测试环境 操作系统: [KINGBASE@nod ...
- Java开发学习(三十四)----Maven私服(二)本地仓库访问私服配置与私服资源上传下载
一.本地仓库访问私服配置 我们通过IDEA将开发的模块上传到私服,中间是要经过本地Maven的 本地Maven需要知道私服的访问地址以及私服访问的用户名和密码 私服中的仓库很多,Maven最终要把资源 ...
- 第二章:视图层 - 9:动态生成CSV文件
CSV (Comma Separated Values),以纯文本形式存储数字和文本数据的存储方式.纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样的数据.CSV文件由任意数目的记录组成,记 ...
- 类似-Xms、-Xmn这些参数的含义
答: 堆内存分配: JVM初始分配的内存由-Xms指定,默认是物理内存的1/64 JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4 默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的 ...
- Service中spec.type 字段的值:ClusterIP和NodePort理解
ClusterIP(默认) 在群集中的内部IP上公布服务,这种方式的 Service(服务)只在集群内部可以访问到 [root@master ~]# kubectl get service -n te ...
- SonarQube 的安装、配置及 Maven 项目的使用
转载自:https://cloud.tencent.com/developer/article/1010612 1.SonarQube 介绍 SonarQube 是一个用于管理源代码质量开放平台,它可 ...
- 使用Gitlab的CI/CD功能自动化推送docker镜像到Nexus仓库出现的问题
在服务器中可以直接使用命令行登录,推送docker镜像等 但是在使用Gitlab的CI/CD功能中,gitlab-ci.yml文件执行过程中出现如下错误: 原因分析: 服务器上之前使用命令行登陆过Ne ...
- 史上最全的selenium三大等待介绍
一.强制等待 1.设置完等待后不管有没有找到元素,都会执行等待,等待结束后才会执行下一步 2.实例 driver = webdriver.Chrome() driver.get("https ...