JSP經(jīng)典筆試題目附答案解析_第1頁
JSP經(jīng)典筆試題目附答案解析_第2頁
JSP經(jīng)典筆試題目附答案解析_第3頁
JSP經(jīng)典筆試題目附答案解析_第4頁
JSP經(jīng)典筆試題目附答案解析_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

JSP經(jīng)典筆試題目附答案解析1.引言1.1JSP技術(shù)背景介紹JavaServerPages(JSP)是由SunMicrosystems公司推出的一種動態(tài)網(wǎng)頁技術(shù)。它基于Java語言,使開發(fā)者能在HTML頁面中嵌入Java代碼,實(shí)現(xiàn)動態(tài)網(wǎng)頁的生成。JSP技術(shù)為創(chuàng)建基于Web的應(yīng)用程序提供了一個簡潔、高效、跨平臺的解決方案。自1999年推出以來,JSP技術(shù)逐漸成為企業(yè)級Web應(yīng)用開發(fā)的主流技術(shù)之一。它與JavaServlet技術(shù)緊密結(jié)合,為開發(fā)者提供了一種強(qiáng)大的、可擴(kuò)展的Web應(yīng)用開發(fā)平臺。隨著Java技術(shù)的不斷發(fā)展,JSP技術(shù)在Web開發(fā)領(lǐng)域的影響力日益增強(qiáng)。1.2經(jīng)典筆試題目的意義與價值經(jīng)典筆試題目是企業(yè)在招聘過程中篩選人才的重要依據(jù)。對于求職者來說,掌握J(rèn)SP技術(shù)的經(jīng)典筆試題目有助于提高面試通過率。同時,通過解答這些經(jīng)典筆試題目,可以鞏固和加深對JSP技術(shù)的理解和應(yīng)用。此外,經(jīng)典筆試題目還具有以下價值:檢驗(yàn)自己的技能水平:通過解答經(jīng)典筆試題目,可以了解自己在JSP技術(shù)方面的掌握程度,找出不足之處,有針對性地進(jìn)行學(xué)習(xí)和提高。提升解決問題的能力:經(jīng)典筆試題目往往涉及到實(shí)際開發(fā)中可能遇到的問題,解答這些問題有助于提升自己的編程能力和解決問題的能力。增強(qiáng)面試信心:熟悉經(jīng)典筆試題目,能夠在面試過程中更加從容應(yīng)對,提高面試成功的概率。2JSP基礎(chǔ)知識點(diǎn)回顧2.1JSP基本概念JSP(JavaServerPages)是一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),由SunMicrosystems公司主導(dǎo)制定。它是在服務(wù)器端執(zhí)行的Java技術(shù),允許開發(fā)者將Java代碼嵌入到HTML頁面中,從而實(shí)現(xiàn)動態(tài)網(wǎng)頁的生成。JSP通過在HTML頁面中嵌入Java代碼,使用戶可以方便地處理表單數(shù)據(jù)、訪問數(shù)據(jù)庫以及進(jìn)行其他復(fù)雜的業(yè)務(wù)邏輯處理。JSP頁面由HTML標(biāo)簽、JSP標(biāo)簽和Java代碼組成。當(dāng)用戶請求一個JSP頁面時,服務(wù)器會將JSP文件轉(zhuǎn)換成一個Servlet,然后編譯并執(zhí)行這個Servlet,最后將執(zhí)行結(jié)果返回給用戶。這使得JSP頁面具有很好的可維護(hù)性和可擴(kuò)展性。2.2JSP的運(yùn)行原理JSP的運(yùn)行原理可以分為以下幾個步驟:請求:用戶通過瀏覽器發(fā)起一個對JSP頁面的請求。轉(zhuǎn)換:服務(wù)器將JSP文件轉(zhuǎn)換成一個Servlet源文件,這個源文件通常以.java為后綴名。編譯:服務(wù)器調(diào)用Java編譯器將Servlet源文件編譯成.class文件。執(zhí)行:服務(wù)器加載編譯后的.class文件并創(chuàng)建一個Servlet實(shí)例,然后調(diào)用其service方法處理請求。響應(yīng):Servlet執(zhí)行完成后,服務(wù)器將執(zhí)行結(jié)果返回給用戶。緩存:服務(wù)器可能會將轉(zhuǎn)換后的Servlet源文件和編譯后的.class文件緩存起來,以便下次請求時直接使用。2.3JSP的語法與常用標(biāo)簽JSP頁面中,我們可以使用以下三種語法:HTML標(biāo)簽:用于定義網(wǎng)頁的結(jié)構(gòu)和內(nèi)容。JSP標(biāo)簽(也稱為JSP動作標(biāo)簽):用于控制JSP頁面的行為,例如頁面跳轉(zhuǎn)、數(shù)據(jù)傳遞等。Java代碼片段:用于在JSP頁面中執(zhí)行Java程序。以下是一些常用的JSP標(biāo)簽:<%%>:用于嵌入Java代碼片段。<%----%>:用于注釋,不會輸出到HTML頁面。<%@page%>:用于定義JSP頁面的屬性,如編碼、緩存等。<jsp:include>:用于包含其他JSP頁面。<jsp:forward>:用于請求轉(zhuǎn)發(fā)。<jsp:param>:用于傳遞參數(shù)。<c:if>、<c:choose>、<c:when>、<c:otherwise>:用于條件判斷。<c:forEach>、<c:forTokens>:用于循環(huán)遍歷。這些語法和標(biāo)簽是JSP基礎(chǔ)知識的重點(diǎn),掌握它們對于解答JSP筆試題目至關(guān)重要。3.經(jīng)典筆試題目解析3.1JSP頁面輸出相關(guān)題目在JSP面試中,頁面輸出是基礎(chǔ)中的基礎(chǔ),以下是一些常見的相關(guān)題目及其解析。題目1:如何實(shí)現(xiàn)JSP頁面的換行?答案:在JSP頁面中,可以通過以下方式實(shí)現(xiàn)換行:-HTML標(biāo)簽:使用<br>標(biāo)簽。-JSP表達(dá)式:使用\n轉(zhuǎn)義字符,例如:<%out.println("第一行\(zhòng)n第二行");%>題目2:如何輸出一個整數(shù)類型的變量?答案:使用<%out.println(變量名);%>,例如:<%

