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

在這里插入圖片描述

/*
創建一個類 繼承HttpServlet ,這個類就是一個javaEE程序
在web.xml文件配置,想歪提供一個訪問地址,就可以在瀏覽器中訪問,找到對應的程序
*/
public class DemoServlet extends HttpServlet {/*
無參構造方法,默認是存在,初始化創建的對象
只被調用一次(始終只創建一個對象),在第一次訪問servlet程序由服務器創建執行
*/public  DemoServlet(){System.out.println("無參構造方法");}/*init()初始化,在構造方法執行完成后,立即被調用執行完成一些servlet程序的初始化(例如,讀取配置文件中參數)也是只執行一次init方法在沒有需要初始化操作時,可以不用重寫,服務器會調用父類中的init方法*/@Overridepublic void init(ServletConfig config) throws ServletException {System.out.println("init");}/*service()用來接受前端請求,為前端提供服務每次前端發送的請求都會調用service(),多次調用HttpServletRequest  rea: 表示請求對象,前端提交過來所有的數據都由服務器封裝在此對象中HttpServletResponse resp : 表示相應對象,用來向前端相應數據*/@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("service");}/*destroy(),當服務器關閉的時候.如果程序想要最終執行某些操作,就可以在destroy方法中實現在沒有最終執行的一一些操作時,也可以不用重寫,但是服務器會調用父類中空的destroy方法*/@Overridepublic 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.pswp.cn/web/39367.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/39367.shtml
英文地址,請注明出處:http://en.pswp.cn/web/39367.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL:MySQL總結

文章目錄 MySQL思維導圖基礎實際在 Innodb 存儲引擎中&#xff0c;會用一個特殊的記錄來標識最后一條記錄&#xff0c;該特殊的記錄的名字叫 supremum pseudo-record &#xff0c;所以掃描第二行的時候&#xff0c;也就掃描到了這個特殊記錄的時候&#xff0c;會對該主鍵索引加…

OpenCV 張正友標定法(二)

