亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP+Servlet (review)

2019-11-08 02:59:07
字體:
來源:轉載
供稿:網友

jsp+Servlet復習

  這個世界上是先有雞還是蛋呢?這個問題永遠摸不清。。。。但是JSP和Servlet的關系卻很明確,是先有的Servlet,在有的JSP!此篇是鞏固一下框架前的基礎,SPRing和SpringMVC都是和Servlet有關系的,復習一下基礎會加深對框架的理解

一、Servlet   既然先有的Servlet,那就讓我們先來聊聊Servlet。      1.什么是Servlet?    下面引用百度的一段定義:

Servlet(Server Applet),全稱java Servlet,暫無中文譯文。是用Java編寫的服務器端程序。其主要功能在于交互式地瀏覽和修改數據,生成動態Web內容。狹義的Servlet是指Java語言實現的一個接口,廣義的Servlet是指任何實現了這個Servlet接口的類,一般情況下,人們將Servlet理解為后者。

  Servlet創建后需要繼承HttpServlet,而其中初始化的doGet,doPost方法便是我們最常用到的,而自身的service方法包含了doGet和doPost方法。      我接下來要說的是Servlet中的加載流程(這個加載流程涉及到SpringMVC框架配置文件加載的基礎),而對于它的概念再次不在多說,比較抽象,你可以把它想象為一個盒子,而這個盒子的外層包裹著一個比它大的盒子名為tomcat,而在它里面的盒子就是我們所寫的一個個的web項目。

  2.Servlet的加載流程:(接下來我用一個例子來說明)

 ?、俦热缥覀僇SP中有個超鏈接做的get請求如下:   

<a href="servlet/HelloServlet">Go</href>

 ?、趧摻ㄒ粋€Servlet,該Servlet需要繼承HttpServlet這個抽象類,而HttpServlet類是繼承了GenericServlet(也是抽象類)。   

//此類是在web工程的src目錄下直接創建的public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //控制臺輸出Get請求 System.out.println("處理Get請求。。。。"); //輸出在網頁上Hello Servlet! PrintWriter out = resp.getWriter(); resp.setContentType("text/html;charset = utf-8"); out.println("<strong>Hello Servlet!</strong><br>"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub super.doPost(req, resp); }}

 ?、劢酉聛砦覀僿eb.xml中的配置   

<servlet> <servlet-name>HelloServlet</servlet-name> //此處的類名要全拼,包括包名,而此處其實就對應了web框架的配置,比如SpringMVC中的DispatchServlet <servlet-class>servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

接下來說的是Servlet的加載流程:(各位客官看好!~) Get方式請求Servlet→Go 順序是這樣的:

前端頁面的Get請求,通過點擊Go來尋取到href這個鏈接 ↓web.xml中你配置的servlet-mapping中的url-pattern會攔截你的請求,此處是/攔截所有請求 ↓通過url-pattern來找到你的servlet-mapping中的servlet-name ↓此刻servlet-mapping中的servlet-name找到serlvet中對應servlet-name ↓serlvet中對應servlet-name找到對應的servlet-class 也就是我們所編寫的java類 ↓找到我們所寫的doGet方法

就上面的加載流程而言,有沒有覺得其實是和SpringMVC的加載流程是相似的,因為SpringMVC的Servlet類就是DispatchServlet,所以加載映射的流程也是和這個類似的

3.servlet與jsp九大內置對象的關系對應:

jsp對象 servlet獲得
out resp.getWriter
request service方法中的req參數
response service方法中的resp參數
session req.getSession()
application getServletContext()
exception Throwable
page this
pageContext PageContext
Config getServletConfig()

4.Servlet的路徑

//下面的寫法表示根目錄的路徑Servlet的路徑跳轉問題:絕對路徑的前綴String base = request.getContextPath();

二、JSP

   JSP是Servlet

 JSP內置對象(不用new可以在JSP中直接使用)  一共分為九個:    常用的有:out,request,respone,session,application    還有幾個不常用的:Page,pageContext,exception,config

out:

//我們在JSP打印輸出最長用的內置對象就是out,例如out.print("");

request和response: 這里這兩個一起說

//用戶發送請求request//在request對象中,我們最長用到的方法如下:通過這個方法我們可以獲取html中的文本框內容,與之相應的是namerequest.getParamter("文本框的name");//關于跳轉頁面request.getRequestDispatcher("xx.jsp").forward(req,resp);//用上面的做頁面的跳轉,url不變,此行為是服務端行為,名為請求轉發//服務器給用戶響應response//在response方法也很多,我們可以通過reponse去添加cookie,給服務端response.addCookie();//關于跳轉頁面response.sendRediect("xx.jsp");//用上面的做頁面的跳轉,url會發生變化而且其實是發生了2次請求,名為請求重定向

