java web 部分

  1. jsp作用域由大到小

  2. 過濾器有哪些作用?

  3. 過濾器的用法?(對客戶端的請求統一編碼和對客戶端進行認證)

  4. JSP和Servlet中的請求轉發分別如何實現?

  5. JSP 和 Servlet 有哪些相同點和不同點,他們之間的聯系是什么?

  6. 詳細描述 MVC。

  7. 做項目中得到經驗。

1、http的請求過程?


①:DNS解析域名得到IP地址

②:客戶端與服務器建立連接(TCP三次握手)

③:客戶端發起請求

④:服務器接收到請求根據端口號.路徑等找到對應資源文件,響應源代碼給客戶端

⑤:客戶端拿到請求到的數據(html頁面的源代碼),開始解析頁面以及請求資源

⑥:客戶端渲染頁面

⑦:web服務器斷開連接(四次揮手)

2、http請求的GET與POST方式的區別


Form 中的get和post方法,在數據傳輸過程中分別對應了http協議的GET和POST方法。二者主要區別如下:

(1)Get是用來從服務器上獲得數據,而Post是用來向服務器上傳遞數據;

(2)Get將表單中數據按照variable=value的形式,添加到action所指向的URL后面,并且兩者使用“?”連接,而各個變量之間使用“&”連接;Post是將表單中的數據放在form的數據體中,按照變量和值相對應的方式,傳遞到action所指向URL;

(3)Get是不安全的,因為在傳輸過程,數據被放到請求的URL中;Post的所有操作對用戶來說都是不可見的;

(4)Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post;

(5)Get限制Form表單的數據集必須為ASCII字符,而Post支持整個ISO10646字符集;

(6)Get是form的默認方法。

3、解釋一下什么是servlet?


Servlet 是一種獨立于平臺和協議的服務器端的 Java 技術,可以用來生成動態的 Web 頁面。與傳統的 CGI(計算機圖形接口)和許多其他類似 CGI 技術相比,Servlet 具有更好的可移植性、更強大的功能,更少的投資,更高的效率,更好的安全性等特點。

Servlet 是使用 Java Servlet 應用程序接口(API)及相關類和方法的 Java 程序。Java 語言能夠實現的功能,Servlet 基本上都能實現(除了圖形界面之外)。Servlet 主要用于處理客戶端傳來的 Http 請求,并返回一個響應。通常所說的 Servlet 就是指 HttpServlet,用于處理Http 請求,其能夠處理的請求有 doGet()、doPost()、service()等方法。在開發 Servlet 時,可以直接繼承javax.servlet.http.HttpServlet。Servlet 需要在web.xml 中進行描述,例如:映射執行 Servlet 的名字,配置 Servlet 類、初始化參數,進行安全配置、URL 映射和設置啟動的優先權等。Servlet 不僅可以生成 HTML腳本輸出,也可以生成二進制表單輸出。

Servlet 應用范圍很廣泛,我們現在用的很多流行的框架技術,其最基本的代碼離不開

Servelt 的支持。比如我所熟悉的 SSH 框架,Spring 容器啟動時,要在 web.xml 中裝載 Spring容器的 ActionContext 類來初始化 Spring 的一些參數,如進行依賴注入、數據庫表的映射、初始化系統的安全配置設置 read 等屬性等一些相關操作。

4、說一說servlet的生命周期?


servlet有良好的生存期的定義,包括加載和實例化、初始化、處理請求以及服務結束。這個生存期由javax.servlet.Servlet接口的init,service和destroy方法表達。

servlet被服務器實例化后,容器運行其init方法,請求到達時運行其service方法,service方法自動派遣運行與請求對應的doXXX方法(doGet,doPost)等,當服務器決定將實例銷毀的時候調用其destroy方法。

web容器加載servlet,生命周期開始。通過調用servlet的init()方法進行servlet的初始化。通過調用service()方法實現,根據請求的不同調用不同的do***()方法。結束服務,web容器調用servlet的destroy()方法。

5、Servlet的基本架構


package test;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class ServletName extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

}

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

}

}

6、servlet API 中forward()與redirect()的區別?


