JavaBean和Servlet

文章目錄

    • JavaBean
      • 通俗的講
      • JavaBean的作用
    • JavaBean(就是一個Java類)的定義
      • 使用層面,Java分為2大類:
    • Servlet
      • 回顧純手工方法創建第一個Servlet
      • 借助于Eclipse快速生成Servlet
      • Servlet3.0,與Servlet2.5的區別:
      • 項目根目錄:WebContent、src(所有的構建路徑)
      • Servlet生命周期:5個階段
      • Servlet API
      • Servlet繼承關系
      • Servlet使用層面

JavaBean

通俗的講

我們將 jsp中登錄操作的代碼 轉移到了LoginDao.java;
其中LoginDao類 就稱之為JavaBean。

JavaBean的作用

a.減輕的jsp復雜度
b.提高代碼復用(以后任何地方的登錄操作,都可以通過調用LoginDao實現)

JavaBean(就是一個Java類)的定義

滿足一下2點 ,就可以稱為JavaBean

	a.public 修飾的類  ,public 無參構造b.所有屬性(如果有) 都是private,并且提供set/get   (如果boolean 則get 可以替換成is)

使用層面,Java分為2大類:

a.封裝業務邏輯的JavaBean (LoginDao.java封裝了登錄邏輯)
邏輯可以將jsp中的JDBC代碼,封裝到Login.java類中 (Login.java)
b.封裝數據的JavaBean (實體類,Student.java Person.java )
數據對應于數據庫中的一張表

Login login = new Login(uname,upwd) ;//即用Login對象 封裝了2個數據(用戶名 和密碼)

封裝數據的JavaBean 對應于數據庫中的一張表 (Login(name,pwd)) 封裝業務邏輯的JavaBean 用于操作
一個封裝數據的JavaBean

可以發現,JavaBean可以簡化 代碼(jsp->jsp+java)、提供代碼復用(LoginDao.java)

