javascript
JSP中嵌入java代码方式以及指令
JSP中嵌入java代碼的三種方式:
?
????(1)聲明變量或方法?:??<%!?聲明;?%>?:慎重使用,因為此方法定義的是全局變量
?
????(2)java片段(scriptlet):??<%?java代碼;?%>
?
????(3)表達式:用于輸出表達式的值到瀏覽器,<%=表達式??%>??在表達式中不能加分號(;)
?
?
?
JSP頁面的指令
????<%@?page?%>?//這個一般是寫在最頂上的比如導入等
????<%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"?contentType="text/html;?charset=UTF-8"%>
?
????指令的作用:設置JSP頁面的屬性和特征
?
????常用指令:
?
????(1)<%@?page?%>?或<jsp:directive.page??>?:常用屬性:language=""contentType="text/html;charset=UTF-8"
?
????pageEncoding=""?import="com.inspur.Dpet"
?
????isErrorPage="true|false"?指定當前頁面是否可以作為錯誤頁
?
????errorPage="error.jsp"?(error.jsp頁面中的isErrorPage="true")
?
????(2)<%@?include?file="url"%>?或<jsp:directive.include?>
?
????【注意】靜態包含,在編譯階段把其他文件包含進來一起編譯生成字節碼文件
?
?????問題:(1).被包含的文件中不能包含<html></html><body></body>;??
?
????????(2).file屬性賦值不能用表達式,不能帶參數
?
?
?
HTML中form、reset和submit標簽的用法:
????<form?name=”loginForm”?method=”post/get”?action=”…”?οnsubmit=”return?function()”>
????//action的內容是Servlet?Mapping當中的URL
????<input?type=”reset”?id=”reset”?name=”reset”?value=”重置”/>
????<input?type=”submit”?id=”submit”?name=”submit”?value=”登陸”/>
????</form>
?
?
form表單的method中post和get的區別:
Post提交的數據更具隱蔽性,適合提交大批量的數據
http://localhost:8080/booklib/user
?
而get提交的數據隱蔽性不好,會在地址欄內顯示出來而且地址欄最多允許255個字符
http://localhost:8080/booklib/user?username=admin&password=123&submit=登陸
?
上述這種通過get傳輸數據的方法也可以通過超鏈接實現:
<a?href="user?username=admin&password=123&submit=登陸"></a>
效果與get方法一樣,而且用超鏈接提交的數據也可以用String??userrname??=?request.getParameter("username");?得到數據,其中方法的參數是數據名稱即等號前的,值是等號后的。
也可以是:location.href="user?action=del&uid="+uid;??
或:location.replace(""user?action=del&uid="+uid");
Location.href?等同于location.assign。(怎么用?????????)
當使用replace的時候請求的地址不會放到list當中去?????什么意思??
?
Form中的action的值應是web.xml中的url-pattern的值:
Web容器在收到這個值后會解析這個值,然后拿這個值到web.xml中的url-pattern去匹配,直到找到對應的Servlet類,之后通過反射機制生成Servlet實例,然后到Servlet中的service()方法中去,然后根據method請求的是post還是get調用相應的doPost()和doGet()方法。
?
?
?
如何調用jsp中的request和response對象:
request和response對象來源:來自doGet(HttpServletRequest?request,?HttpServletResponse?response)
?
在jsp中可以直接用,用法如下:
request常用的方法有兩個即:
request.setAttibute(“key”,value)/requeset.getAttribute(“key”)
//一般在Servlet中用setAttribute()
//一般在jsp中用getAttribute()
?
????getAttribuet()得到的是一個對象即Object類型,用時需要進行強制類型轉換
request.setCharacterEncoding("UTF-8");
????String?username?=?request.getParameter("username");
String?password?=?request.getParameter("password");
?
????session對象來源:在doGet()中申明的HttpSession?session?=?request.getSession(true);
session:sessioin.setAttribute("key",value);?
//一般在Servlet中用setAttribute()
??(Object)session.getAttribute("key");
//一般在jsp中用getAttribute()
?
Servlet中的RequestDispatcher對象:
RequestDispatcher?rd?=?request.getRequestDispatcher(target);
????????rd.forward(request,response)
總結
以上是生活随笔為你收集整理的JSP中嵌入java代码方式以及指令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos6.7x86_64php7安
- 下一篇: Nginx + Apache 公用 80