前者僅是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示轉向后的地址;后者則是完全的跳轉,瀏覽器將會得到跳轉的地址,并重新發送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時,盡量用forward()方法,并且,這樣也有助于隱藏實際的鏈接。在有些情況下,比如,需要跳轉到一個其他服務器上的資源,則必須使用sendRedirect()方法。

7、Request對象的常用方法


setAttribute(String name,Object):設置名字為 name 的 request 的參數值

getAttribute(String name):返回由 name

getCookies():返回客戶端的所有 Cookie 對象,結果是一個 Cookie 數組

getCharacterEncoding():返回請求中的字符編碼方式

getParameter(String name):獲得客戶端傳送給服務器端的有 name 指定的參數

getRequestURI():獲取發出請求字符串的客戶端地址

getRemoteAddr():獲取客戶端的 IP 地址

getRemoteHost():獲取客戶端的名字

getServerName():獲取服務器的名字

getServletPath():獲取客戶端所請求的腳本文件的路徑

getServerPort():獲取服務器的端口號

removeAttribute(String name):刪除請求中的一個屬性

8、簡述HttpSession的作用、使用方法,可用代碼說明


HttpSession中可以跟蹤并存儲用戶信息,把值設置到屬性中,有2個方法:setAttribute()、getAttribute();

例如:在一個方法中用session.setAttribute(“student”,student);在一個session中設置一個屬性名為student,值為一個名為student的對象。而后可在同一session范圍內用getAttribute(“student”)取出該屬性,得到student對象。

9、jsp有哪些內置對象?作用分別是什么?分別有什么方法?


jsp共有以下9個內置對象:

request 用戶端請求,此請求會包含來自GET/POST請求的參數

response 網頁傳回用戶端的回應

pageContext 網頁的屬性是在這里管理

session 與請求有關的會話期

application servlet正在執行的內容

out 用來傳送回應的輸出

config servlet 的構架部件

page JSP網頁本身

exception 針對錯誤網頁,未捕捉的例外

request:表示 HttpServletRequest 對象。它包含了有關瀏覽器請求的信息,并且提供了幾個用于獲取 cookie, header, 和 session 數據的有用的方法。

response:表示 HttpServletResponse 對象,并提供了幾個用于設置送回 瀏覽器的響應的方法(如 cookies,頭信息等)

out:對象是 javax.jsp.JspWriter 的一個實例,并提供了幾個方法使你能用于向瀏覽器回送輸出結果。

pageContext:表示一個 javax.servlet.jsp.PageContext 對象。它是用于方便存取各種范圍的名字空間、servlet 相關的對象的 API,并且包裝了通用的 servlet 相關功能的方法。

session:表示一個請求的 javax.servlet.http.HttpSession 對象。Session 可以存貯用戶的狀態信息

applicaton :表示一個 javax.servle.ServletContext 對象。這有助于查找有關 servlet 引擎和servlet 環境的信息

config:表示一個 javax.servlet.ServletConfig 對象。該對象用于存取 servlet 實例的初始化參數。

page:表示從該頁面產生的一個 servlet 實例

10、介紹在JSP中如何使用JavaBean?


在 JSP 中使用 JavaBean 常用的動作有:

<jsp:useBean />:用來創建和查找 bean 對象;

<jsp:setProperty />:用來設置 bean 的屬性,即調用其 setXxx()方法;

<jsp:getProperty />:用來獲得 bean 的屬性,即調用其 getXxx()方法

11、JSP的常用指令


isErrorPage(是否能使用Exception對象),isELIgnored(是否忽略表達式)

12、jsp的四種范圍?


常用的JavaScript設計模式

  • 單體模式

  • 工廠模式

  • 例模式

函數

  • 函數的定義

  • 局部變量和全局變量

  • 返回值

  • 匿名函數

  • 自運行函數

  • 閉包

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/40596.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/40596.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/40596.shtml

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

相關文章

PCB設計時,信號走線要先過ESD/TVS管,這是為什么?

目錄 為什么有上面這個問題&#xff1f; 問題的原因——走線電感 走線電感的阻抗 電感的影響 小結 都說接口處的信號要先過ESD/TVS管&#xff0c;然后拉到被保護器件&#xff0c;為什么不這樣做效果就不好&#xff1f;那如果受板子實際情況限制&#xff0c;必須這樣layout…

