JAVA ServLet创建一个项目的基本步骤

 更新时间:2024年03月22日 10:56:52   作者:lzb_kkk  
Servlet是Server Applet的简称,是运行在服务器上的小程序,用于编写Java的服务器端程序,它的主要作用是接收并响应来自Web客户端的请求,下面这篇文章主要给大家介绍了关于JAVA ServLet创建一个项目的基本步骤,需要的朋友可以参考下

背景

Tomcat不仅支持静态页面,还可以支持动态页面;提供了一组api,封装了HTTP协议,可以让程序员去编写动态页面。

Servlet是一个比较古老的编写网站的方式了,2010之前,Java编写网站,主要使用Servlet的方式,后来Java出了Spring,对Servlet进一步封装(Spring是基于Servlet来实现的)。

Servlet主要的工作

就是让程序员自己写一些类,然后把这些类给加载到Tomcat中,后续Tomccat受到HTTP请求(来自浏览器),就会执行到咱们上面写的代码,从而通过这些代码完成一定的业务逻辑。

创建一个项目的基本步骤 

1.创建项目

此处创建的是一种新的项目的形式,称为Maven项目(Maven是Java世界中的一个知名构建工具,帮助编译/打包代码的工具)

PS:下图为新版的Maven项目创建方式,旧版的IDEA界面会有所不同

maven项目首次创建的时候,会自动从maven的网站上下载一些依赖的组件,这个过程如果你的网络不稳定,就可能会出错,影响后续对maven的使用。所以我们尽可能保证首次使用的时候,网络是畅通的。

随后可以看到默认生成一系列目录结构,main目录为业务代码,test目录为测试代码

2.引入依赖

接下来要写的程序,会使用Servlet,Servlet这个api是tomcat提供的,不是jdk提供的,属于第三方库,需要手动安装引入(与mysql类似)

但是手动下载导入比较麻烦,实际应用中涉及到的项目,可能依赖的内容非常多,手动管理就非常麻烦了。因此我们使用maven就可以非常方便的解决上述问题

1)打开maven中央仓库,找到需要的servlet的jar包

这边我们下载3.1.0版本的, 因为3.1.0版本是和tomcat 8 匹配的版本,servlet与tomcat的版本一定要匹配。如下是版本匹配对应的:

2)借助maven,自动下载上述依赖

复制这里的maven代码片段

进入项目的pom.xml 新建一个<dependencies>标签

 复制进来后,一般会自动下载,如果没有点一下如下的刷新按钮

如上,jar包会被下载到maven本地仓库

3.创建目录

maven 项目是普适的,不仅仅局限于Tomcat

而Tomcat来说,对于项目的目录结构,还有一些额外的要求。

如下是tomcat要求的目录结构,注意大小写!

web.xml里的内容不能空着,但是这里咋写,也不必背诵,只需要找一个模板,如下即可

<!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.编写代码

在java目录中,创建类.

doGet的意思是处理HTTP请求,当tomcat收到一个GET请求的时候,就有可能执行这个子类的方法;HttpServletRequest req(HTTP请求), HttpServletResponse resp(HTTP响应)

让下面这个类和一个HTTP请求路径关联起来

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //这个打印是显示在tomcat的控制台上(服务器端)
        System.out.println("hello world");
        //把内容显示到页面上,把“hello world”字符串作为http响应body的部分
        //这个部分就会被浏览器显示到页面上
        resp.getWriter().write("hello world");
    }
}

Tomcat不是收到所有的get请求都调用这个doGet方法,而是同时判断

  • 请求方法是get
  • 请求的url中的路径是 /hello

5.打包程序

打包程序,把咱们写好的代码打包成 war 包。(Tomcat需要有一个war包在上面)

maven就可以完成这个打包操作。步骤如下:

1)修改pom.xml,设置打包的类型和包名字,添加如下代码:

//默认情况下,打包的类型是jar包,这里tomcat的要求是war包
<packaging>war</packaging>
//设置包名字
<build>
    <finalName>hellojava</finalName>
</build>

2)在右侧maven面板中,双击package这个按钮 ,即可完成打包

出现如下字样,表示打包成功了。

 如果打包出现错误,可根据控制台的提示信息,进行修改。

一般有以下两种情况:

  • 打包操作,依赖了一些第三方的jar包,maven就会自动下载,如果下载过程中,网络不太顺畅,就容易出错
  • 代码里有问题(配置文件 ,pom.xml)

打包完成后,会新增一个target目录,包含一些临时文件

6.部署程序

把war包拷贝到webapps目录中即可,这里webapps目录在当初安装Tomcat目录下

选择新增的target目录下的war包

选择target目录下的war包,将它复制到wepapps目录下

接下来,启动tomcat即可。

7.验证程序

通过浏览器,访问tomcat,获取到咱们代码返回的hello world

总结 

到此这篇关于JAVA ServLet创建一个项目的基本步骤的文章就介绍到这了,更多相关ServLet创建项目步骤内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解SpringBoot2 使用Spring Session集群

    详解SpringBoot2 使用Spring Session集群

    这篇文章主要介绍了SpringBoot2 使用Spring Session集群,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-04-04
  • 浅析JAVA中toString方法的作用

    浅析JAVA中toString方法的作用

    以下是对在JAVA中toString方法的作用进行了详细的分析介绍,需要的朋友可以参考下
    2013-07-07
  • Java程序顺序结构中逻辑控制语句详解流程

    Java程序顺序结构中逻辑控制语句详解流程

    在程序开发的过程之中一共会存在有三种程序逻辑:顺序结构、分支结构、循环结构,对于之前所编写的代码大部分都是顺序结构的定义,即:所有的程序将按照定义的代码顺序依次执行
    2021-10-10
  • springboot配置https访问的方法

    springboot配置https访问的方法

    这篇文章主要介绍了springboot配置https访问的方法,需要的朋友可以参考下
    2018-11-11
  • Spring中实现的三种异步流式接口方法

    Spring中实现的三种异步流式接口方法

    在现代Web开发中,接口超时是一个常见的问题,尤其是在处理耗时操作时,传统的同步接口在处理长时间任务时会阻塞请求线程,从而影响系统的响应能力,本文将详细讲解Spring中实现的三种异步流式接口方法,需要的朋友可以参考下
    2024-10-10
  • java之TreeUtils生成一切对象树形结构案例

    java之TreeUtils生成一切对象树形结构案例

    这篇文章主要介绍了java之TreeUtils生成一切对象树形结构案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Java基础之数组详解

    Java基础之数组详解

    这篇文章主要介绍了Java基础之数组详解,文中有非常详细的代码示例,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-04-04
  • Java中Date,Calendar,Timestamp的区别以及相互转换与使用

    Java中Date,Calendar,Timestamp的区别以及相互转换与使用

    以下是对Java中Date,Calendar,Timestamp的区别以及相互转换与使用进行了详细的介绍,需要的朋友可以过来参考下
    2013-09-09
  • Java多线程中的ThreadPoolExecutor使用解析

    Java多线程中的ThreadPoolExecutor使用解析

    这篇文章主要介绍了Java多线程中的ThreadPoolExecutor使用解析,作为线程池的缓冲,当新增线程超过maximumPoolSize时,会将新增线程暂时存放到该队列中,需要的朋友可以参考下
    2023-12-12
  • RabbitMQ基础概念之信道channel详解

    RabbitMQ基础概念之信道channel详解

    这篇文章主要介绍了RabbitMQ基础概念之信道channel详解,信道是生产消费者与rabbit通信的渠道,生产者publish或者消费者消费一个队列都是需要通过信道来通信的,需要的朋友可以参考下
    2023-08-08

最新评论