文章目錄 一、簡介二、實現代碼三、實現效果參考資料一、簡介 在之前的博客OpenCV 張氏標定法中,我們沒有考慮鏡頭畸變等因素,因此計算出的內參與外參均是理想情況下的數值,而如果我們考慮到鏡頭的畸變: 我們就需要考慮使用最小二乘法最小化像素坐標的重投影誤差(上述所求…

套接字的原理和作用機制

套接字&#xff08;Socket&#xff09;是實現網絡通信的基礎&#xff0c;它提供了在網絡中進行數據傳輸的接口和機制。以下是關于套接字原理和作用機制的詳細解釋&#xff1a; 1. 套接字的基本概念 套接字&#xff1a;套接字是網絡通信的端點&#xff0c;可以理解為通信鏈路的…

重溫react-10(函數組件和類組件的ref獲取方式)

App.js的代碼 06是函數組件 07是類組件 import React, { useEffect, useRef } from react; import LearnFunction06 from ./LearnFunction06; // 函數組件和類組件的ref使用方式 import LearnFunction07 from ./LearnFunction07; // 函數組件和類組件的ref使用方式 export de…

dell服務器RAID5磁盤陣列出現故障的解決過程二——熱備盤制作與壞盤替換過程

目錄 背景方案概念全局熱備&#xff08;Global Hot Spare&#xff09;&#xff1a;獨立熱備&#xff08;Dedicated Hot Spare&#xff09;&#xff1a; 過程8號制作成熱備清除配置制作獨立熱備熱備頂替壞盤直接rebuild 更換2號盤2號熱備 注意注意事項foreign狀態要先清除配置 背…

【Mac】Boxy SVG for Mac(矢量圖編輯器)及同類型軟件介紹

軟件介紹 Boxy SVG 是一款功能強大的矢量圖形編輯器&#xff0c;專門為 macOS 平臺設計開發。它主要用于創建和編輯 SVG&#xff08;可縮放矢量圖形&#xff09;文件&#xff0c;是設計師和開發者們制作矢量圖形的理想工具。 以下是關于 Boxy SVG 的主要特點和功能&#xff1a…

Rural Access Index (RAI)農村通達指數

農村通達指數&#xff08;RAI&#xff09; 簡介 農村通達指數&#xff08;RAI&#xff09;是全球交通領域最重要的發展指標之一。它是目前可持續發展目標中唯一一個直接衡量農村通達性的指標&#xff0c;通過評估農村人口的四季道路通達性來實現。在 2015 年作為可持續發展目…

路由LLM:優化模型調用的成本與效率

引言 在最近的一些視頻和討論中&#xff0c;我們經常提到使用較便宜和較快的模型來替代一些昂貴的大型語言模型&#xff08;LLM&#xff09;。這種方法的一個主要原因是看到許多人在不必要的場合調用如GPT-4或Claude Opus等高級模型&#xff0c;從而浪費了大量資金。而事實上&…

IDEA 編譯單個Java文件

文章目錄 一、class文件的生成位置二、編譯單個文件編譯項目報錯Error:java: 無效的源發行版: 8 一、class文件的生成位置 file->project structure->Modules 二、編譯單個文件 選中文件&#xff0c;點擊recompile 編譯項目報錯 Error:java: 無效的源發行版: 8 Fi…

golang實現網卡流量監控

獲取當前時刻一分鐘前的網卡流量排序 package mainimport ("fmt""github.com/mackerelio/go-osstat/network""log""net/http""sort""strconv""time" )var arr []map[string]int var arr2 []map[string]…

2024最新PyCharm安裝教程(附激活碼)

今天講解的是PyCharm安裝教程 一、軟件簡介 PyCharm是一款Python IDE&#xff0c;其帶有一整套可以幫助用戶在使用Python語言開發時提高其效率的工具&#xff0c;比如&#xff0c; 調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制等等。此外…

字符串和正則表達式踩坑

// 中石化加油卡號格式&#xff1a;以 100011 開頭共19位public static final String ZHONGSHIYOU_OIL_CARD_PATTERN "^100011\\d{13}$";// 中石油加油卡號格式&#xff1a;以90、95、70開頭共16位public static final String ZHONGYOU_OIL_CARD_PATTERN "^(9…

使用 urllib OpenSSL 時遇到的問題及解決

題意&#xff1a; ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1, currently the ssl module is compiled with LibreSSL 2.8.3 當前使用的 urllib3 版本&#xff08;v2.0&#xff09;僅支持 OpenSSL 1.1.1 或更高版本&#xff0c;但你的 Python 環境中的 ssl 模塊…

安裝opencv-python出錯,怎么辦?

安裝opencv-python出錯 解決方法&#xff1a; 具體版本號&#xff0c;python3.6對應的就是4.3.0.38 pip install opencv-python4.3.0.38 -i https://pypi.tuna.tsinghua.edu.cn/simple

《夢醒蝶飛:釋放Excel函數與公式的力量》8.5 COUNTIFS函數

8.5 COUNTIFS函數 COUNTIFS函數是Excel中的一種多條件計數函數&#xff0c;用于統計同時滿足多個條件的單元格數量。它是COUNTIF函數的增強版&#xff0c;允許在一個函數中使用多個條件。 8.5.1 函數簡介 COUNTIFS函數用于統計符合多個條件的單元格數量。它在數據分析中非常…

opencv學習總結

Mat類學習 Opencv中的數據類型與我們常用的數據類型的一一對應關系:Mat_<uchar>->CV_8U;Mat_<char>->CV_8S;Mat_<short>->CV_16S;Mat_<ushort>->CV_16U;Mat_<int>->CV_32S;Mat_<float>->CV_32F;Mat_<double>-&g…

Sentinel鏈路流控模式失效的解決方法

解決方法 1、在pom.xml中增加sentinel-web-servlet的依賴&#xff0c;我使用的版本是1.7.1 <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-web-servlet</artifactId> </dependency>2、在項目中添加一個FilterCon…

uniapp應用如何實現傳感器數據采集和分析

UniApp是一種跨平臺的應用開發框架&#xff0c;它支持在同一份代碼中同時開發iOS、Android、H5等多個平臺的應用。在UniApp中實現傳感器數據采集和分析的過程可以分為以下幾個步驟&#xff1a; 引入相關插件或庫 UniApp通過插件或庫的形式擴展功能。對于傳感器數據采集和分析&…

1679. K 和數對的最大數目

1679. K 和數對的最大數目 題目鏈接&#xff1a;1679. K 和數對的最大數目 代碼如下&#xff1a; class Solution { public://雙指針法int maxOperations(vector<int>& nums, int k) {if(nums.size()<1) return 0;sort(nums.begin(),nums.end());int res0;int…

MySQL 9.0 GA 來了!

2024 年 7 月 2 日&#xff0c;MySQL 9.0 GA 版本正式發布。還記得 MySQL 8.0 版本正式發布于 2018 年 4 月 19 日&#xff0c;中間經過了 6 年之久&#xff0c;MySQL 官方終于發布了大版本號變更得 9.0 版本&#xff0c;接下來由我給大家介紹 MySQL 在 9.0 版本中有哪些新的變…