Python - 單引號與雙引號

Python 版本 3.11.4 字符串 單個文字符稱為字符&#xff0c;多個文字符成為字符串。 字符串需要被&#xff08;單引號&#xff09;或者""&#xff08;雙引號&#xff09;包括。 language "Python"language Python 以上寫法都是合法的。 單引號與雙…

Zabbix 配置MySQL數據庫監控

Zabbix MySQL數據庫監控簡介 通過 Zabbix 監控 MySQL 數據庫&#xff0c;可以獲取有關數據庫性能、運行狀況和資源使用情況的詳細信息&#xff0c;幫助及時發現和解決問題。 Zabbix官方提供了一個名為MySQL by Zabbix agent的監控模板&#xff0c;該模板專為 Zabbix 通過 Zabb…

探索Vim表達式寄存器:提升文本處理的高級技巧

探索Vim表達式寄存器&#xff1a;提升文本處理的高級技巧 Vim是一款功能強大的文本編輯器&#xff0c;它擁有豐富的寄存器系統&#xff0c;用于存儲文本、命令等。表達式寄存器是Vim中一種特殊的寄存器&#xff0c;允許用戶存儲并操作表達式的結果。本文將詳細介紹如何在Vim中…

使用Spring Boot和mkcert解決本地及局域網HTTPS訪問

在現代Web開發中&#xff0c;HTTPS已經成為保障數據傳輸安全的標準。然而&#xff0c;在開發和測試階段&#xff0c;配置HTTPS可能會帶來一些額外的復雜性。尤其是在本地開發環境和局域網內網環境中&#xff0c;獲得和配置證書通常是一個挑戰。本文將介紹如何使用Spring Boot和…

關于在自己的生活里面,增加喝咖啡的這道手續

前言&#xff1a;我總在告訴我自己&#xff0c;我自己應該如何&#xff1f;我的未來應該如何&#xff1f;到那時實際上&#xff0c;自己沒有辦法能夠理解的確實我的現在&#xff0c;我應該依靠咖啡度過我自己剩下的歲月&#xff0c;接下來&#xff0c;讓自己用自己的方式來不斷…

華為5288 V5服務器安裝BCLinux8U4手記

本文記錄了華為5288 V5服務器安裝BCLinux8U4操作系統的過程。 一、系統環境 1、服務器 華為FusionServer Pro 5288 V5服務器 2、操作系統 BCLinux-R8-U4-Server-x86_64-220725.iso 官網下載地址 sha256sum&#xff1a;1d31d3b8e02279e89965bd3bea61f14c65b9d32ad2ab6d4eb…

DTP 抽取出錯:data target is locked by process***

怎么會顯示被幾年前的一個process lock住了呢&#xff1f; 搞不明白。 不管怎樣&#xff0c;去RSPM_MONITOR改&#xff0c;data target填上ADSO名&#xff0c;選時間&#xff0c;Process status選Y。 找到這條&#xff0c;雙擊&#xff0c;發現是active的狀態。可能是因為前后…

springboot城市菜園共享系統-計算機畢業設計源碼00524

目 錄 摘要 1 緒論 1.1 研究背景與意義 1.2 國內外研究現狀和發展趨勢 1.3論文結構與章節安排 2 城市菜園共享系統系統分析 2.1 可行性分析 2.2 系統流程分析 2.2.1 數據增加流程 2.2.2 數據修改流程 2.2.3 數據刪除流程 2.3 系統功能分析 2.3.1 功能性分析 2.3.…

Apache Kylin與Impala:深入比較與應用場景分析

Apache Kylin與Impala&#xff1a;深入比較與應用場景分析 在大數據處理領域&#xff0c;Apache Kylin和Impala都是Apache軟件基金會下的項目&#xff0c;它們各自提供了獨特的解決方案來處理大規模數據集。了解它們的不同之處對于選擇合適的數據處理工具至關重要。本文將深入…

[Linux安全運維] rsyslog