session:

在服務器的內存中保存這不同用戶的sessionSession對象在第一個JSP頁面被裝載時自動創建,完成會話期管理Session對象是HttpSession類的實例//我們可以用一下方法來設置Session的最大存活時間session.setMaxInactiveInterval(10);//此處的括號里是以秒(/s)來作為單位注:創建新的會話,舊的會話SessionId扔存在服務器,除非會話自動超時。我們也可以通過在web.xml里配置session的超時時間<session-config> <session-timeout>10</session-timeout>//此處是min分鐘做單位</session-config>

application對象(屬于服務器):

·application對象實現了用戶間數據的共享,可以存放全局變量·application開始于服務器的啟動,終止與服務器的關閉·在用戶的前后連接或不同用戶之間的連接中,可以對application對象的同一屬性進行操作·在任何地方對application對象屬性的操作,都將影響到其他用戶對此的訪問·服務器的啟動和關閉決定了application對象的生命·application對象是ServletContext類的實例

page對象:

page對象就是指向當前JSP頁面本身,有點像類中的this指針,它是java.lang.Object類的實例

pageContext對象:

·提供了對JSP頁面內所有的對象及名字空間的訪問·可以訪問本頁所在的session,也可以取本頁所在的application的某一屬性值·相當于頁面中所有功能的集大成者·本類也叫pageContext

JSP狀態管理

①http協議的無狀態性: 這里可以舉個例子:就像一個故事:很久很久以前,有一個叫做“從前有座山”商店,店主是一個得了癡呆癥的老和尚(這里是指web服務器),每次放學 小明都在這里買東西(客戶端http發起請求),然而每次這個老和尚都記不住小明。所以有了以下的兩大機制

②保存用戶狀態的兩大機制 Session,和Cookie,Session是保存在服務端的,而Cookie是保存在客戶端的也就是瀏覽器上。

③Cookie的創建與使用

Cookie cookie = new Cookie(name,value) 我們的Cookie在平時的項目里用到的最多的地方就是購物車的Cookie和用戶登錄時的記住秘密。

三、二者的區別

1.jsp經編譯后就變成了Servlet.(JSP的本質就是Servlet,JVM只能識別java的類,不能識別JSP的代碼,Web容器將JSP的代碼編譯成JVM能夠識別的java類)2.jsp更擅長表現于頁面顯示,servlet更擅長于邏輯控制.3.Servlet中沒有內置對象,Jsp中的內置對象都是必須通過HttpServletRequest對象,HttpServletResponse對象以及HttpServlet對象得到.Jsp是Servlet的一種簡化,使用Jsp只需要完成程序員需要輸出到客戶端的內容,Jsp中的Java腳本如何鑲嵌到一個類中,由Jsp容器完成。而Servlet則是個完整的Java類,這個類的Service方法用于生成對客戶端的響應。

JSP是Servlet技術的擴展,本質上就是Servlet的簡易方式。JSP編譯后是“類servlet”。Servlet和JSP最主要的不同點在于,Servlet的應用邏輯是在Java文件中,并且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名為.jsp的文件。JSP側重于視圖,Servlet主要用于控制邏輯。

