JSP && Struts2

15年-16用的jsp,后來基本上沒用過了,現(xiàn)在都2022年了抛姑,我來開倒車了...

參考JSP開發(fā)-廖雪峰

jsp出現(xiàn)的意義

Servlet就是一個能處理HTTP請求赞厕,發(fā)送HTTP響應(yīng)的小程序,而發(fā)送響應(yīng)無非就是獲取PrintWriter定硝,然后輸出HTML:

PrintWriter pw = resp.getWriter();
pw.write("<html>");
pw.write("<body>");
pw.write("<h1>Welcome, " + name + "!</h1>");
pw.write("</body>");
pw.write("</html>");
pw.flush();

那有沒有更簡單的輸出HTML的辦法皿桑?

有!
我們可以使用JSP蔬啡。
JSP是Java Server Pages的縮寫诲侮,它的文件必須放到/src/main/webapp下,文件名必須以.jsp結(jié)尾星爪,整個文件與HTML并無太大區(qū)別浆西,但需要插入變量粉私,或者動態(tài)輸出的地方顽腾,使用特殊指令<% ... %>。

語法

整個JSP的內(nèi)容實際上是一個HTML诺核,但是稍有不同:

  • 包含在<%--和--%>之間的是JSP的注釋抄肖,它們會被完全忽略;
  • 包含在<%和%>之間的是Java代碼窖杀,可以編寫任意Java代碼漓摩;
  • 如果使用<%= xxx %>則可以快捷輸出一個變量的值。

內(nèi)置變量

JSP頁面內(nèi)置了幾個變量:

  • out:表示HttpServletResponse的PrintWriter入客;
  • session:表示當(dāng)前HttpSession對象管毙;
  • request:表示HttpServletRequest對象。
<html>
<head>
    <title>Hello World - JSP</title>
</head>
<body>
    <%-- JSP Comment --%>
    <h1>Hello World!</h1>
    <p>
    <%
         out.println("Your IP address is ");
    %>
    <span style="color:red">
        <%= request.getRemoteAddr() %>
    </span>
    </p>
</body>
</html>

指令

page指令引入Java類

<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>

include指令可以引入另一個JSP文件

<html>
<body>
    <%@ include file="header.jsp"%>
    <h1>Index Page</h1>
    <%@ include file="footer.jsp"%>
</body>

JSP Tag

<c:out value = "${sessionScope.user.name}"/>

JSP Tag需要正確引入taglib的jar包桌硫,并且還需要正確聲明夭咬,使用起來非常復(fù)雜,對于頁面開發(fā)來說铆隘,不推薦使用JSP Tag卓舵,因為我們后續(xù)會介紹更簡單的模板引擎,這里我們不再介紹如何使用taglib膀钠。

Struts2

取值

struts2中可以使用的取值方式:

  • jsp內(nèi)置對象取值
  • jstl標(biāo)簽+EL表達式取值
  • struts2標(biāo)簽+OGNL表達式

攔截器interceptor & 過濾器 filter

相同點:

  1. 都是一種java類
  2. 都能攔截客戶端發(fā)給服務(wù)器端的請求
  3. 攔截到請求之后都可以做一些相應(yīng)的處理,最后還可以把這個請求放行.
  4. 都需要實現(xiàn)各自相應(yīng)的接口以及在相應(yīng)的配置文件中配置.

不同點:

  1. 攔截器(interceptor)是struts2框架中的定義的,過濾器(filter)是web里面的對象,是J2EE標(biāo)準(zhǔn)里面定義的.

  2. 攔截器(interceptor)只會攔截器訪問action的請求,過濾器(filter)能夠攔截所有請求.

  3. 攔截器(interceptor)定義在struts.xml文件中,過濾器(filter)定義在web.xml文件中.

  4. 攔截器(interceptor)對象的創(chuàng)建掏湾、調(diào)用、銷毀是struts2框架負責(zé)的,過濾器(filter)對象的創(chuàng)建肿嘲、調(diào)用融击、銷毀服務(wù)器負責(zé)的.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市雳窟,隨后出現(xiàn)的幾起案子尊浪,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件际长,死亡現(xiàn)場離奇詭異耸采,居然都是意外死亡,警方通過查閱死者的電腦和手機工育,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門虾宇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人如绸,你說我怎么就攤上這事嘱朽。” “怎么了怔接?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵搪泳,是天一觀的道長。 經(jīng)常有香客問我扼脐,道長岸军,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任瓦侮,我火速辦了婚禮艰赞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肚吏。我一直安慰自己方妖,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布罚攀。 她就那樣靜靜地躺著党觅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪斋泄。 梳的紋絲不亂的頭發(fā)上杯瞻,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天打却,我揣著相機與錄音杨何,去河邊找鬼俭嘁。 笑死碘赖,一個胖子當(dāng)著我的面吹牛备徐,可吹牛的內(nèi)容都是我干的里逆。 我是一名探鬼主播系馆,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼刑巧,長吁一口氣:“原來是場噩夢啊……” “哼摔认!你這毒婦竟也來了逆皮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤参袱,失蹤者是張志新(化名)和其女友劉穎电谣,沒想到半個月后秽梅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡剿牺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年企垦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晒来。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡钞诡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出湃崩,到底是詐尸還是另有隱情荧降,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布攒读,位于F島的核電站朵诫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏薄扁。R本人自食惡果不足惜剪返,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泌辫。 院中可真熱鬧随夸,春花似錦、人聲如沸震放。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽殿遂。三九已至,卻和暖如春乙各,著一層夾襖步出監(jiān)牢的瞬間墨礁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工耳峦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留恩静,地道東北人。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓蹲坷,卻偏偏與公主長得像驶乾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子循签,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內(nèi)容