不借助idea开发工具构建一个Javaweb项目

目录结构

webappsroot
|----------WEB-INF
|----------classes(存放字节码)
|----------lib(存放第三方jar包)
|----------web.xml(注册Servlet)
|---------html
|---------css
|---------javascript
|---------image
...............

开发步骤

(1)构建目录

  • 创建一个根目录,my-first

  • 在根目录下构建一个WEB-INF目录,(必须大写,是Servlet中的规范)

  • WEB-INF目录下新建classeslib目录和一个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项目的更多相关文章

  1. 不借助vue-cli,自行构建一个vue项目

    前言: 对于刚刚接触vue的同学来说,直接用官方的构建工具vue-cli来生成一个项目结构会存在一些疑惑,比如:   .vue组件 为什么可以写成三段式(tempalte.script.style)? ...

  2. 怎用不用工具创建一个javaWeb项目

    整体步骤是: 1: 新建一个文件夹:  以项目名称命名 2:在新建的文件夹下再新建一个文件夹 WEB-INF  (注意:大小写) 和 一个文件  index.jsp : index.jsp里面的代码: ...

  3. javaweb开发2.新建一个javaweb项目

    1.File → New → Dynamic Web Project 2.创建一个Dynamic Web Project 3.点击“Next”下一步 4.点击“Next”下一步 5.点击“Finish ...

  4. (转)一个JavaWeb项目开发总结

    原文地址:http://www.cnblogs.com/lzb1096101803/p/4907775.html 一.学会如何读一个JavaWeb项目源代码 步骤:表结构->web.xml-&g ...

  5. 一个JavaWeb项目开发总结

    一.学会如何读一个JavaWeb项目源代码 步骤:表结构->web.xml->mvc->db->spring ioc->log->代码 先了解项目数据库的表结构,这 ...

  6. 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字“Hello Android”,并将应用程序的名称更改为“FirstApp”。

    需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字"Hello Android",并将应用程序的名称更改为"Firs ...

  7. 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行

    需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,并在 Genymotion 模拟器上运行 实现步骤: 打开 Android Studio,创建一个 Andr ...

  8. 利用 vue-cli 构建一个 Vue 项目

    一.项目初始构建 现在如果要构建一个 Vue 的项目,最方便的方式,莫过于使用官方的 vue-cli . 首先,咱们先来全局安装 vue-cli ,打开命令行工具,输入以下命令: $ npm inst ...

  9. 快速构建一个vue项目

    首先介绍一下命令行构建一个vue项目步骤: 1.下载安装node.js(直接运行安装包根据步骤安装完),打开命令行输入:node -v ,出现版本号即安装成功. 2.命令行界面输入:cnpm inst ...

  10. Eclipse的maven构建一个web项目,以构建SpringMVC项目为例

    http://www.cnblogs.com/javaTest/archive/2012/04/28/2589574.html springmvc demo实例教程源代码下载:http://zuida ...

随机推荐

  1. AtCoder Beginner Contest 264(D-E)

    D - "redocta".swap(i,i+1) 题意: 给一个字符串,每次交换相邻两个字符,问最少多少次变成"atcoder" 题解: 从左到右依次模拟 # ...

  2. GNSS模块使用笔记

    目录 目录 GNSS芯片 NMEA0183 协议 指令 GNSS TO MCU MCU TO GNSS GNSS芯片 ATGM336H-5N31(GPS+BDS双模) 原理图 NMEA0183 协议 ...

  3. 【设计模式】Java设计模式 - 动态代理

    [设计模式]Java设计模式 - 动态代理 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 一个有梦有戏的人 @怒放吧德德 最近工作比较忙,没啥时间学习 目录 [设计模 ...

  4. KingbaseESV8R3对于order by null列的处理

    背景 客户遇到一个现象order by 列是null的时候,最后一行总是显示相同的值.不要问我为什么对空值排序,意义何在?客户代码如此,客户不愿意改代码,作为dba大家都懂的.客户认为即使对null排 ...

  5. Linux安装Minio

    Linux安装Minio 一.安装包方式安装 1.下载minio 1.1 手动下载:https://docs.min.io/docs/minio-quickstart-guide.html ​ 访问上 ...

  6. PHP获取当前周一、周末时间等(持续更新)

    获取周一和周日的日期 $week = date('w') == 0 ? 7 : date('w'); $Sunday = strtotime('today -' . ($week - 1) . 'da ...

  7. k8s-ingress配置websocket支持

    具体来说,使用的ingress-controller不一样,有关的设置也不太一样 Kubernetes Ingress Controller (k8s官方) 参考 http://github.com/ ...

  8. gitlab cicd流水线语法

    流水线语法有哪些? 流水线参数列表 Keyword Description script 运行的Shell命令或脚本. image 使用docker映像. services 使用docker服务映像. ...

  9. (五)JPA - 原生SQL实现增删改查

    6.原生SQL JPA除了对JPQL提供支持外,还对原生SQL语句也提供了支持.下面小节一起来看看吧. 6.1 查询单个 示例代码: @Test public void getSingle() { E ...

  10. python基本数据类型以及基础运算符

    今日分享内容 作业讲解 python基本数据类型 与用户交互 格式化输出 基本运算符 多种赋值方式 逻辑运算符 成员运算符 分享内容详细 # 附加练习题(提示:一步步拆解) # 1.想办法打印出jas ...