javascript
JSP动作标签
JSP的動(dòng)作標(biāo)簽由服務(wù)器解釋執(zhí)行,動(dòng)作標(biāo)簽的格式是固定的,
- <jsp:forward>:這個(gè)動(dòng)作標(biāo)簽的用處,與Servlet的請(qǐng)求轉(zhuǎn)發(fā)是一樣的
- <jsp:include>:這個(gè)標(biāo)簽的用處與Servlet的請(qǐng)求包含一致的,
- <jsp:param>:這個(gè)標(biāo)簽用來作為forward和include的子標(biāo)簽,用來給轉(zhuǎn)發(fā)或者包含的標(biāo)簽傳遞參數(shù)?
來看一個(gè)例子:
a.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body> <h1>a.jsp</h1> <jsp:forward page="b.jsp"><jsp:param value="yu" name="username"/><jsp:param value="123" name="password"/> </jsp:forward> </body> </html>b.jsp
<h1>b.jsp</h1> <%String username = request.getParameter("username");String password = request.getParameter("password"); %> <%= username%> <%= password%>
我們請(qǐng)求a.jsp發(fā)現(xiàn)服務(wù)器給我們響應(yīng)的內(nèi)容包含兩個(gè)兩個(gè)jsp頁面,在來查看生成的java文件,發(fā)現(xiàn)生成了兩個(gè)java文件,可見這種包含,與JSP的include指令是有區(qū)別的,查看源碼,發(fā)現(xiàn)a_jsp.javad的_jspService方法中多了這么一句代碼:
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "b.jsp", out, false);在a.jsp中的<jsp:include>動(dòng)作標(biāo)簽被轉(zhuǎn)換為了一種方法調(diào)用,并將b.jsp當(dāng)作參數(shù)傳遞了進(jìn)去,同時(shí)還有request和response兩個(gè)參數(shù),可見它們使用了同一個(gè)request和respnse,所以能能同時(shí)對(duì)客戶端響應(yīng),注意只有使用<jsp:include>標(biāo)簽,a.jsp和b.jsp才可以都對(duì)客戶端進(jìn)行響應(yīng),<jsp:forward>標(biāo)簽,使用該標(biāo)簽的jsp頁面只能設(shè)置響應(yīng)頭。如果使用的是<jsp:forward>標(biāo)簽,那么服務(wù)器給我們的響應(yīng)只有b.jsp。
?
在context.xml中配置reloadable
當(dāng)我們修改文件之后,一般要重啟服務(wù)器,在在context.xml中配置reloadable=true,之后可避免這個(gè)問題,這種方式適合在項(xiàng)目開發(fā)階段使用
<Context reloadable="true"> </Context>
?
轉(zhuǎn)載于:https://www.cnblogs.com/yusiming/p/9780418.html
總結(jié)
- 上一篇: 开源大数据周刊-第102期
- 下一篇: gradle idea java ssm