后面還有一片與框架非常貼近的webServlet監聽器(Listener)篇!



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品国产综合区久久久久久久| 欧美激情一区二区三区久久久| 亚洲国内精品在线| www国产精品视频| 国产成人亚洲综合91| 欧美精品制服第一页| 久久免费成人精品视频| 久久久国产精彩视频美女艺术照福利| 久久视频在线看| 欧美日韩成人网| 亚洲人成网站色ww在线| 亚洲国产精品中文| 亚洲精品网址在线观看| 色综合久久中文字幕综合网小说| 亚洲自拍小视频| 欧美交受高潮1| 亚洲成人a**站| 欧美一区二区色| 91精品国产91久久久久福利| 国产a∨精品一区二区三区不卡| 欧美一级视频在线观看| 亚洲伊人第一页| 欧美日韩国产va另类| 亚洲va久久久噜噜噜| 欧美大尺度激情区在线播放| 成人做爰www免费看视频网站| 欧美色欧美亚洲高清在线视频| 日产日韩在线亚洲欧美| 在线播放日韩精品| 亚洲激情小视频| 欧美日韩在线一区| 18久久久久久| 日韩福利伦理影院免费| 欧美人在线视频| 国产精品av免费在线观看| 97人人模人人爽人人喊中文字| 97国产一区二区精品久久呦| 搡老女人一区二区三区视频tv| 一区二区欧美日韩视频| 成人免费在线视频网址| 亚洲视频在线观看免费| 成人a在线观看| 成人动漫网站在线观看| 日韩精品视频免费专区在线播放| 91人人爽人人爽人人精88v| 国产精品久久久久久久天堂| 亚洲欧美日韩中文视频| 日本19禁啪啪免费观看www| 日韩免费中文字幕| 国产精品久久久久久久一区探花| 成人疯狂猛交xxx| 91产国在线观看动作片喷水| 亚洲精品98久久久久久中文字幕| 中文日韩电影网站| 91sa在线看| 精品久久久国产| 日韩欧美成人免费视频| 亚洲丝袜av一区| 国产精品一区二区在线| 久久亚洲国产精品成人av秋霞| 日日噜噜噜夜夜爽亚洲精品| 久久夜色精品亚洲噜噜国产mv| 亚洲一区制服诱惑| 国产精品黄色影片导航在线观看| 国产精品毛片a∨一区二区三区|国| 成人精品视频99在线观看免费| 91高清视频在线免费观看| 自拍偷拍亚洲欧美| 亚洲精品99久久久久中文字幕| 日韩不卡在线观看| 国产精品一区二区久久久久| 国产一区二区三区在线免费观看| 一区二区三区在线播放欧美| 成人午夜两性视频| 国产精品爽爽爽| 日韩中文综合网| 亚洲国产精品一区二区久| 最新国产精品亚洲| 成人激情电影一区二区| 狠狠久久五月精品中文字幕| 国产精品69av| 91po在线观看91精品国产性色| 日韩国产高清污视频在线观看| 综合网日日天干夜夜久久| 成人免费视频97| 欧美在线视频一二三| 久久国产精品视频| 在线亚洲欧美视频| 国产精品久久久久久久久久三级| 国产成人亚洲综合青青| 国内精品久久久久久中文字幕| 亚洲成年人在线| 欧美日韩一二三四五区| 精品福利视频导航| 亚洲精品有码在线| 精品国产乱码久久久久久婷婷| 国模gogo一区二区大胆私拍| 95av在线视频| 亚洲午夜av电影| 午夜精品国产精品大乳美女| 91精品国产高清自在线看超| 国内精品久久久久久影视8| 亚洲精品影视在线观看| 亚洲精品98久久久久久中文字幕| 欧美资源在线观看| 日韩欧美成人免费视频| 国产一区二中文字幕在线看| 色偷偷噜噜噜亚洲男人| 91chinesevideo永久地址| 中文字幕日韩综合av| 亚洲欧美制服第一页| 亚洲国产第一页| 亚洲精品99久久久久| 欧美专区中文字幕| 欧美性猛交xxxx富婆| 日韩中文字幕在线视频| 亚洲激情视频在线观看| 欧美伊久线香蕉线新在线| 国产亚洲一区二区在线| 国产精品看片资源| 精品福利在线视频| 久久亚洲精品中文字幕冲田杏梨| 国产+成+人+亚洲欧洲| 亚洲福利影片在线| 亚洲视频在线免费观看| 亚洲欧洲免费视频| 久久久噜噜噜久久久| 夜夜嗨av色一区二区不卡| 日韩国产欧美精品在线| 亚洲人成五月天| 97在线观看免费| 91久久在线播放| 精品性高朝久久久久久久| 欧美午夜片在线免费观看| 国产精品久久久久久久av电影| 91视频-88av| 欧美日韩另类在线| 九九热最新视频//这里只有精品| 亚洲欧洲日韩国产| 亚洲a∨日韩av高清在线观看| 一区二区三区日韩在线| 午夜精品久久久久久久99热浪潮| 45www国产精品网站| 欧美性受xxxx白人性爽| 欧美亚洲成人xxx| 亚洲精品av在线| 欧美日韩加勒比精品一区| 欧美性做爰毛片| 国产99视频精品免视看7| 国自产精品手机在线观看视频| 国产亚洲激情视频在线| 亚洲欧美一区二区三区在线| 91中文字幕一区| 久久免费视频网| 中文在线资源观看视频网站免费不卡| 亚洲精品乱码久久久久久金桔影视| 久久理论片午夜琪琪电影网| 日本亚洲欧洲色| 欧美高清性猛交| 国产一区欧美二区三区| 亚洲激情在线视频| 国产伦精品免费视频| 久久99久久99精品中文字幕| 亚洲国产欧美久久|