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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSP程序设计

發(fā)布時(shí)間:2023/12/9 javascript 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSP程序设计 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

JSP程序設(shè)計(jì)

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

JSP 的特點(diǎn)

跨平臺(tái)
????只要服務(wù)器支持 JSP,就可以運(yùn)行使用 JSP 開發(fā)的 Web 應(yīng)用程序
動(dòng)靜結(jié)合
????有效區(qū)分靜態(tài) HTML 代碼和動(dòng)態(tài)數(shù)據(jù),給程序的修改和擴(kuò)展帶來便利
可重用組件
????共享 JavaBean ,標(biāo)準(zhǔn)標(biāo)簽和自定義標(biāo)簽一次生成重復(fù)使用
繼承 Servlet
????繼承了 Java Servlet 所有功能可以說 JSP 就是 Servlet ,而 JSP 更簡(jiǎn)單易學(xué)
預(yù)編譯
????JSP 頁面在被服務(wù)器執(zhí)行前已經(jīng)被編譯好,且通常只進(jìn)行一次編譯

JSP 開發(fā)方式

????1.直接用 JSP 構(gòu)建動(dòng)態(tài)網(wǎng)頁。
????2.在 JSP 頁面中加入 JavaBean,用 JavaBean 來封裝數(shù)據(jù)庫連接,用戶登錄與注冊(cè)、商業(yè)業(yè)務(wù)邏輯等。
????3.把 JSP、Servlet 和 JavaBean 結(jié)合起來,把網(wǎng)站邏輯結(jié)構(gòu)完全放在 Servlet 中,把動(dòng)態(tài)頁面的輸出放在 JSP 頁面中來完成。
????4.用 JavaEE 開發(fā)模型,把整個(gè)系統(tǒng)分成 3 個(gè)主要部分:視圖、控制器和模型。
????5.通過框架的整合應(yīng)用來開發(fā) Web 站點(diǎn),比如 SSH 框架。

JSP 標(biāo)簽

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

JSP 指令

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

<%@ page %> 指令

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

屬性
contentTypeMIME 類型和 JSP 網(wǎng)頁的編碼方式
import導(dǎo)入 Java API

<%@ include%> 指令

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

<%@ taglib %> 指令

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

JSP 動(dòng)作標(biāo)簽

<jsp:include> 標(biāo)簽

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

<jsp:forward> 標(biāo)簽

請(qǐng)求轉(zhuǎn)發(fā)
<jsp:forward> page=“{url | <%= expression %>}” />
<jsp:forward page=“{url | <%= expression %>}” >
????<jsp:param name=“” value=“” />
????…
<jsp:forward>

<jsp:param> 標(biāo)簽

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

<jsp:userBean> 標(biāo)簽

請(qǐng)求轉(zhuǎn)發(fā)
<jsp:userBean> id=“beanInstanceName"
scope=“page request session application”
class=“package.class”
type=“package.class”
beanName=“package.class”
/>

<jsp:setProperty> 標(biāo)簽

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

<jsp:getProperty> 標(biāo)簽

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

JSP 的常用內(nèi)置對(duì)象

out 對(duì)象

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

request 對(duì)象

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

response 對(duì)象

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

session 對(duì)象

當(dāng)一個(gè)用戶首次訪問服務(wù)器上的一個(gè) JSP 頁面時(shí),JSP 引擎產(chǎn)生一個(gè) session 對(duì)象,同時(shí)分配一個(gè) String 類型的 ID 號(hào)。JSP 引擎同時(shí)將這個(gè) ID 號(hào)發(fā)送到客戶端,存放在 cookie 中,這樣 session 對(duì)象和用戶之間就建立了一一對(duì)應(yīng)關(guān)系。

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

pageContext 對(duì)象

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

exception 對(duì)象

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

JSP 的異常處理頁面

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

application 對(duì)象

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

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

組件技術(shù)

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

*不可視 Bean
即 JSP 中時(shí)常使用的 Bean,在程序內(nèi)部起作用,用于求值、存儲(chǔ)用戶數(shù)據(jù)等。

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

useBean 動(dòng)作標(biāo)簽

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

getProperty 動(dòng)作標(biāo)簽

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

setProperty 動(dòng)作標(biāo)簽

<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>

保證不同網(wǎng)頁間 session 對(duì)象是完全相同的。
原帖地址: response encodeRedirectURL encodeURL作用.

JSP 中文亂碼問題

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

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

2.響應(yīng)頁面設(shè)置字符集為 UTF-8

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

3.控制層響應(yīng)跳轉(zhuǎn)時(shí),設(shè)置字符集為 UTF-8

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

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

Servlet

HttpServlet

重定向

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

轉(zhuǎn)發(fā)

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

ServletConfig 對(duì)象

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

ServletConfig 對(duì)象

方法功能
String getInitParameter(String name)返回初始化參數(shù)值
Enumeration getInitParameterNames()返回 Enumeration 對(duì)象
ServletContext getServletContext()返回一個(gè)代表當(dāng)前 Web 應(yīng)用的 ServletContext 對(duì)象
String getServletName()返回 Servlet 的名字

ServletContext 對(duì)象

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

ServletContext 對(duì)象

方法功能
String getMimeType(String s)獲取 MIME 類型(大類型/小類型) text/html
void setAttribute(String s, Object o)域?qū)ο?/td>
Enumeration getAttributeNames()返回所有存放在 ServletContext 中的域?qū)傩悦?/td>
Object getAttribute(String s)
void removeAttribute(String s)
String getRealPath(String var1)獲取文件真實(shí)路徑
URL getResource(String path)
InputStream getResourceAsStream(String path)
Enumeration getInitParameterNames()返回所有 ServletContext 域?qū)傩悦?/td>
String getInitParameter(Stirng name)返回 ServletContext 域?qū)傩灾?/td>

配置 Web 應(yīng)用程序的初始化參數(shù)

1.在 Web.xml 中,配置 Web 應(yīng)用的初始化信息。

<context-param><context-name>參數(shù)名</context-name><context-value>參數(shù)值</context-value> </context-param> ...

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

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

或者創(chuàng)建 web.property

#web.properties name=value

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。