intnum=10;

out.println(num);

%>題目3:如何在JSP頁面中插入Java代碼?答案:使用JSP的腳本元素,例如:-<%%>:聲明代碼塊-<%=%>:表達(dá)式代碼塊題目4:如何在JSP頁面中輸出HTML標(biāo)簽?答案:為了避免HTML標(biāo)簽被解析為JSP代碼,可以使用以下方法:-HTML轉(zhuǎn)義字符:使用<、>等轉(zhuǎn)義字符。-JSP表達(dá)式:使用out.println輸出HTML標(biāo)簽。3.2JSP內(nèi)置對象相關(guān)題目JSP內(nèi)置對象是JSP技術(shù)的重要特性,以下是關(guān)于內(nèi)置對象的一些常見題目。題目1:JSP有哪些內(nèi)置對象?答案:JSP內(nèi)置對象共有9個,分別為:-request:請求對象-response:響應(yīng)對象-pageContext:頁面上下文對象-session:會話對象-application:應(yīng)用程序?qū)ο?out:輸出對象-config:配置對象-page:頁面對象-exception:異常對象題目2:如何使用request對象獲取請求參數(shù)?答案:使用request.getParameter("參數(shù)名")方法。題目3:如何使用session對象存儲用戶信息?答案:使用session.setAttribute("鍵","值")和session.getAttribute("鍵")方法。3.3JSP異常處理相關(guān)題目異常處理是編程中不可或缺的一部分,以下是一些JSP異常處理相關(guān)的題目。題目1:如何在JSP頁面中處理異常?答案:使用JSP的異常處理機(jī)制,例如:-<%@pageisErrorPage="true"%>:設(shè)置當(dāng)前頁面為錯誤處理頁面。-<%@pageexception="java.lang.Exception"%>:指定需要處理的異常類型。題目2:如何在JSP頁面中捕獲并處理自定義異常?答案:創(chuàng)建自定義異常類,并在JSP頁面中使用try-catch語句捕獲并處理異常。通過以上解析,相信大家對JSP經(jīng)典筆試題目有了更深入的了解。接下來,我們將繼續(xù)探討高級JSP筆試題目解析。4.高級JSP筆試題目解析4.1JSP與JavaBean的使用JSP與JavaBean的結(jié)合使用,是JavaWeb開發(fā)中的一個重要部分。以下是一些常見的與JSP和JavaBean相關(guān)的筆試題目及解析。題目1:如何將JSP頁面中的數(shù)據(jù)傳遞給JavaBean?解析:可以通過以下幾種方式實(shí)現(xiàn):-使用表單(Form)標(biāo)簽的<input>元素,并通過request.getParameter()方法獲取參數(shù)值,然后設(shè)置給JavaBean的屬性。-使用隱藏字段(HiddenField),將值通過隱藏的表單字段傳遞。-通過URL重寫,將參數(shù)附加在URL后面進(jìn)行傳遞。題目2:如何將JavaBean的數(shù)據(jù)顯示在JSP頁面中?解析:在JSP頁面中,可以使用以下標(biāo)簽引用JavaBean:-<jsp:useBean>:創(chuàng)建或查找JavaBean實(shí)例。-<jsp:setProperty>:設(shè)置JavaBean的屬性。-<jsp:getProperty>:獲取JavaBean的屬性,并將其輸出到HTML頁面。題目3:簡述JavaBean的作用域。解析:JavaBean的作用域定義了JavaBean對象的生命周期,主要有以下幾種:-Page:僅在當(dāng)前頁面有效。-Request:在一次請求中有效。-Session:在一個會話(用戶登錄周期)中有效。-Application:在整個應(yīng)用中有效。4.2JSP與Servlet的交互JSP和Servlet是JavaWeb開發(fā)中的核心組件。以下是一些關(guān)于JSP與Servlet交互的筆試題目及解析。題目1:簡述JSP與Servlet的區(qū)別。解析:-JSP是Servlet的一種簡化,主要用于頁面展示,而Servlet主要用于業(yè)務(wù)邏輯處理。-JSP在第一次請求時會被編譯為Servlet,之后與Servlet執(zhí)行方式相同。-JSP側(cè)重于HTML的生成,Servlet側(cè)重于處理請求和生成響應(yīng)。題目2:如何從JSP頁面調(diào)用Servlet?解析:-使用<jsp:forward>標(biāo)簽將請求轉(zhuǎn)發(fā)給Servlet。-使用HTML的<form>標(biāo)簽的action屬性指定Servlet的URL。-通過超鏈接(Hyperlink)的href屬性訪問Servlet。題目3:在JSP中如何獲取Servlet中的數(shù)據(jù)?解析:-通過request.getAttribute()方法獲取請求范圍內(nèi)的屬性。-通過session.getAttribute()方法獲取會話范圍內(nèi)的屬性。-通過application.getAttribute()方法獲取應(yīng)用范圍內(nèi)的屬性。4.3JSP自定義標(biāo)簽JSP自定義標(biāo)簽是擴(kuò)展JSP功能的一種方式,以下是一些相關(guān)筆試題目及解析。題目1:什么是JSP自定義標(biāo)簽?解析:JSP自定義標(biāo)簽是一組遵循特定規(guī)范編寫的Java類,它們用于在JSP頁面中提供新的功能。通過自定義標(biāo)簽,可以在JSP頁面中使用自定義的HTML標(biāo)簽。題目2:簡述自定義標(biāo)簽的生命周期。解析:自定義標(biāo)簽的生命周期包括以下幾個階段:-Tag:標(biāo)簽處理類被加載時執(zhí)行。-doStartTag():在開始標(biāo)簽被解析時執(zhí)行。-doEndTag():在結(jié)束標(biāo)簽被解析時執(zhí)行。-release():釋放標(biāo)簽占用的資源。題目3:如何實(shí)現(xiàn)一個簡單的自定義標(biāo)簽?解析:1.創(chuàng)建一個實(shí)現(xiàn)javax.servlet.jsp.tagext.Tag接口的Java類。2.在類中實(shí)現(xiàn)接口的必要方法,如doStartTag()、doEndTag()。3.在JSP頁面中使用<%@tagliburi="標(biāo)簽庫URI"prefix="前綴"%>引入標(biāo)簽庫。4.在JSP頁面中使用自定義標(biāo)簽,格式為<前綴:標(biāo)簽名>。通過以上解析,希望能幫助讀者更好地理解和掌握高級JSP筆試題目的解題技巧。5.JSP綜合應(yīng)用案例5.1簡單的在線投票系統(tǒng)在線投票系統(tǒng)是一個常見的JSP應(yīng)用案例,涉及JSP頁面輸出、內(nèi)置對象使用、數(shù)據(jù)庫操作等。以下是實(shí)現(xiàn)一個簡單的在線投票系統(tǒng)的步驟:設(shè)計(jì)數(shù)據(jù)庫表結(jié)構(gòu),包含投票主題、選項(xiàng)、投票結(jié)果等字段。編寫JSP頁面,展示投票主題和選項(xiàng),以及提交投票結(jié)果。使用JDBC連接數(shù)據(jù)庫,實(shí)現(xiàn)投票結(jié)果的保存和查詢。使用Session跟蹤用戶投票狀態(tài),確保每個用戶只能投票一次。具體實(shí)現(xiàn)如下:數(shù)據(jù)庫表結(jié)構(gòu):CREATETABLEvote_topic(

idINTPRIMARYKEYAUTO_INCREMENT,

titleVARCHAR(255)NOTNULL,

descriptionTEXT

);

