Web后端开发概述&环境搭建&项目创建&servlet生命周期

Web开发概述

web开发指的就是网页向后再让发送请求,与后端程序进行交互

web后端(javaEE)程序需要运行在服务器中

这样前端才可以对其进行进行访问

什么是服务器?

解释1:

服务器就是一款软件,可以向其发送请求,服务器会做出一个响应.可以在服务器中部署文件,让他人访问

解释2:

也可以把运行服务器软件的计算机也可以称为服务器

web交互流程图如下:

web服务器指的是驻留在因特网上某种类型计算机的程序

可以向浏览器等web客户端提供文档,也可以放置网站文件,让全世界哦浏览;它是一个容器,是一个链接用户与程序之间的中间件

web服务器有很多,流行的web服务器有Tomcat,WebSphere,WebLogic,Jboss

在小型的应用系统或者有特殊需求的系统重视,可以使用一个免费的Web服务器:Apache的Tomcat,该服务器支持全部JSP以及Servlet规范

APacha软件基金会(Apache Software Foundation)是专门为运作一个开源软件项目的Apache的团体提供支持的非盈利性组织

Web开发环境搭建

服务器软件安装

Tomcat

Tomcat是一个基于Java的HTTP服务器,它是Sun通过Java Community Process开发并用servlet和JavaServer Page(JSP)技术的正式参考实现。Tomcat的安装和配置都需要一定的步骤,但是在Eclipse集成环境下,可以更加方便地进行开发和调试

首先到官网下载tomcat安装包

Tomcat官方站点:http://tomcat.apache.org

安装JDK

配置环境变量

首先打开环境变量页面

新建一个JAVA_HOME系统变量

将JAVA_HOME的路径设置为bin的上一级路径

若是没配置过Path中的java\bin路径

则需要打开Path

将java的bin路径配置在其中

解压Tomcat压缩文件
Tomcat文件结构

在Tomcat文件中的bin目录中 双击startup.bat命令启动

出现这个页面就代表启动成功

访问

自己的ip地址 :8080

更改启动端口地址

打开conf文件夹

打开server.xml文件

复制代码
找到该区域,将port改为想要的端口号

创建并发布web项目

在idea中集成Tomcat(修改代码后,会自动将项目重新部署到Tomcat中)

首先创建一个javaEE项目

勾选web profile选项 命名创建

创建完成后需要配置Tomcat

打开configurations页面,选择Tomcat中的local,在右边文件夹中选择Tomcat文件里bin的上一级,并对该配置进行改名,取消勾选After launch

创建完成后只需要点击绿色三角形就能启动

重写java中的方法

在java文件夹中创建包,在包中创建一个类继承HttpServlet

java 复制代码
/*
创建一个类 继承HttpServlet ,这个类就是一个javaEE程序
在web.xml文件配置,想歪提供一个访问地址,就可以在浏览器中访问,找到对应的程序
*/
public class DemoServlet extends HttpServlet {

/*
无参构造方法,默认是存在,初始化创建的对象
只被调用一次(始终只创建一个对象),在第一次访问servlet程序由服务器创建执行
*/
    public  DemoServlet(){
        System.out.println("无参构造方法");
    }
    /*
      init()初始化,在构造方法执行完成后,立即被调用执行
      完成一些servlet程序的初始化(例如,读取配置文件中参数)
      也是只执行一次
      init方法在没有需要初始化操作时,可以不用重写,服务器会调用父类中的init方法
    */
    @Override
    public void init(ServletConfig config) throws ServletException {
        System.out.println("init");
    }
    
    /*
      service()用来接受前端请求,为前端提供服务
      每次前端发送的请求都会调用service(),多次调用
      HttpServletRequest  rea: 表示请求对象,前端提交过来所有的数据都由服务器封装在此对象中
      HttpServletResponse resp : 表示相应对象,用来向前端相应数据
    */
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("service");
    }
    
    /*
      destroy(),当服务器关闭的时候.如果程序想要最终执行某些操作,就可以在destroy方法中实现
      在没有最终执行的一一些操作时,也可以不用重写,但是服务器会调用父类中空的destroy方法
    */
    @Override
    public void destroy() {
        System.out.println("destory");
    }

    
}

servlet对象的生命周期

servlet对象在第一次访问servlet程序时由服务器创建

初始化阶段:在构造方法执行完成后,调用init方法执行一些初始化操作

服务阶段:每一次请求调用service方法

销毁阶段:服务器关闭时,销毁servlet对象,并且在销毁对象时会自动调用destroy方法,执行一些最终操作


之后还需要在webapp中的WEB-INF文件夹里打开web.xml

配置servlet程序和访问地址

html 复制代码
   <!--
    .xml文件:ml结尾,是一种标记语言,设计的目的是用来在项目中存储配置信息的,制定好可以使用那些标签即可
    web.xml文件:存储web后端项目配置信息,
                在服务器启动时由服务器加载读取的
    
   -->
   
   
    <!-- 
    配置servlet程序,把我们开发的servlet程序注册对服务器,有服务器启动时加载,在第一次访问时,由服务器创建对象
    -->
    <servlet>
        <servlet-name>demo</servlet-name>--> <!-- 定义对象名  -->
        <servlet-class> com.ffyc.dormServer.web.DemoServlet</servlet-class>  <!-- 注册servlet程序 -->
        <init-param>   <!-- 向servlet中配置一些参数 -->
          <param-name>count</param-name>
          <param-value>10</param-value>
        </init-param>
    </servlet>

    <!--为servlet配置访问地址-->
    <servlet-mapping>
        <servlet-name>demo</servlet-name>  <!-- 为指定name的servlet程序配置访问地址 -->
        <url-pattern>/demo</url-pattern> <!-- 配置的供额外 -->
    </servlet-mapping>

注意,在配置servlet访问地址时,url-pattern内部的地址前需要加/

配置完成后访问直接用

ip地址:端口/项目名/demo(访问地址)

此时打开控制台就会发现调用了之前重写的方法

相关推荐
腻害兔1 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社2 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
克里斯蒂亚诺更新2 小时前
ruoyi角色权限的对应关系
笔记
萧瑟余晖3 小时前
JDK 26 新特性详解
java·开发语言
马优晨4 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
a1117765 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
我的xiaodoujiao5 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
维天说7 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
破碎的南瓜7 小时前
sqli--sql注入过关笔记(1,2,3,4,5,9)
数据库·笔记·sql
Zane19947 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端