日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSP程序设计

發布時間:2023/12/9 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSP程序设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JSP程序設計

  • JSP 的特點
  • JSP 開發方式
  • JSP 標簽
  • JSP 指令
    • <%@ page %> 指令
    • <%@ include%> 指令
    • <%@ taglib %> 指令
  • JSP 動作標簽
    • <jsp:include> 標簽
    • <jsp:forward> 標簽
    • <jsp:param> 標簽
    • <jsp:userBean> 標簽
    • <jsp:setProperty> 標簽
    • <jsp:getProperty> 標簽
  • out 對象
  • request 對象
  • response 對象
  • session 對象
  • pageContext 對象
  • exception 對象
    • JSP 的異常處理頁面
  • application 對象
  • 組件技術
    • useBean 動作標簽
    • getProperty 動作標簽
    • setProperty 動作標簽
  • encodeRedirectURL() 重定向
    • JSP 中文亂碼問題
  • HttpServlet
    • 重定向
    • 轉發
    • ServletConfig 對象
    • ServletContext 對象
    • 配置 Web 應用程序的初始化參數

JSP 的特點

跨平臺
????只要服務器支持 JSP,就可以運行使用 JSP 開發的 Web 應用程序
動靜結合
????有效區分靜態 HTML 代碼和動態數據,給程序的修改和擴展帶來便利
可重用組件
????共享 JavaBean ,標準標簽和自定義標簽一次生成重復使用
繼承 Servlet
????繼承了 Java Servlet 所有功能可以說 JSP 就是 Servlet ,而 JSP 更簡單易學
預編譯
????JSP 頁面在被服務器執行前已經被編譯好,且通常只進行一次編譯

JSP 開發方式

????1.直接用 JSP 構建動態網頁。
????2.在 JSP 頁面中加入 JavaBean,用 JavaBean 來封裝數據庫連接,用戶登錄與注冊、商業業務邏輯等。
????3.把 JSP、Servlet 和 JavaBean 結合起來,把網站邏輯結構完全放在 Servlet 中,把動態頁面的輸出放在 JSP 頁面中來完成。
????4.用 JavaEE 開發模型,把整個系統分成 3 個主要部分:視圖、控制器和模型。
????5.通過框架的整合應用來開發 Web 站點,比如 SSH 框架。

JSP 標簽

標簽標簽名說明
<%-- comment --%>comment隱藏注釋
<!--
????comment [<%= expression %>]
--!>
commentHTML 注釋
<% //comment %>
<% /*comment*/ %>
commentJava注釋
<%@ %>directive命令
<%! %>declaration定義變量和方法,所有 JSP 頁面中聲明的語句以 ; 結束
<% %>scripletJava 代碼
<%= %>expression輸出數值或表達式的結果
<jsp: >actions添加 bean ,或轉發 HTML

JSP 指令

一般格式
<%@ directive {attr=“value”} %>

<%@ page %> 指令

<%@ page contentType="MIME;charset=“UTF-8” %>
<%@ page import=“java.*” %>

屬性
contentTypeMIME 類型和 JSP 網頁的編碼方式
import導入 Java API

<%@ include%> 指令

<%@ include file=“relativeURL” %>
插入文本或代碼, 避免使用 <html> 、<body>

<%@ taglib %> 指令

<%@ taglib uri=“tagLibraryURI” prefix=“tagPrefix” %>

JSP 動作標簽

<jsp:include> 標簽

<jsp:include> page=“{url | <%= expression %>}” flush=“true | false” />
<jsp:include page=“{url | <%= expression %>}” flush=“true | false” >
????<jsp:param name=“” value=“” />
????…
<jsp:include>

<jsp:forward> 標簽

請求轉發
<jsp:forward> page=“{url | <%= expression %>}” />
<jsp:forward page=“{url | <%= expression %>}” >
????<jsp:param name=“” value=“” />
????…
<jsp:forward>

<jsp:param> 標簽

和 <jsp:include> <jsp:forward> <jsp:plugin> 合用
????<jsp:param name=“” value=“” />

<jsp:userBean> 標簽

請求轉發
<jsp:userBean> id=“beanInstanceName"
scope=“page request session application”
class=“package.class”
type=“package.class”
beanName=“package.class”
/>