CREATETABLEvote_option(

idINTPRIMARYKEYAUTO_INCREMENT,

topic_idINT,

option_nameVARCHAR(255)NOTNULL,

vote_countINTDEFAULT0,

FOREIGNKEY(topic_id)REFERENCESvote_topic(id)

);投票頁面(vote.jsp):<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>

<!DOCTYPEhtml>

<html>

<head>

<title>在線投票系統(tǒng)</title>

</head>

<body>

<h2>投票主題:${voteTopic.title}</h2>

<formaction="voteAction.jsp"method="post">

<c:forEachitems="${voteOptions}"var="option">

<inputtype="radio"name="optionId"value="${option.id}">${option.option_name}

</c:forEach>

<inputtype="submit"value="投票">

</form>

</body>

</html>投票動作頁面(voteAction.jsp):<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>

<%@pageimport="java.sql.*,java.util.*"%>

<%

StringoptionId=request.getParameter("optionId");

inttopicId=Integer.parseInt(request.getParameter("topicId"));

Connectionconn=null;

PreparedStatementpstmt=null;

try{

Class.forName("com.mysql.jdbc.Driver");

conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/vote_db","username","password");

Stringsql="UPDATEvote_optionSETvote_count=vote_count+1WHEREid=?";

pstmt=conn.prepareStatement(sql);

pstmt.setInt(1,Integer.parseInt(optionId));

pstmt.executeUpdate();

session.setAttribute("voted","true");

response.sendRedirect("voteResult.jsp?topicId="+topicId);

}catch(Exceptione){

e.printStackTrace();

}finally{

try{

if(pstmt!=null)pstmt.close();

if(conn!=null)conn.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

%>投票結(jié)果頁面(voteResult.jsp):<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>

<%@pageimport="java.sql.*,java.util.*"%>

<%

inttopicId=Integer.parseInt(request.getParameter("topicId"));

Connectionconn=null;

PreparedStatementpstmt=null;

ResultSetrs=null;

List<Map<String,Object>>voteOptions=newArrayList<>();

try{

Class.forName("com.mysql.jdbc.Driver");

conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/vote_db","username","password");

Stringsql="SELECT*FROMvote_optionWHEREtopic_id=?";

pstmt=conn.prepareStatement(sql);

pstmt.setInt(1,topicId);

rs=pstmt.executeQuery();

while(rs.next()){

Map<String,Object>option=newHashMap<>();

option.put("id",rs.getInt("id"));

option.put("option_name",rs.getString("option_name"));

option.put("vote_count",rs.getInt("vote_count"));

voteOptions.add(option);

}

}catch(Exceptione){

e.printStackTrace();

}finally{

try{

if(rs!=null)rs.close();

if(pstmt!=null)pstmt.close();

if(conn!=null)conn.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

%>

<!DOCTYPEhtml>

<html>

<head>

<title>投票結(jié)果</title>

</head>

<body>

<h2>投票結(jié)果:</h2>

<c:forEachitems="${voteOptions}"var="option">

${option.option_name}:${option.vote_count}票

</c:forEach>

</body>

</html>5.2用戶登錄與注冊功能實(shí)現(xiàn)用戶登錄與注冊功能是Web應(yīng)用中常見的需求。以下是基于JSP和JavaBean實(shí)現(xiàn)用戶登錄與注冊的步驟:設(shè)計(jì)用戶表結(jié)構(gòu),包含用戶名、密碼、郵箱等字段。編寫注冊頁面,收集用戶信息并保存到數(shù)據(jù)庫。編寫登錄頁面,驗(yàn)證用戶身份。使用Session跟蹤用戶登錄狀態(tài)。具體實(shí)現(xiàn)如下:用戶表結(jié)構(gòu):CREATETABLEuser(

idINTPRIMARYKEYAUTO_INCREMENT,

usernameVARCHAR(255)NOTNULLUNIQUE,

passwordVARCHAR(255)NOTNULL,

emailVARCHAR(255)

);注冊頁面(register.jsp):<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>

<!DOCTYPEhtml>

<html>

<head>

<title>用戶注冊</title>

</head>

<body>

<formaction="registerAction.jsp"method="post">

<p>用戶名:<inputtype="text"name="username"></p>

<p>密碼:<inputtype="password"name="password"></p>

<p>郵箱:<inputtype="email"name="email"></p>

<p><inputtype="submit"value="注冊"></p>

</form>

</body>

</html>注冊動作頁面(registerAction.jsp):<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>

<%@pageimport="java.sql.*,java.util.*"%>

<%

Stringusername=request.getParameter("username");

Stringpassword=request.getParameter("password");

Stringemail=request.getParameter("email");

Connectionconn=null;

PreparedStatementpstmt=null;

try{

Class.forName("com.mysql.jdbc.Driver");

conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/user_db","username","password");

Stringsql="INSERTINTOuser(username,password,email)VALUES(?,?,?)";

pstmt=conn.prepareStatement(sql);

pstmt.setString(1,username);

pstmt.setString(2,password);

pstmt.setString(3,email);

pstmt.executeUpdate();

response.sendRedirect("login.jsp");

}catch(Exceptione){

e.printStackTrace();

}finally{

try{

if(pstmt!=null)pstmt.close();

if(conn!=null)conn.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

%>登錄頁面(login.jsp):<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>

<!DOCTYPEhtml>

<html>

<head>

<title>用戶登錄</title>

</head>

<body>

<formaction="loginAction.jsp"method="post">

<p>用戶名:<inputtype="text"name="username"></p>

<p>密碼:<inputtype="password"name="password"></p>

<p><inputtype="submit"value="登錄"></p>

</form>

</body>

</html>登錄動作頁面(loginAction.jsp):<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>

<%@pageimport="java.sql.*,java.util.*"%>

<%

Stringusername=request.getParameter("username");

Stringpassword=request.getParameter("password");

Connectionconn=null;

PreparedStatementpstmt=null;

ResultSetrs=null;

try{

Class.forName("com.mysql.jdbc.Driver");

conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/user_db","username","password");

Stringsql="SELECT*FROMuserWHEREusername=?ANDpassword=?";

pstmt=conn.prepareStatement(sql);

pstmt.setString(1,username);

pstmt.setString(2,password);

rs=pstmt.executeQuery();

if(rs.next()){

session.setAttribute("username",username);

response.sendRedirect("welcome.jsp");

}else{

response.sendRedirect("login.jsp?error=true");

}

}catch(Exceptione){

e.printStackTrace();

}finally{

try{

if(rs!=null)rs.close();

if(pstmt!=null)pstmt.close();

if(conn!=null)conn.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

%>5.3數(shù)據(jù)庫連接池的配置與管理在實(shí)際開發(fā)中,為了提高Web應(yīng)用性能,通常會使用數(shù)據(jù)庫連接池來管理數(shù)據(jù)庫連接。以下是使用DBCP連接池的配置與管理步驟:添加DBCP依賴(如:commons-dbcp-1.4.jar、commons-pool-1.5.4.jar)到項(xiàng)目。在項(xiàng)目的src目錄下創(chuàng)建perties文件,配置數(shù)據(jù)庫連接池相關(guān)參數(shù)。在JSP頁面或JavaBean中加載配置文件,獲取數(shù)據(jù)庫連接。具體實(shí)現(xiàn)如下:perties配置文件:#數(shù)據(jù)庫驅(qū)動類

driverClassName=com.mysql.jdbc.Driver

#數(shù)據(jù)庫連接URL

url=jdbc:mysql://localhost:3306/user_db

#數(shù)據(jù)庫用戶名

username=root

#數(shù)據(jù)庫密碼

password=root

#初始化連接數(shù)

initialSize=5

#最大連接數(shù)

maxActive=10

#最大空閑連接數(shù)

maxIdle=5

#最小空閑連接數(shù)

minIdle=2

#獲取連接最大等待時間(毫秒)

maxWait=3000獲取數(shù)據(jù)庫連接示例:importmons.dbcp.BasicDataSource;

importjava.sql.Connection;

importjava.util.Properties;

publicclassDataSourceUtil{

privatestaticBasicDataSourcedataSource=null;

static{

Propertiesprops=newProperties();

try{

props.load(DataSourceUtil.class.getClassLoader().getResourceAsStream("perties"));

dataSource=newBasicDataSource();

dataSource.setDriverClassName(props.getProperty("driverClassName"));

dataSource.setUrl(props.getProperty("url"));

dataSource.setUsername(props.getProperty("username"));

dataSource.setPassword(props.getProperty("password"));

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論