不借助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 ...
随机推荐
- Linux 配置ODBC连接Oracle
在使用kdb_database_link 扩展插件连接Oracle数据库时,必须先配置ODBC,确保通过ODBC能连接Oracle数据库.以下是配置ODBC的过程. 一.安装ODBC 1.安装 [ro ...
- 记一次 Sedona(GeoSpark) 空间计算优化
项目需求需要空间计算能力,开始选型Sedona(GeoSpark)来完成, 需求需要每一条数据在满足某条件的情况下,去查找某张表进行空间匹配,找到离这个点(point)最近的一条道路(lineStri ...
- Windows LDAP加固之LDAP over SSL和通道绑定
很多网络通信都可以用SSL来加密的,LDAP也不列外,同样可以用SSL加密. LDAPS使用的证书必须满足以下几个条件: 1.证书的增强性密钥用法中必须有服务器身份验证Server Authentic ...
- YAML资源清单
YAML 文件基本语法格式 在 Docker 环境下面我们是直接通过命令 docker run 来运行我们的应用的,在 Kubernetes 环境下面我们同样也可以用类似 kubectl run 这样 ...
- kubernetes 调度器
调度器 kube-scheduler 是 kubernetes 的核心组件之一,主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将 Pod 调度到最优的工作节点上面去,从而更加合理.更加充分 ...
- Traefik2.X 版本 中 URL Rewrite 的使用
文章转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247484594&idx=1&sn=becbe567 ...
- 生产管理ERP哪一款比较好?
生产管理用的是MES,企业管理用的才是ERP,这个得弄清楚!如果要谈生产管理,每家工厂的区别.差异性更大,在工厂甲用得很好的管理系统搬到工厂乙,大概率水土不服,不是软件本身的问题,而是生产的产品.部件 ...
- 洛谷U81904 【模板】树的直径
有负边权,所以用树形DP来找树的直径. 1 //树形DP求树的直径 2 #include<bits/stdc++.h> 3 using namespace std; 4 const int ...
- 洛谷P5788 单调栈(模板)
1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=3e6+10; 4 int n,a[N],s[N],ans[N ...
- Docker容器虚拟化
Docker容器虚拟化 目录 Docker容器虚拟化 虚拟化网络 单节点容器间通信 不同节点容器间通信 虚拟化网络 Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化 ...