<jsp:setProperty> 標簽

????<jsp:setProperty name=“”
????property=“*”
????| property=“*” [param=“parameterName” | value=“value”] />

<jsp:getProperty> 標簽

????<jsp:getProperty name=“beanInstanceName”
????property=“*”
????| property=“propertyName” />

JSP 的常用內置對象

out 對象

函數
print() / println()把數據輸出到客戶端
newLine()換行
flush()先把緩沖區中的數據輸出到客戶端,再清除緩沖區中的數據。
clearBuffer()清除緩沖區中的數據,但不會把數據輸出到客戶端。
getBufferSize()獲取緩沖區的大小
getRemaing()
isAutoFlush()是否自動刷新緩沖區,自動刷新返回 true
close()關閉輸出流

request 對象

函數
getParameter()返回值是字符串對象,指定請求參數不存在,返回 null 。
getParameterNames()獲取客戶端傳送給服務器端的所有請求參數名稱,其結果是一個 Enumeraion 類的實例。
getParameterValues(String name)獲取指定請求參數的所有值。
getAttribute(String name)獲取 request 對象中指定屬性的值,指定屬性不存在,就返回 null 。
setAttribute(String name,Object obj)設置 request 對象中的屬性及其屬性值。
removeAttribute(String name)刪除 request 對象中的指定屬性。
setCharacterEncoding(String name)設置客戶端請求的字符編碼。
getCharacterEncoding()獲取戶端請求的字符編碼。
getContentLength()以字節為單位獲取客戶端請求的大小。
getContentType()獲取客戶端請求的類型。
getContextPath()獲取 Context 路徑。
getLocalAddr()獲取服務器的 IP 地址。
getLocalName()獲取服務器的名稱。
getMethod()獲取客戶端向服務器端傳送數據的方法。
getProtocol()獲取客戶端向服務器端傳送數據所使用的協議名稱和版本。
getRequestedSessionId()獲取客戶端定制的會話 ID。
getRequestURI()獲取客戶端請求除去域名部分的路徑。
getrequestURL()獲取客戶端的請求的完整路徑。
getSession()獲取 session 對象。session 對象的 getId() 方法獲取 session 對象的 ID。
isRequestedSessionIdFromCookie()判斷請求的會話 ID 是否通過 Cookie 傳入。
isRequestedSessionIdFromURL()判斷請求的會話 ID 是否通過 URL 傳入。
isRequestedSessionIdValid()判斷請求的會話 ID 是否仍然有效。
isSecure()判斷客戶端請求是否是使用安全通道(如 https)發出的。

response 對象

函數
addCookie()添加 Cookie 對象,保存客戶端的相關信息。可以使用 request 對象的 getCookie() 方法獲取該 Cookie 對象。
addHeader(String name,String value)添加帶有指定名稱和字符串的響應頭。
addDateHeader(String name,String value)添加帶有指定名稱和日期值的響應頭。
containsHeader(String name)判斷指定名稱的響應頭是否存在。
flushBuffer()把緩沖區所有內容發送到客戶端。
getBufferSize()獲取緩沖區大小,如果沒使用緩沖區則返回 0 。
getCharacterEncoding()獲取響應的字符編碼方式 。
setCharacterEncoding(String)設置響應的字符編碼方式 。
getContentType()獲取響應的MIME類型 。
getOutputStream()獲取客戶端的輸出流 。
sendError()向客戶端發送錯誤信息。
sendRedirect()重新定向客戶端的請求。
setContent()設置響應的內容 MIME 類型。
setContentLength()設置響應內容的長度(字節數)。
setHeader()設置指定名稱和字符串的響應頭,該 Header 信息將傳達到客戶端,如果不存在就設置,存在則覆蓋。
setDateHeader()設置指定名稱和日期值的響應頭,該 Header 信息將傳達到客戶端,如果不存在就設置,存在則覆蓋。

session 對象

當一個用戶首次訪問服務器上的一個 JSP 頁面時,JSP 引擎產生一個 session 對象,同時分配一個 String 類型的 ID 號。JSP 引擎同時將這個 ID 號發送到客戶端,存放在 cookie 中,這樣 session 對象和用戶之間就建立了一一對應關系。

