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

news2024/11/24 13:43:55

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

在这里插入图片描述

/*
创建一个类 继承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程序和访问地址

在这里插入图片描述

   <!--
    .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(访问地址)

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1879650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ai】trition:tritonclient.utils.shared_memory 仅支持linux

Can’t find tritonclient.utils.shared_memory on WIN10 #4149yolov4的python客户端 导入以后,windows 的pycharm 就是看不到折腾了很久:SaviorEnv 环境下安装tritonclient[all]也会失败 (base) C:\Users\zhangbin>conda create -n SaviorEnv python=3.8 Collecting pack…

计算机体系结构和指令系统

1.计算机体系结构 - 五大部件 - 冯 诺依曼 计算机的特点 1.计算机有五大部件组成 2.指令和数据以同等地位存储于存储器&#xff0c;可按照地址访问 3.指令和数据用二进制表示 4.指令由操作码和地址码组成 5。存储程序 6.以计算器为中心&#xff08;输入、输出设备与存储器…

成都市水资源公报(2000-2022年)

数据年限&#xff1a;2000-2022年&#xff0c;无2009年 数据格式&#xff1a;pdf、word、jpg 数据内容&#xff1a;降水量、地表水资源量、地下水资源量、水资源总量、蓄水状况、平原区浅层地下水动态、水资源情况分析、供水量、用水量、污水处理、洪涝干旱等

[XYCTF新生赛]-PWN:EZ1.0?(mips,mips的shellcode利用)

查看保护 查看ida 这里用的是retdec&#xff0c;没安装的可以看这个[CTF]-PWN:mips反汇编工具&#xff0c;ida插件retdec的安装-CSDN博客 这里直接看反汇编貌似看不出什么&#xff0c;所以直接从汇编找 完整exp&#xff1a; from pwn import* context(log_leveldebug,archmip…

【机器学习】在【Pycharm】中的应用:【线性回归模型】进行【房价预测】

专栏&#xff1a;机器学习笔记 pycharm专业版免费激活教程见资源&#xff0c;私信我给你发 python相关库的安装&#xff1a;pandas,numpy,matplotlib&#xff0c;statsmodels 1. 引言 线性回归&#xff08;Linear Regression&#xff09;是一种常见的统计方法和机器学习算法&a…

Nature Climate Change | 中国科学院地理资源所吴朝阳课题组发表生物多样性调控植被物候的研究成果!

本文首发于“生态学者”微信公众号&#xff01; 植被春季物候对气候变化的响应通常是通过测量其温度敏感性&#xff08;ST&#xff0c;温度每升高1度&#xff0c;植被提前展叶的天数&#xff09;来量化。ST是植被在当地历史气候环境的选择压力下演化形成的最优策略&#xff0c;…

基于GRU自回归解码模拟人类股票交易实现高胜率

这里是基于encoder-decoder和注意力机制 模型代码,sigmoid对资产进行调仓。训练直接使用收益作为优化函数 import torch import torch.nn as nn from dataloader import create_dataloadersclass Attention(nn.Module):def __init__(self, hidden_dim):super(Attention, self…

C++集中营笔记(1)第一节课和第二节课

第一节课linux的使用 1.Linux 常用命令 [chenbogon ~]$ cd ~ [chenbogon ~]$ cd /home [chenbogon home]$ mkdir cpp-test mkdir: cannot create directory ‘cpp-test’: Permission denied [chenbogon home]$ sudo mkdir cpp-testWe trust you have received the usual lec…

Leetcode 78 数组子集

题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的 子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1…

pyqt 文件浏览列表视图和图标视图

pyqt 文件浏览列表视图和图标视图 目的效果代码 目的 使用pyqt实现文件浏览列表视图和图标视图&#xff0c;像电脑文件浏览一样。如下图所示。 效果 代码 import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QToolBar, QAction, Q…

商城自动化测试实战 —— 登录+滑块验证

hello大家好&#xff0c;我是你们的小编&#xff01; 本商城测试项目采取PO模型和数据分离式架构&#xff0c;采用pytestseleniumjenkins结合的方式进行脚本编写与运行&#xff0c;项目架构如下&#xff1a; 1、创建项目名称&#xff1a;code_shopping&#xff0c;创建所需项目…

基于单片机光纤测距系统的设计与实现

摘要 &#xff1a; 光纤由于其频带宽 、 损耗低及抗干扰能力强等优点已被广泛地应用在通信 、 电子及电力方面 &#xff0c; 是我们生产生活中必不可少的媒介。 在实际的光纤实验 、 安装 、 运营和维护工作中 &#xff0c; 一种精准 、 轻便和易操作的光纤测距系统显得尤为重…

粉色专业月子会所服务网站源码pbootcms模板

模板介绍 随着时代的发展&#xff0c;月子中心这个产业已越来越盛行&#xff0c;小编挣了一款粉色专业月子会所服务网站源码pbootcms模板供大家下载&#xff0c;适合家政、月嫂服务、母婴护理、月子会所、保姆服务等相关业务&#xff0c;响应式自适应的源码下载设计让您快速编…

百度网盘下载速度慢的解决办法

目录 一、背景 二、解决办法 1、点击三个竖点&#xff0c;再点设置 2、点击传输&#xff0c;再点击去开启该功能 3、点击同意&#xff0c;开启优化速率 三、结果 四、备注 一、背景 当你不是百度网盘会员时&#xff0c;你在使用百度网盘下载时&#xff0c;是否下载速度太…

B站CEO陈睿:超8000万用户在看AI内容

AI圈最近又发生了啥新鲜事&#xff1f; 该栏目以周更频率总结国内外前沿AI动态&#xff0c;感兴趣的可以点击订阅合集以及时收到最新推送 B站CEO陈睿&#xff1a;每月超过8000万用户在平台看AI内容 B站15周年庆上B站董事长兼CEO陈睿发表演讲&#xff0c;公布了B站上AI的内容…

【自然语言处理】预训练语言模型实现与应用

预训练语言模型实现与应用 1 任务目标 1.1 案例简介 ​ 2018年&#xff0c;Google提出了预训练语言模型BERT&#xff0c;该模型在各种NLP任务上都取得了很好的效果。与此同时&#xff0c;它的使用十分方便&#xff0c;可以快速地对于各种NLP任务进行适配。因此&#xff0c;B…

GraalVM windows系统初体验

传统的jvm需要 经历 java ->class ->装载、链接、初始化、使用、卸载等步骤&#xff0c;启动非常慢且费内存&#xff0c; graalvm则是AOT编译器把字节码直接翻译成机器识别的二进制编码的本地镜像&#xff0c;大大提高了启动速度和减少内存消耗 官网&#xff1a;https:…

LLM端侧部署系列 | 手机上运行47B大模型?上交推理框架PowerInfer-2助力AI手机端侧部署

0. 引言 黄梅时节家家雨&#xff0c;青草池塘处处蛙。 有约不来过夜半&#xff0c;闲敲棋子落灯花。 当下&#xff0c;在移动设备上部署大型模型的趋势是愈演愈烈。Google推出了AI Core&#xff0c;使得Gemini Nano可以在智能手机上部署。此外&#xff0c;近期传闻苹果在iOS …

常用组件详解(二):torchsummary

文章目录 一、基本使用二、常见指标2.1Input size2.2Forward/backward pass size 一、基本使用 torchsummary库是一个好用的模型可视化工具&#xff0c;用于帮助开发者把握每个网络层级的细节&#xff0c;包括其中的连接和维度。使用方法&#xff1a; from torchsummary impor…