rsyslog 1. 什么是 rsyslog rsyslog 是一個高性能的日志處理程序&#xff0c;能夠接收、處理并轉發日志消息。它被廣泛應用于 UNIX 和 Linux 系統中&#xff0c;用于系統日志記錄和管理。 2. rsyslog 的主要功能 高性能&#xff1a;能夠處理大量日志消息&#xff0c;適用于…

C++那些事之小項目實戰-進程間通信

小項目實戰之進程間通信 進程間通信是一個非常重要的話題&#xff0c;特別是像一些大型項目都有它的影子&#xff0c;例如&#xff1a;PostgreSQL使用了管道完成copy的進程間通信&#xff0c;那么本節也將基于這個主題&#xff0c;使用C去搭建一個進程間通過管道通信的demo出來…

聚變反應堆設計的一些關鍵方面和最新進展

聚變反應堆設計是一個復雜且高度專業化的領域&#xff0c;旨在實現核聚變反應以產生清潔能源。以下是對聚變反應堆設計的一些關鍵方面和最新進展的概述&#xff1a; ### 一、聚變反應堆的基本原理 核聚變是兩個較輕的原子核結合成一個較重的原子核&#xff0c;并在此過程中釋…

消除筆怎么用?教你消除筆的正確用法

消除筆&#xff0c;也稱為橡皮擦工具或克隆筆工具&#xff0c;是圖像處理軟件中的一種常用工具。它的主要作用是通過取樣圖像中的某一部分&#xff0c;然后覆蓋掉不想要的圖像內容&#xff0c;從而實現修復、去除瑕疵等效果。那么有哪些軟件具有消除筆功能&#xff0c;又是怎么…

網絡安全入門教程(非常詳細)從零基礎入門到精通,看完這一篇就夠了。

學前感言: 1.這是一條堅持的道路,三分鐘的熱情可以放棄往下看了.2.多練多想,不要離開了教程什么都不會了.最好看完教程自己獨立完成技術方面的開發.3.有時多google,baidu,我們往往都遇不到好心的大神,誰會無聊天天給你做解答.4.遇到實在搞不懂的,可以先放放,以后再來解決. 基…

歐洲杯:高精度定位技術,重塑體育賽事新體驗

隨著科技的飛速發展&#xff0c;體育賽事的觀賞體驗與競技水平正被不斷推向新的高度。在即將到來的2024年歐洲杯賽場上&#xff0c;一項革命性的技術——高精度定位&#xff0c;正悄然改變著比賽的每一個細節&#xff0c;為球迷們帶來前所未有的觀賽享受&#xff0c;同時也為運…

昇思25天學習打卡營第7天|保存與加載

Python語言 AI框架&#xff1a;Mindspore 1.模型構建 class Network(nn.Cell):def __init__(self):super().__init__()self.flatten nn.Flatten()self.dense_relu_sequential nn.SequentialCell(nn.Dense(28*28, 512, weight_init"normal", bias_init"zeros…

力扣雙指針算法題目:移動零

1.題目 . - 力扣&#xff08;LeetCode&#xff09; 2.思路解析 這個題目的思路和“使用遞歸排序快速排序解決數組的排序問題”相同 class solution { public:void QuickSort(vector<int>& nums, int left, int right){if (left > right) return;int key left…

VSCode常用的一些插件

Chinese (Simplified) 漢語&#xff08;簡體&#xff09;拓展包。 Auto Close Tag 可以自動增加xml/html的閉合標簽。 CodeSnap 截圖神器。截圖效果在下面。 Dracula Official vscode一個很好看的主題。 Git Graph git管理工具。 GitHub Repositories 有了它&#xff0c;不…

AI一鍵音頻轉文字工具 速度超快,支持實時轉換,無需聯網,本地整合包下載

這是 CapsWriter-Offline &#xff0c;一個 PC 端的語音輸入、字幕轉錄工具。可用實現簡單一鍵將音頻文件轉換成文字的懶人工具。 兩個功能&#xff1a; 1、實時轉換&#xff0c;按下鍵盤上的 大寫鎖定鍵&#xff0c;錄音開始&#xff0c;當松開 大寫鎖定鍵 時&#xff0c;就會…