public  void sleep(String name,String place, int time)
{}public  void sleep(Person per)
{per.getName()per.getPlace()...

Servlet

回顧純手工方法創建第一個Servlet

編寫一個類,繼承HttpServlet
重寫doGet()、doPost()方法
編寫web.xml 中的servlet映射關系

借助于Eclipse快速生成Servlet

直接新建Servlet即可!(繼承、重寫、web.xml 可以借助Eclipse自動生成)

Servlet3.0,與Servlet2.5的區別:

Servlet3.0不需要在web.xml中配置,但 需要在 Servlet類的定義處之上編寫
注解@WebServlet(“url-pattern的值”) 匹配流程: 請求地址 與@WebServlet中的值
進行匹配,如果匹配成功 ,則說明 請求的就是該注解所對應的類

項目根目錄:WebContent、src(所有的構建路徑)

例如:
WebContent中有一個文件index.jsp
src中有一個Servlet.java

如果: index.jsp中請求 <a href="abc">...</a> ,則 尋找范圍:既會在src根目錄中找  也會在WebContent根目錄中找
如果:index.jsp中請求<a href="a/abc"></a>,尋找范圍:先在src或WebContent中找a目錄,然后再在a目錄中找abc

web.xml中的 /:代表項目根路徑

http://localhost:8888/Servlet25Project/

jsp中的/: 服務器根路徑

http://localhost:8888/

構建路徑、WebContent:根目錄

Servlet生命周期:5個階段

加載
初始化: init() ,該方法會在 Servlet被加載并實例化的以后 執行
服務 :service() ->doGet() doPost
銷毀 :destroy(), Servlet被系統回收時執行
卸載

init():
a.默認第一次訪問 Servlet時會被執行 (只執行這一次)
b.可以修改為 Tomcat啟動時自動執行
i.Servlet2.5: web.xml

  <servlet>...<load-on-startup>1</load-on-startup></servlet>//其中的“1”代表第一個。//ii.Servlet3.0@WebServlet(value="/WelcomeServlet" ,loadOnStartup=1)

service() ->doGet() doPost :調用幾次,則執行幾次
destroy():關閉tomcat服務時,執行一次。

Servlet API

由兩個軟件包組成: 對應于HTTP協議的軟件包、對應于除了HTTP協議以外的其他軟件包
即Servlet API可以適用于任何通信協議。
我們學習的Servlet,是位于javax.servlet.http包中的類和接口,是基礎HTTP協議。

Servlet繼承關系

ServletConfig:接口

ServletContext getServletContext():獲取Servlet上下文對象   application
String  getInitParameter(String name):在當前Servlet范圍內,獲取名為name的參數值(初始化參數)

ServletContext中的常見方法(application):

getContextPath():相對路徑
getRealPath():絕對路徑
setAttribute()getAttribute()
String getInitParameter(String name);在當前Web容器范圍內,獲取名為name的參數值(初始化參數)

Servlet3.0方式 給當前Servlet設置初始值:

@WebServlet( .... , initParams= {@WebInitParam(name="serveltparaname30",value="servletparavalue30")   })
注意,此注解只 隸屬于某一個具體的Servlet ,因此無法為 整個web容器設置初始化參數 (如果要通過3.0方式設置 web容器的初始化參數,仍然需要在web.xml中設置)

HttpServletRequest中的方法:(同request),例如setAttrite()、getCookies()、getMethod()
HttpServletResponse中的方法:同response

Servlet使用層面

Eclipse中在src創建一個Servlet,然后重寫doGet() doPost()就可以 (doGet() doPost()只需要編寫一個)

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

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

相關文章

Linux編程考前測試題

文章目錄選擇題多選題判斷題填空題簡答題編程題選擇題 1:當打開vi文本編輯器編輯文件時&#xff0c;vi處于&#xff08;A&#xff09;模式 A: 命令模式 B: 編輯模式 C: 實模式 D: 虛模式 2:下列有關fork&#xff08;&#xff09;函數返回值說法錯誤的是&#xff08;D&#xf…

MySQL考試復習(知識點、練習題)

文章目錄數據庫的管理技術的三個階段發展的三個階段數據庫的鎖數據庫設計的基本步驟事務的四大特性什么是視圖如果關系模式設計不好&#xff0c;可能帶來哪幾個問題數據庫管理系統的主要功能有哪些數據庫系統中的常見故障有哪些簡述SQL語言的組成說明關系模型有哪三類完整性規則…

Oracle復習(知識點、練習題、實驗)

文章目錄第一章 數據庫概念數據庫的三級模式結構&#xff1a;模式、外模式、內模式三級模式之間的映射第二章 Oracle12g體系結構Oracle的邏輯存儲結構Oracle物理存儲結構Oracle11g服務器結構系統全局區&#xff08;SGA&#xff09;程序全局區&#xff08;PGA&#xff09;第三章…

Openstack面試題和知識點總結

文章目錄知識點云計算起源定義特點分類服務類型平臺分類應用虛擬化虛擬化技術定義分類云計算和虛擬化的關系虛擬化的優點OpenStack簡介核心架構Openstack組件共享服務組件核心組件組件詳解RabbitMQ概念特點rabbitmq中的概念工作原理常用操作MemcachedKeystoneGlance工作原理Nov…

實例化一個對象

類實例化就是新建一個類的對象&#xff0c;就是new一個對象 類名 對象名 new 類名&#xff08;&#xff09;;例子&#xff1a;Student stu new Student&#xff08;&#xff09;; 注意&#xff1a; 類在沒有實例化之前,就是new之前,它的屬性,方法等等在內存中都是不存在的.…

RuntimeException:java.lang.ClassNotFoundException: Class wordcount.WordCountMapper not fonud

在hadoop上運行Mapreduce項目jar包報錯&#xff1a; Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class wordcount.WordCountMapper not foundat org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2638)at org.apache.hadoop.ma…

auto.js 實現信息發送、QQ點贊、微信點贊、健康日報簽到

文章目錄auto.js開發文檔安裝total control在手機端安裝auto.js apk安裝vscode短信多條發送QQ點贊微信點贊健康日報填寫疊貓貓auto.js開發文檔 點擊學習 安裝total control total control 用于手機投屏在電腦屏幕上 在手機端安裝auto.js apk 鏈接&#xff1a;https://pan.…

MapReduce綜合學習含Wordcount案例

文章目錄MapReduce簡介MapTaskReduceTaskMapper階段解讀Reducer階段解讀MapReduce適用的問題MapReduce的特點MapReduce基本思想大數據處理思想&#xff1a;分而治之構建抽象模型&#xff1a;Map 函數和 Reduce 函數上升到架構&#xff1a;并行自動化并隱藏底層細節MapReduce計算…

基于Spring boot+Vue的在線考試系統

文章目錄spring boot 分層圖解安裝idea配置阿里云鏡像項目啟動前端項目結構項目前端中index.htmlApp.vuemain.jsrouter整個頁面渲染過程關于矢量圖圖標的使用引入JQuery依賴github-markdown-css樣式文件-一般用作文章正文的樣式美化spring boot 分層圖解 安裝idea 安裝參考 id…

Java基礎總結之(面試)

文章目錄Java標識符Java修飾符訪問權限修飾符訪問控制和繼承非訪問權限修飾符局部變量修飾符接口接口中方法修飾符運算符算術運算符一元運算符二元運算符算術賦值運算符賦值運算符邏輯運算符&#xff08;&&、||和!&#xff09;關系運算符自增和自減運算符&#xff08;和…

Javaweb練手項目

文章目錄學生管理系統音樂網站鋒芒博客中醫藥管理系統博客天梯CMS系統鋒芒社團官網學生管理系統 實現技術&#xff1a;ServletMVC&#xff08;模式&#xff09;Filter(過濾器&#xff09;html 主要功能&#xff1a;學生信息的增刪查改&#xff0c;文件&#xff08;圖片&#x…

Spark之scala學習(基礎篇)待更新

文章目錄引言大數據介紹大數據與云計算區別大數據和人工智能的區別大數據和傳統的分析&#xff08;excel&#xff09;的區別scala的特性面向對象特性函數式編程函數式編程的特點&#xff1a;函數式編程的優勢靜態類型擴展性并發性為什么要學scalascala安裝簡單測試了解ScalaSca…

Jupyter Notebook的安裝及問題解決方案

文章目錄下載并安裝Anaconda3更改主界面路徑但是如果沒有jupyter_notebook_config.py文件怎么辦&#xff1f;如果更改過路徑后&#xff0c;不生效怎么辦&#xff1f;使用參考pycharm導入pyspark下載并安裝Anaconda3 官網下載個人版 Anaconda3安裝參考 點擊&#xff0c;然后進…

airodump-ng wlan0mon掃描不到網絡_MySQL ProxySql 由于漏洞掃描導致的 PROXYSQL CPU 超高...

ProxySQL 本身是一款非常棒的MYSQL 中間件的開源產品, 在公司運行了一段時間后,突然一天報警,所在機器的CPU 出奇的高,之前在測試系統, 預生產, 以及生產系統均沒有出現問題. 開始未來緊急解決問題,重新啟動了proxysql服務,并查看錯誤日志.PROXYSQL 的系統版本的2.012 MYSQL 的…

網絡安全之SQL注入

文章目錄SQL注入的定義SQL注入為什么會成功&#xff1f;為什么發生SQL注入&#xff1f;SQL注入的分析SQL的注入流程判斷SQL注入點判斷注入類型SQL注入的通常方法防止SQL注入SQL注入的定義 SQL注入是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串&#xff0c…

4個空格和一個tab有什么區別_火花塞為什么一換就是4個?只換一個不行嗎?

火花塞不是一個經常被提及的配件&#xff0c;但如果火花塞老化&#xff0c;車輛的整體性能將受到影響&#xff0c;更換火花塞其實也是日常保養的一部分&#xff0c;就像換機油和三濾一樣。不知道大家是否注意到&#xff0c;在做完保養之后&#xff0c;維修師傅會幫你檢查一下火…

小型云臺用的是什么電機_直流電機的工作原理是什么?未來的電動車都會用直流電機嗎?...

說起直流電機&#xff0c;其實我們每個人&#xff0c;每天都在用。是嗎&#xff1f;別驚訝&#xff0c;是的。手機&#xff0c;我們每天都在用&#xff0c;有消息或者有電話時&#xff0c;手機就開始振動。這個振動就是用直流電機來實現的。當然&#xff0c;直流電機在其他領域…

C語言、C++學習路線

文章目錄C語言 C語言大綱 C語言知識點總結圖 C語言視頻推薦基礎篇進階篇速成篇基礎入門之游戲實戰篇C語言核心鏈表文檔教程視頻教程文件C語言實例C C大綱崗位分析 C與C 編程基礎四大件數據結構與算法計算機網絡操作系統設計模式C視頻推薦C語言 C語言大綱 C語言知識點總結圖 C語…

2020年日歷_2020年《故宮日歷》發布:濃縮紫禁城600年滄桑

2020年《故宮日歷》。中國網記者 劉維佳/攝中國網8月26日訊(記者 劉維佳) 2020年《故宮日歷》發布會今日在故宮博物院建福宮舉行。2020年為庚子鼠年&#xff0c;亦正值紫禁城建成六百周年&#xff0c;因此&#xff0c;2020年《故宮日歷》是為紀念紫禁城六百周年而特別呈現。故宮…

計算機二級(C語言)備考

文章目錄考試詳情一點建議公共基礎知識&#xff08;10分&#xff09;著重點資源視頻教程文檔練習題考試詳情 一、選擇題 40分 二、程序填空題 18分 三、程序修改題 18分 四、程序設計題 24分 考試時間&#xff1a;120分鐘 一點建議 多練習題目&#xff0c;多思考&#xff0c…