函數
setAttribute(String name,Object value)設定指定名字的屬性值,并且把它存儲在 session 對象中,如果屬性已存在,則更新屬性的值 。
getAttribute(String name)獲取 session 對象中指定屬性值,如果屬性不存在,將會返回 null 。
removeAttribute(String name)刪除 session 對象中指定屬性 。
getAttribueNames()返回 session 對象中所有屬性的名稱,結果是一個 Enumeraion 類的實例。
getLastAccessedTime()返回最后發送請求的時間。
setMaxInactiveInterval(int interval)設置 session 的有效時間,單位為 s。
getMaxInactiveInterval()返回 session 的有效時間,單位為 s。
invalidate()使 session 對象失效,,存放在 session 對象中的所有對象都不能再被訪問。
isNew()判斷目前 session 是否為新的 session 。
getCreateTime()返回 session 對象被創建時間,單位為 ms 。
getId()返回 session 對象的 ID。

pageContext 對象

函數
setAttribute(String name,Object attr)用于在頁面范圍內設置指定屬性和屬性值。
setAttribute(String name,Object attr,int scope)用于在指定范圍內設置指定屬性和屬性值。
getAttribute(String name,int scope)用于在指定范圍內獲取屬性值。
getAttribute(String name)獲取頁面范圍內的屬性值。
getOut()返回 out 對象。
getPage()返回 page 對象。
getRequest()返回 request 對象。
getSession()返回 session 對象。
getServletConfig)返回 config 對象。
getException()返回 exception 對象。
getServletContext()返回 application 對象。
findAttribute(String name)按照 page、request、session、application 范圍的順序實現對指定屬性的搜索,返回其屬性值或 null 。
forward(String relativeUrlPath)重定向到另一個頁面或者 Servlet 組件上。
release()釋放 pageContext 所占資源。
include(String relativeUrlPath)在當前位置包含另一文件。
removeAttribute(String name)刪除所有對象范圍或特定對象范圍中的指定屬性。

exception 對象

函數
getMessage()返回描述異常錯誤的提示信息。
getLocalizedMessage()獲取本地化錯誤信息。
printStackTrace()輸出異常對象及其堆棧跟蹤信息。
toString()返回描述異常錯誤的提示信息。

JSP 的異常處理頁面

<%@ page contentType="text/html;charset=UTF-8" isErrorPage="true" %> <html> <head><title>哦~出錯了</title> </head> <body> <%out.print(exception.getLocalizedMessage() + "<br>");out.print(exception.getMessage() + "<br>");out.print(exception.toString() + "<br>"); %> </body> </html>

application 對象

函數
getAttribute(string name)返回 application 對象中的指定屬性的值 。
getAttributeNames()以 Enumeration 類型返回 application 對象中的所有屬性的名字。
getServerInfo返回 servlet 容器名稱和版本信息 。
getContext(String uripath)返回指定 WebApplication 的 application 對象 。
getMimeType(String file)返回指定文件的 MIME 類型。
getResource(String path)返回指定資源(文件及目錄)的 URL 路徑。
getServlet(String name)返回指定 Servlet。
setAttribute(String name,Object obj)設置 application 對象中指定屬性。
removeAttribute(String name)刪除 application 對象中指定屬性。
log(String name)把消息寫入 Servlet 的日志文件。
isRequestedSessionIdFromCookie()判斷請求的會話 ID 是否通過 Cookie 傳入。

JavaBean
一種 Java 語言寫成的可重用組件,一種 Java 類,通過封裝屬性和方法成為具有某種功能或者處理某個業務的對象。

組件技術

COM、COM+、JavaBeans、EJB 和 CORBA。
*可視 Bean
是在畫面上可以顯示的 Bean,通過屬性接口接收數據并顯示在畫面。

*不可視 Bean
即 JSP 中時常使用的 Bean,在程序內部起作用,用于求值、存儲用戶數據等。

*JavaBean 定義規范
1.必須有一個無參的構造函數。
2.所以屬性提供 public 修飾的 getter 和 setter 方法。
3.對于 boolean 類型的屬性,其 getter 方法的形式為 isXXX ,XXX為首字母大寫的屬性名。
4.對于數組類型的屬性,要提供形式為 getXXX 和 setXXX 的方法。

