1、jsp基礎(chǔ)
1.1 jsp的作用
* Servlet:
>缺點(diǎn):不適合設(shè)置html響應(yīng)體,需要大量的response.getWriter().print(“<html>”)
>優(yōu)點(diǎn):動(dòng)態(tài)資源,可以編程。
* html:
>缺點(diǎn):html是靜態(tài)頁(yè)面,不能包含動(dòng)態(tài)信息
>優(yōu)點(diǎn):不用為輸出html標(biāo)簽而發(fā)愁
* jsp(java server pages):
>優(yōu)點(diǎn):在原有html的基礎(chǔ)上添加java腳本,構(gòu)成jsp頁(yè)面。
1.2 jsp和Servlet的分工
* JSP:
>作為請(qǐng)求發(fā)起頁(yè)面,例如顯示表單、超鏈接
>作為請(qǐng)求結(jié)束頁(yè)面,例如顯示數(shù)據(jù)
* Servlet:
>作為請(qǐng)求中處理數(shù)據(jù)的環(huán)節(jié)。
1.3 jsp的組成
* jsp = html + Java腳本 + jsp標(biāo)簽
* jsp中無(wú)需創(chuàng)建即可使用的對(duì)象一共有9個(gè),被稱(chēng)為9大內(nèi)置對(duì)象。例如:request對(duì)象、out對(duì)象
* 3中Java腳本
> ?<%......%>:java代碼片段(常用),用于定義0~N條Java語(yǔ)句(方法內(nèi)能寫(xiě)什
么,它就放什么)
>? <%=......%>:Java表達(dá)式,用于輸出(常用),用于輸出一條表達(dá)式(或變量)
的結(jié)果。response.getWriter().print( ... );括號(hào)里能放什么,它就能放什么
> ?<%!......%>:聲明,用來(lái)創(chuàng)建類(lèi)的成員變量和成員方法(基本不用,但容易被考)
1.4 jsp和servlet分工的案例

form.jsp
?<body>
??<form?action="/JSPDemo/AServlet"?method="post">
?? 整數(shù)1:<input?type="text"?name="num1"?/><br/>
?? 整數(shù)2:<input?type="text"?name="num2"?/><br/>
?? <input?type="submit"?value="提交"/>
??</form>
??</body>
Result.jsp
<body>
<%
Integer result = (Integer) request.getAttribute("result");
%>
<%=result %>
</body>
Servlet代碼
/**
?* jsp和servlet的分工
?*
?* @author趙奇
?*/
public?void?doPost(HttpServletRequest request, HttpServletResponse response)
throws?ServletException, IOException {
//獲取參數(shù)
String s1 = request.getParameter("num1");
String s2 = request.getParameter("num2");
//轉(zhuǎn)換成int類(lèi)型
int?num1 = Integer.parseInt(s1);
int?num2 = Integer.parseInt(s2);
//運(yùn)算
int?sum = num1 + num2;
//把結(jié)果保存到request域中
request.setAttribute("result", sum);
//轉(zhuǎn)換發(fā)哦result.jsp
request.getRequestDispatcher("/jia/result.jsp").forward(request,
response);
}
1.5 jsp原理(理解)
* jsp其實(shí)是一種特殊的Servlet
>當(dāng)jsp頁(yè)面第一次被訪問(wèn)時(shí),服務(wù)器會(huì)把jsp編譯成java文件(這個(gè)java其實(shí)是一個(gè)servlet類(lèi))
>然后再把java編譯成.class
>然后創(chuàng)建該類(lèi)對(duì)象
>最后調(diào)用它的service()方法
>第二次請(qǐng)求同一jsp時(shí),直接調(diào)用service()方法
*在tomcat的work目錄下可以找到j(luò)sp對(duì)應(yīng)的.java源代碼 ?
*查看jsp對(duì)象Java文件
> java腳本
> html
1.6 jsp注釋
* ?<%--......--%>:當(dāng)服務(wù)器把jsp我、編譯成java文件時(shí)已經(jīng)忽略了注釋部分