useBean 動作標簽

<jsp:useBean id="bean 的名字" class="創建 bean 的類" scope="bean 有效范圍"> </jsp:useBean><jsp:useBean id="bean 的名字" class="創建 bean 的類" scope="bean 有效范圍"/>

getProperty 動作標簽

<jsp:getProperty name="bean 的名字" property="beans 的屬性"> </jsp:getProperty ><jsp:getProperty name="bean 的名字" property="beans 的屬性"/>

setProperty 動作標簽

<jsp:setProperty name="bean 的名字" property="beans 的屬性" value="<%=expression%>"> </jsp:setProperty ><jsp:setProperty name="bean 的名字" property="beans 的屬性" value="<%=expression%>"/>

encodeRedirectURL() 重定向

<% String str = response.encodeRedirectURL("x.jsp");%> <br><form action="<%=str%>" method="post" name="form"> </form>

保證不同網頁間 session 對象是完全相同的。
原帖地址: response encodeRedirectURL encodeURL作用.

JSP 中文亂碼問題

1.在 JSP文件中,定義好文檔編碼方式為 UTF-8

<%@ page contentType="text/html;charset=UTF-8" %>

2.響應頁面設置字符集為 UTF-8

out.print("<br>"+new String("張三".getBytes("ISO8859-1"),"UTF-8"));

3.控制層響應跳轉時,設置字符集為 UTF-8

response.setContentType("text/html;charset=utf-8");

原帖地址: Web開發中的中文亂碼問題.

Servlet

HttpServlet

重定向

response.sendRedirect(request.getContextPath()+fileurl);

轉發

request.getRequestDispatcher(request.getContextPath()+fileurl).forward(request,response);

ServletConfig 對象

//獲取 ServletConfig 對象 1.HttpServletpublic ServletConfig getServletConfig()//ServletConfig 設置 Filter、Servlet 的配置信息 //在 @WebServlet 注解的屬性中設置 Servlet 配置信息 @WebServlet(urlPatterns={""}, initParams={@WebInitParam(name="",value=""), @WebInitParam(name="",value="")...})

ServletConfig 對象

方法功能
String getInitParameter(String name)返回初始化參數值
Enumeration getInitParameterNames()返回 Enumeration 對象
ServletContext getServletContext()返回一個代表當前 Web 應用的 ServletContext 對象
String getServletName()返回 Servlet 的名字

ServletContext 對象

//獲取 javax.servlet.ServletContext 對象 1.HttpServletpublic javax.servlet.ServletContext getServletContext() 2.HttpServletRequest public abstract javax.servlet.ServletContext getServletContext() 3.ServletConfigpublic javax.servlet.ServletContext getServletContext()

ServletContext 對象

方法功能
String getMimeType(String s)獲取 MIME 類型(大類型/小類型) text/html
void setAttribute(String s, Object o)域對象
Enumeration getAttributeNames()返回所有存放在 ServletContext 中的域屬性名
Object getAttribute(String s)
void removeAttribute(String s)
String getRealPath(String var1)獲取文件真實路徑
URL getResource(String path)
InputStream getResourceAsStream(String path)
Enumeration getInitParameterNames()返回所有 ServletContext 域屬性名
String getInitParameter(Stirng name)返回 ServletContext 域屬性值

配置 Web 應用程序的初始化參數

1.在 Web.xml 中,配置 Web 應用的初始化信息。

<context-param><context-name>參數名</context-name><context-value>參數值</context-value> </context-param> ...

2.使用 ServletContext 接口中的 getInitParameterNames() 和 getInitParameter(Stirng name) 方法,分別獲取參數名和參數值。

//在 HttpServlet 中 ServletContext context = this.getServletContext(); Enumeration<String> paramNames = context.getInitParameterNames(); while(paramNames.hasMoreElements()){String name = paramNames.nextElement(); //參數名String value = context.getInitParameter(name); //參數值 }

或者創建 web.property

#web.properties name=value

總結

以上是生活随笔為你收集整理的JSP程序设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。