• 沒有找到結果。

JSP Web开发技术任务驱动式教程 - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "JSP Web开发技术任务驱动式教程 - 万水书苑-出版资源网"

Copied!
22
0
0

加載中.... (立即查看全文)

全文

(1)

വڱ̄  Ύၹ +41 ЯᎶࠫ៶

῵ഫㅔҟ˖ ϞϔϾ῵ഫ䗮䖛ᅝ㺙ᑊ䜡㕂 JSP ᓔথ⦃๗ǃ೼ MyEclipse ⦃๗Ё䚼㕆䖤㸠 JSP 乍Ⳃᥠᦵњ ᓔথ JSP ࡼᗕ㔥キⱘℹ偸ˈгⶹ䘧њ JSP ⱘ෎ᴀ义䴶㒘៤ܗ㋴ˈᇍ JSP ᳝њ߱ℹ䅸䆚DŽ ᴀ῵ഫᇚᏺ乚໻ᆊ䖯ϔℹᄺд JSP ⿟ᑣᓔথⱘ䞡⚍üJSP ݙ㕂ᇍ䈵DŽJSP ݙ㕂ᇍ䈵ᰃᣛ ϡ䳔㽕 JSP 义䴶㓪ݭ㗙ᴹᅲ՟࣪ˈ೼᠔᳝ⱘ JSP 义䴶Ё䛑ৃҹⳈ᥹Փ⫼ᑊ⬅ JSP ᆍ఼ᅲ⦄੠ ㅵ⧚ⱘ㒘ӊˈᅗ䍋ࠄњㅔ࣪义䴶ⱘ԰⫼DŽJSP ݙ㕂ᇍ䈵㹿ᑓ⊯ᑨ⫼Ѣ㦋পᅶ᠋ッ᭄᥂ǃ䕧ߎֵ ᙃǃֱᄬ᭄᥂ㄝ᪡԰ЁDŽ ᡔ㛑Ⳃᷛ˖ ˄1˅ӮՓ⫼ out ᇍ䈵৥ᅶ᠋ッ䕧ߎݙᆍDŽ ˄2˅ӮՓ⫼ request ᇍ䈵໘⧚ᅶ᠋ッ䇋∖DŽ ˄3˅ӮՓ⫼ response ᇍ䈵ડᑨ৘⾡ֵᙃDŽ ˄4˅ӮՓ⫼ session ᇍ䈵ᅲ⦄䆓䯂᥻ࠊDŽ ˄5˅ӮՓ⫼ application ᇍ䈵ᅲ⦄᭄᥂݅ѿDŽ ⶹ䆚Ⳃᷛ˖ ˄1˅ᥠᦵ JSP ᐌ⫼ݙ㕂ᇍ䈵ⱘՓ⫼ᮍ⊩DŽ ˄2˅ᥠᦵ㸼ऩ໘⧚ⱘ㓪⿟῵ᓣDŽ ˄3˅ᥠᦵ䆓䯂᥻ࠊⱘᅲ⦄⌕⿟DŽ ˄4˅њ㾷 URL 䇋∖খ᭄DŽ Ꮉ԰ӏࡵ˖ ˄1˅䅸䆚 JSP ⱘݙ㕂ᇍ䈵DŽ ˄2˅Փ⫼ out ᇍ䈵䕧ߎֵᙃDŽ ˄3˅㦋পᅶ᠋ッ䇋∖᭄᥂DŽ ˄4˅ᅲ⦄义䴶䏇䕀DŽ ˄5˅ᅲ⦄䆓䯂᥻ࠊDŽ ˄6˅ࠊ԰㔥义䅵఼᭄DŽ Ǐ䯂乬ᓩܹǐ JSPⱘϔϾ䞡㽕⡍ᕕህᰃᅗ㞾ᏺњࡳ㛑ᔎ໻ⱘݙ㕂ᇍ䈵ˈ䙷М᳝ાѯݙ㕂ᇍ䈵ਸ਼˛ᅗ Ӏⱘࡳ㛑জᰃབԩⱘ˛

(2)

  ͊Ҭʷ  ᝣគ +41 ᄊЯᎶࠫ៶ 

Ǐᅲ⦄ᗱ䏃ǐ

JSPⱘݙ㕂ᇍ䈵ࣙᣀ requestǃresponseǃoutǃsessionǃpageContextǃapplicationǃconfigǃ page੠ exceptionDŽ↨䕗ᐌ⫼ⱘ᳝ outǃrequestǃresponseǃsession ੠ applicationDŽ䗮䖛ᄺд JSP ݙ㕂ᇍ䈵ⱘὖᗉǃߚ㉏ǃৃ㾕㣗ೈঞࡳ㛑䖭ѯⶹ䆚⚍ᴹᐂࡽ៥Ӏњ㾷 JSP ⱘݙ㕂ᇍ䈵DŽ 2.1.1 JSP ݙ㕂ᇍ䈵ὖ䗄 Java ᰃ䴶৥ᇍ䈵ⱘˈ⬅Ѣ JSP ᰃՓ⫼ Java ԰Ў㛮ᴀ䇁㿔ˈ᠔ҹ JSP ݋᳝ᔎ໻ⱘᇍ䈵໘ ⧚㛑࡯DŽ೼ Java 䇁⊩ЁՓ⫼ϔϾᇍ䈵ࠡˈ䳔㽕ܜᅲ՟࣪䖭Ͼᇍ䈵ˈ䖭݊ᅲᰃϔӊ↨䕗㐕⧤ ⱘџDŽЎњㅔ࣪ᓔথˈJSP ᦤկњϔѯݙ㕂ᇍ䈵ˈ䖭ѯݙ㕂ᇍ䈵೼Փ⫼ᯊϡ䳔㽕ᅲ՟࣪ˈⳈ ᥹Փ⫼ेৃDŽݙ㕂ᇍ䈵г⿄Ў䱤৿ᇍ䈵៪೎᳝ᇍ䈵DŽݙ㕂ᇍ䈵ᰃ㹿 JSP ᆍ఼㞾ࡼᅮНⱘᇍ䈵 ব䞣ˈৃҹ೼ JSP 义䴶ⱘ jspService()ᮍ⊩Ё㞾ࡼᅲ՟࣪䖭ѯ䱤৿ᇍ䈵DŽJSP ݙ㕂ᇍ䈵໻㟈ৃ ߚЎབϟಯ㉏˖  Ϣ䕧ܹ䕧ߎ᳝݇ⱘݙ㕂ᇍ䈵˖outǃrequestǃresponse ᇍ䈵DŽ  ϢϞϟ᭛˄Context˅᳝݇ⱘݙ㕂ᇍ䈵˖sessionǃapplicationǃpageContext ᇍ䈵DŽ  Ϣ Servlet ᳝݇ⱘݙ㕂ᇍ䈵˖pageǃconfig ᇍ䈵DŽ  Ϣ䫭䇃˄Error˅໘⧚᳝݇ⱘݙ㕂ᇍ䈵˖exception ᇍ䈵DŽ 2.1.2 JSP ݙ㕂ᇍ䈵ⱘ㣗ೈ 㸼 2-1 ߫ߎњ JSP ⱘ 9 Ͼݙ㕂ᇍ䈵ⱘৃ㾕㣗ೈঞ݊ࡳ㛑ᦣ䗄DŽ 㸼 2-1 JSP ⱘݙ㕂ᇍ䈵 ᇍ䈵ৡ ᇍ䈵㉏ൟ ৃ㾕㣗ೈ ᦣ䗄

out javax.servlet.jsp.JspWriter page ᦤկᇍ䕧ߎ⌕ⱘ䆓䯂

request javax.servlet.http.HttpServletRequest request ᦤկᇍ HTTP 䇋∖᭄᥂ⱘ䆓䯂ˈৠᯊ䖬ᦤ կ⫼Ѣࡴܹ⡍ᅮ䇋∖᭄᥂ⱘϞϟ᭛ response javax.servlet.http.HttpServletRespon

se page

ܕ䆌Ⳉ᥹䆓䯂 HttpServletResponse ᇍ䈵ˈ ৃ⫼ᴹ৥ᅶ᠋ッ䕧᭄ܹ᥂

session javax.servlet.http.HttpSession session

ৃ⫼ᴹֱᄬ೼᳡ࡵ఼ϢϔϾᅶ᠋ッП䯈 䳔㽕ֱᄬⱘ᭄᥂ˈᔧᅶ᠋ッ݇䯁㔥キⱘ᠔ ᳝㔥义ᯊˈsession ব䞣Ӯ㞾ࡼ⍜༅

application javax.servlet.ServletContext application

ҷ㸼ᑨ⫼⿟ᑣϞϟ᭛ˈᅗܕ䆌 JSP 义䴶Ϣ ࣙᣀ೼ৠϔᑨ⫼⿟ᑣЁⱘӏԩ Web 㒘ӊ ݅ѿֵᙃ

pageContext javax.servlet.jsp.PageContext page

ᰃ JSP 义䴶ᴀ䑿ⱘϞϟ᭛ˈᅗᦤկњଃϔ ϔ㒘ᮍ⊩ᴹㅵ⧚݋᳝ϡৠ԰⫼ඳⱘሲᗻˈ 䖭ѯ API ೼ᅲ⦄ JSP 㞾ᅮНᷛㅒ໘⧚⿟ᑣ ᯊ䴲ᐌ᳝⫼

(3)

㓁㸼

ᇍ䈵ৡ ᇍ䈵㉏ൟ ৃ㾕㣗ೈ ᦣ䗄

page java.lang.Objectˈे HttpJspBase page ҷ㸼 JSP 义䴶ᇍᑨⱘ Servlet ㉏ᅲ՟ config javax.servlet.ServletConfig page ܕ䆌ᇚ߱ྟ᭄࣪᥂Ӵ䗦㒭ϔϾ JSP 义䴶 exception java.lang.Throwableˈे Exception page ৿᳝া㛑⬅ᣛᅮⱘ JSPĀ䫭䇃໘⧚义䴶ā

䆓䯂ⱘᓖᐌ᭄᥂ ೼䗝ᢽ㣗ೈᯊˈᑨ䙉ᕾབϟॳ߭˖  བᵰ᭄᥂া೼ϔϾ义䴶⫼ࠄˈህ⫼ page 㣗ೈDŽ  བᵰ᭄᥂೼໮Ͼ义䴶⫼ࠄˈህ⫼ request 㣗ೈDŽ  བᵰ᭄᥂೼໮Ͼ䇋∖Ё⫼ࠄˈህ⫼ session 㣗ೈDŽ  བᵰ᭄᥂೼໮Ͼ session Ё⫼ࠄˈህ⫼ application 㣗ೈDŽ Ǐ䯂乬ᓩܹǐ outᇍ䈵ᰃᐌ⫼ⱘ JSP ݙ㕂ᇍ䈵Пϔˈ䗮䖛 out ᇍ䈵ৃҹ৥ᅶ᠋ッ⌣㾜఼䕧ߎֵᙃˈᑊϨ ㅵ⧚ᑨ⫼᳡ࡵ఼Ϟⱘ䕧ߎ㓧ކऎˈབԩՓ⫼ out ᇍ䈵ਸ਼˛

  ͊Ҭ̄  Ύၹ PVU ࠫ៶ᣥѣηৌ

Ǐᅲ⦄ᗱ䏃ǐ

೼ JSP ᭛ӊЁՓ⫼ out ᇍ䈵ⱘ print()៪ println()ᮍ⊩ৃ೼义䴶Ϟ䕧ߎֵᙃˈout ᇍ䈵ⱘ clear() ᮍ⊩ৃ⫼ᴹㅵ⧚㓧ކऎDŽ 2.2.1 ৥ᅶ᠋ッ䕧ߎ᭄᥂ out ᇍ䈵ϔϾ᳔෎ᴀⱘᑨ⫼ህᰃ৥ᅶ᠋ッ⌣㾜఼䕧ߎֵᙃDŽout ᇍ䈵ৃҹ䕧ߎ৘⾡᭄᥂㉏ ൟⱘ᭄᥂ˈ೼䕧ߎ䴲ᄫヺІ㉏ൟⱘ᭄᥂ᯊˈӮ㞾ࡼ䕀ᤶЎᄫヺІ䖯㸠䕧ߎDŽout ᇍ䈵ᦤկњ print() ੠ println()ϸ⾡৥义䴶Ё䕧ߎֵᙃⱘᮍ⊩ˈϡৠⱘᰃˈprintln()䖬೼ৢ䴶⏏ࡴϔϾぎ㸠ˈϡ䖛䖭 Ͼぎ㸠㹿⌣㾜఼㾷ᵤᯊᗑ⬹DŽ Ǐ՟ 2.1ǐՓ⫼ out ᇍ䈵৥义䴶䕧ߎ᭄᥂DŽ ⏙ऩ 2-1 out1.jsp <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>

<head>

<title>Փ⫼ out ᇍ䈵Ḝ՟ 1</title> </head>

<body> <%

(4)

out.println("Փ⫼ out ᇍ䈵ⱘ println ᮍ⊩䕧ߎᄫヺІDŽ"); out.println("ᅲ⦄ᤶ㸠њ<br>"); out.print("<br>"); out.print(3.14159); %> <br> <%="䖭ᰃՓ⫼㸼䖒ᓣ䕧ߎ" %> </body> </html> ᴀḜ՟ⱘ䖤㸠ᬜᵰབ೒ 2-1 ᠔⼎DŽৃ㾕೼Փ⫼ print()ᮍ⊩੠ println()ᮍ⊩৥义䴶䕧ߎֵᙃ ᯊᑊϡ㛑ᕜདഄऎߚߎϸ㗙ⱘऎ߿ˈЎњ㛑ⳳℷᅲ⦄೼义䴶Ёᤶ㸠ˈ䳔㽕䗮䖛 print("<br>")៪ println("<br>")ᮍ⊩ᅲ⦄DŽ䗮䖛 out ᇍ䈵ⱘ print ੠ println ᮍ⊩৥ᅶ᠋ッ⌣㾜఼䕧ߎֵᙃϢՓ⫼ JSP㸼䖒ᓣ䕧ߎֵᙃⳌৠDŽ ೒ 2-1 Ḝ՟䖤㸠㒧ᵰ 2.2.2 ㅵ⧚㓧ކऎ outᇍ䈵ⱘϔϾ䞡㽕ࡳ㛑ህᰃᇍ㓧ކऎ䖯㸠ㅵ⧚DŽ㸼 2-2 ߫ߎњ out ᇍ䈵ㅵ⧚㓧ކऎⱘ ᮍ⊩DŽ 㸼 2-2 out ᇍ䈵ㅵ⧚㓧ކऎⱘᮍ⊩ ᮍ⊩ 䇈ᯢ void clear() ⏙䰸㓧ކऎⱘݙᆍˈԚϡᡞ᭄᥂䕧ߎࠄᅶ᠋ッ void clearBuffer() ⏙䰸㓧ކऎⱘᔧࠡݙᆍˈᑊᡞ᭄᥂䕧ߎࠄᅶ᠋ッ void close() ݇䯁䕧ߎ⌕ˈ⏙䰸᠔᳝ⱘݙᆍ void flush() ゟे䕧ߎ㓧ކऎ䞠ⱘ᭄᥂ int getBufferSize() 䖨ಲ㓧ކऎҹᄫ㡖᭄ⱘ໻ᇣ˄KB˅ˈབϡ䆒㓧ކऎ߭Ў 0 int getRemaining() 䖨ಲ㓧ކऎЁ࠽ԭぎ䯈ⱘ໻ᇣ

boolean isAutoFlush() 䖨ಲ㓧ކऎ⒵ᯊᰃ㞾ࡼ⏙ぎ䖬ᰃᡯߎᓖᐌDŽ㢹䖨ಲ trueˈ߭㓧ކऎ⒵ᯊᰃ㞾 ࡼ⏙ぎ˗㢹䖨ಲ falseˈ߭㓧ކऎ⒵ᯊᡯߎᓖᐌ

(5)

Ǐ䯂乬ᓩܹǐ ࡼᗕ㔥义݋᳝ѸѦᗻˈ㗠㛑໳໘⧚ᅶ᠋ッ䇋∖ᰃϢ⫼᠋䖯㸠ֵᙃѸѦⱘ෎⸔DŽ䙷М᳡ࡵ ఼ᰃབԩ㦋পᅶ᠋ッ䇋∖᭄᥂ⱘਸ਼˛

  ͊Ҭʼ  ᖍԩࠇਗ਼ቫឰර஝૶

Ǐᅲ⦄ᗱ䏃ǐ request ᇍ䈵ᰃ JSP Ё᳔ᐌ⫼ⱘᇍ䈵Пϔˈ⫼Ѣᇕ㺙ᅶ᠋ッⱘ䇋∖ֵᙃˈ䗮䖛䇗⫼Ⳍᑨⱘ ᮍ⊩ৃҹ㦋পᅶ᠋ッᦤѸⱘֵᙃDŽ⫼᠋ৃҹՓ⫼ HTML 㸼ऩᦤѸᅶ᠋ッ᭄᥂ˈгৃҹ䞛⫼䇋 ∖খ᭄ⱘᮍᓣᇚᅶ᠋ッ᭄᥂ᦤѸ㒭᳡ࡵ఼DŽϟ䴶䗮䖛Ḝ՟ᮍᓣᴹ⏅ܹᄺдབԩՓ⫼ request ᇍ 䈵ⱘⳌ݇ᮍ⊩㦋প㸼ऩ᭄᥂ঞ䇋∖খ᭄DŽ 2.3.1 㦋প HTML 㸼ऩᦤѸⱘ᭄᥂ ⫼᠋䗮ᐌՓ⫼ HTML 㸼ऩ৥᳡ࡵ఼ⱘᶤϾ JSP 义䴶ᦤѸֵᙃˈϔ㠀ḐᓣЎ˖

<form method="get/post" action="㸼ऩ㽕ᦤѸࠄⱘഄ⚍"> [᥹ᬊ᭄᥂ⱘ㸼ऩ㒘ӊ] [᭄᥂ᦤѸ᥻ӊ] </form> Ǐ՟ 2.2ǐ⫼᠋೼೒ 2-2 ᠔⼎ⱘ⊼ݠ义䴶 reginput.jsp Ё฿ݭ⊼ݠֵᙃˈऩߏĀᦤѸāᣝ䪂 ৢᰒ⼎䕧ܹⱘ⊼ݠֵᙃˈབ೒ 2-3 ᠔⼎DŽ ೒ 2-2 䕧ܹ⊼ݠֵᙃ ೒ 2-3 义䴶ᦤѸৢᰒ⼎⊼ݠֵᙃ ᅲ⦄བϟ˖ ˄1˅㓪ݭ reginput.jsp 义䴶ˈࣙ৿⊼ݠ㸼ऩˈ䆹㸼ऩ᭄᥂ᦤѸࠄ doreg.jsp 义䴶DŽ ⏙ऩ 2-2 reginput.jsp <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>

<html> <head>

(6)

<title>⊼ݠ义䴶</title> </head>

<body>

䇋฿ݭ⊼ݠֵᙃ˖<br>

<form action="doreg.jsp" method="post"> ⫼᠋ৡ˖<input type="text" name="uname"><br>

ᆚ&nbsp;&nbsp;ⷕ˖<input type="password" name="pwd"><br>

ᗻ&nbsp;&nbsp;߿˖<input type="radio" name="sex" value="male">⬋<input type="radio" name="sex" value="female">ཇ<br>

ᄺ&nbsp;&nbsp;ग़˖<select name="study"> <option value="ᴀ⾥">ᴀ⾥</option> <option value="⸩຿">⸩຿</option> <option value="म຿">म຿</option> </select><br>

⠅&nbsp;&nbsp;ད˖<input type="checkbox" name="like" value="ଅ℠">ଅ℠ <input type="checkbox" name="like" value="䏇㟲">䏇㟲

<input type="checkbox" name="like" value="䯙䇏">䯙䇏 <input type="checkbox" name="like" value="ᮙ␌">ᮙ␌<br>

<input type="submit" value="ᦤѸ">&nbsp;&nbsp;<input type="reset" value="⏙ぎ"> </form>

</body> </html>

˄2˅㓪ݭ doreg.jsp 义䴶ˈ⫼Ѣ㦋প reginput.jsp 义䴶Ё฿ݭⱘ⊼ݠֵᙃᑊᰒ⼎DŽ

⏙ऩ 2-3 doreg.jsp <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <html> <head> <title>䕧ߎ⊼ݠֵᙃ</title> </head> <% request.setCharacterEncoding("GBK"); //䆒㕂䇋∖ⱘ㓪ⷕ String name=request.getParameter("uname"); String password=request.getParameter("pwd"); String xb=request.getParameter("sex"); String xl=request.getParameter("study"); String ah[]=request.getParameterValues("like"); //㦋প໮䗝乍ⱘؐ %> <body> 㸼ऩЁ䕧ܹⱘݙᆍЎ˖<br> ⫼᠋ৡ˖<%=name %><br> ᆚⷕ˖<%=password %><br> ᗻ߿˖<%=xb %><br> ᄺग़˖<%=xl %><br> ⠅ད˖<% if(ah!=null){

(7)

for(int i=0;i<ah.length;i++) out.print(ah[i]+"&nbsp;&nbsp;"); } %><br>

</body> </html>

reginput.jspЁ㸼ऩֵᙃᦤѸ㟇 doreg.jsp ᭛ӊ໘⧚ˈ㸼ऩֵᙃⱘথ䗕ᮍᓣ䞛⫼ post ᮍᓣDŽ post ᮍᓣӮᇚ㸼ऩⱘݙᆍ䗮䖛 http থ䗕ˈ೼ഄഔᷣЁⳟϡࠄ㸼ऩⱘᦤѸֵᙃˈ㗠ϨՓ⫼ post ᮍᓣথ䗕ֵᙃ≵᳝ᄫヺ䭓ᑺⱘ䰤ࠊDŽ೒ 2-4 ᠔⼎ህᰃ䞛⫼ post ᮍᓣথ䗕ֵᙃᑊՓ⫼ doreg.jsp ᥹ᬊֵᙃৢⱘ义䴶DŽ

㢹ᡞ reginput.jsp Ё㸼ऩֵᙃⱘথ䗕ᮍᓣᬍЎ get˄े method="get"˅ˈ䙷М㸼ऩݙᆍ㒣䖛 㓪ⷕПৢ䗮䖛 URL থ䗕˄ৃҹ೼ഄഔᷣЁⳟࠄ㸼ऩֵᙃˈϡᅝܼˈϔ㠀ϡᓎ䆂Փ⫼ get ᮍᓣ˅DŽ Փ⫼ get ᮍᓣথ䗕ֵᙃᯊ᳝ 255 Ͼᄫヺⱘ䰤ࠊDŽ೒ 2-5 ᠔⼎ህᰃ䞛⫼ get ᮍᓣথ䗕ֵᙃDŽ

೒ 2-4 䞛⫼ post ᮍᓣথ䗕ֵᙃ ೒ 2-5 䞛⫼ get ᮍᓣথ䗕ֵᙃ

doreg.jspЁՓ⫼ request ᇍ䈵ⱘ getParameter ᮍ⊩㦋ᕫϞϔϾ义䴶㸼ऩЁ᭛ᴀḚǃᆚⷕḚǃ ऩ䗝ḚǃϟᢝḚ᠔ᦤѸⱘऩϾখ᭄ؐˈབՓ⫼ getParameter ("uname")ᮍ⊩ৃҹ㦋পࠄϔϾᄫヺ Іˈ݊Ё uname Ў㸼ऩ᥻ӊⱘৡ⿄˗Փ⫼ request ᇍ䈵ⱘ getParameterValues ᮍ⊩㦋ᕫϞϔϾ义 䴶Ё໡䗝Ḛ᠔ᦤѸⱘ໮Ͼখ᭄ؐˈབՓ⫼ getParameterValues("like")ᮍ⊩ৃҹ㦋পࠄϔϾᄫヺ І᭄㒘ˈ䖭Ͼ᭄㒘Ёᄬټⱘህᰃ᠔᳝䗝Ёⱘ໡䗝乍ᇍᑨⱘؐDŽ

㸼ऩЁ䕧ܹ៪䗝ᢽⱘ᭄᥂᳝ৃ㛑ᰃЁ᭛ⱘˈЎњ䙓ܡߎ⦄хⷕ䯂乬ˈ䳔㽕Փ⫼ request ᇍ 䈵ⱘ setCharacterEncoding ᮍ⊩ˈᣛᅮ䇋∖ⱘ㓪ⷕᮍᓣˈϔ㠀Ў GBK ៪ UTF-8DŽ䇗⫼ request ᇍ䈵ⱘ setCharacterEncoding ᮍ⊩ⱘ䇁হϔᅮ㽕೼义䴶Ё≵᳝䇗⫼ӏԩ request ᇍ䈵ⱘᮍ⊩ᯊᠡ 㛑Փ⫼ˈ৺߭䆹䇁হᇚϡ䍋԰⫼DŽ 2.3.2 㦋প䆓䯂䇋∖খ᭄ request ᇍ䈵⫼Ѣ໘⧚ HTTP 䇋∖Ёⱘ৘乍খ᭄DŽ೼䖭ѯখ᭄Ёˈ᳔ᐌ⫼ⱘህᰃ㦋প䆓䯂 䇋 ∖ খ ᭄ DŽ ೼ 㸼 ऩ Ё 䞛 ⫼ get ᮍ ᓣ ᦤ Ѹ ᭄ ᥂ ᯊ ˈ ೼ ഄ ഔ ᷣ Ё ᰒ ⼎ ⱘ ഄ ഔ Ў http://localhost:8080/MyWeb/ch02/doreg.jsp?uname=greatwall&pwd=123456&sex=male&study=% B2%A9%CA%BF&like=%B3%AA%B8%E8&like=%D4%C4%B6%C1ˈ៥Ӏথ⦄ᅶ᠋ッ㽕Ӵ䗦 㒭Ⳃᷛ᭛ӊⱘ᭄᥂೼Ā?āৢ䴶ˈгህᰃ᭄᥂੠Ⳃᷛ᭛ӊП䯈⫼Ā?ā䱨ᓔˈ᭄᥂ⱘḐᓣЎĀ䇋 ∖খ᭄ৡ=খ᭄ؐāDŽབᵰ᳝໮Ͼ䇋∖খ᭄㽕Ӵ䗦ˈ໮Ͼখ᭄ؐᇍП䯈䗮䖛Ā&āߚ䱨ᓔDŽ Փ⫼䇋∖খ᭄ᔶᓣӴ䗦᭄᥂ⱘᮍ⊩䗮ᐌ⫼೼䍙㑻䫒᥹ЁˈᔧӴ䗦᭄᥂ϡ໮ᯊˈৃҹⳈ᥹

(8)

䗮䖛䫒᥹ᴹӴ䗦᭄᥂DŽ

Ǐ՟ 2.3ǐ䖯㸠㗏义ᯊˈ䗮䖛䍙㑻䫒᥹Ӵ䗦ᔧࠡ义ⷕDŽ

<a href="index.jsp?page=<%=prep %>">Ϟϔ义</a><br> <a href="index.jsp?page=<%=nextp %>">ϟϔ义</a>

ᔧ⚍ߏϞϔ义䍙㑻䫒᥹ᯊˈӮᠧᓔ index.jsp 义䴶ˈৠᯊ䗮䖛 page খ᭄Ӵ䗦ᔧࠡ义ⷕ˄㸼 䖒ᓣ prep ⱘؐ˅ˈѢᰃৃҹ೼ index.jsp ЁՓ⫼ request ᇍ䈵ⱘ getParameter ᮍ⊩㦋ᕫӴ䗦ⱘ page খ᭄ⱘؐˈ݋ԧҷⷕབϟ˖ <% String p=request.getParameter("page");%> ೼Փ⫼ request ᇍ䈵ⱘ getParameter ᮍ⊩㦋ᕫӴ䗦ⱘখ᭄ؐᯊˈབᵰᣛᅮⱘখ᭄ϡᄬ೼ˈ ᇚ䖨ಲ null˗བᵰᣛᅮњখ᭄ৡˈԚ᳾ᣛᅮখ᭄ؐˈᇚ䖨ಲぎⱘᄫヺІ""DŽ Ǐ՟ 2.4ǐ໘⧚㦋প䇋∖খ᭄ᯊхⷕDŽ ˄1˅㓪ݭ req1.jsp 义䴶ˈࣙ৿ϔϾ䍙㑻䫒᥹ˈ䗮䖛䆹䫒᥹Ӵ䗦㢹ᑆখ᭄ˈ݊Ёࣙ৿Ё᭛ খ᭄ؐDŽ ⏙ऩ 2-4 req1.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>䍙㑻䫒᥹Ӵ䗦খ᭄</title> </head> <body>

<a href="req2.jsp?user=⥟&id=2">ࠄ req2.jsp</a> </body>

</html>

˄2˅㓪ݭ req2.jsp 义䴶ˈ⫼Ѣ㦋প req1.jsp 义䴶Ӵ䗦䖛ᴹⱘ䇋∖খ᭄ᑊᰒ⼎DŽ

⏙ऩ 2-5 req2.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>㦋প䇋∖খ᭄</title> </head> <body> <%

String n=new String(request.getParameter("user").getBytes("iso-8859-1"),"utf-8") ; int id=Integer.parseInt(request.getParameter("id")); //㉏ൟ䕀ᤶЎ int

%> <%=n %><br> <%=id %> </body> </html> Փ⫼䍙㑻䫒᥹䖯㸠᭄᥂Ӵ䗦ᯊ䞛⫼ get ᮍᓣᦤѸ䇋∖ˈབᵰ೼Ӵ䗦᭄᥂Ёᄬ೼Ё᭛ˈ⬅Ѣ

(9)

䇋∖খ᭄䞛⫼ⱘᰃ ISO-8859-1 㓪ⷕˈϡᬃᣕЁ᭛ˈ㢹Փ⫼ request ᇍ䈵Ⳉ᥹㦋পᯊᆍᯧѻ⫳х ⷕ䯂乬ˈЎ䙓ܡхⷕ䯂乬ˈ䳔㽕ᇍ㦋পⱘ᭄᥂䞡ᮄ䖯㸠㓪ⷕDŽ⬅ѢՓ⫼ request ᇍ䈵㦋পⱘ᭄ ᥂㉏ൟഛᰃ String ㉏ൟˈ಴㗠ৃҹᇚ㦋পࠄⱘ᭄᥂䗮䖛 String ᵘ䗴ᮍ⊩Փ⫼ UTF-8 ៪ GBK 㓪 ⷕ䞡ᮄᵘ䗴ϔϾ String ᇍ䈵ˈᠡৃҹℷ⹂ᰒ⼎ߎЁ᭛ˈ㾕 reg2.jsp Ё㉫ԧᄫᰒ⼎ҷⷕ䚼ߚDŽ 2.3.3 ᅲ䆁 㦋প⫼᠋⬭㿔᭄᥂ 䆁㒗㽕⚍˖request ᇍ䈵ⱘՓ⫼DŽ 䳔∖䇈ᯢ˖೼⬭㿔ㅵ⧚㋏㒳Ёˈ⫼᠋㽕থ㸼⬭㿔ˈ䇋㓪ݭ⿟ᑣ㦋পᑊ೼义䴶Ёᰒ⼎⫼᠋ᦤ Ѹⱘ⬭㿔᭄᥂ˈ㋏㒳䖤㸠ᬜᵰབ೒ 2-6 ੠೒ 2-7 ᠔⼎DŽ ೒ 2-6 ⬭㿔义䴶೒ ೒ 2-7 ᰒ⼎⬭㿔义䴶 ᅲ⦄ᗱ䏃˖㓪ݭ⬭㿔 JSP 义䴶˗㓪ݭᰒ⼎⬭㿔 JSP 义䴶˄㦋প⬭㿔义䴶㸼ऩ䕧ܹⱘֵᙃ ᑊᰒ⼎˅DŽ Ǐ䯂乬ᓩܹǐ Փ⫼ JSP ໘⧚ᅶ᠋ッ䇋∖ᯊϔ㠀䙉ᕾ䖭ḋϔ⾡῵ᓣ˖佪ܜˈ⫼᠋䗮䖛㸼ऩ᥻ӊ䕧ܹᑊᦤ Ѹֵᙃ៪⿟ᑣ䗮䖛䇋∖খ᭄ᮍᓣᦤѸֵᙃ˗᥹ⴔˈJSP 义䴶㦋ᕫᅶ᠋ッⱘ䇋∖᭄᥂ᑊ䖯㸠໘⧚˗ ᳔ৢˈJSP 义䴶ḍ᥂໘⧚㒧ᵰ䕀৥ϡৠⱘ㒧ᵰ义䴶DŽ㦋পᅶ᠋ッ䇋∖ֵᙃ៥ӀՓ⫼ request ᇍ 䈵ⱘ getParameter ᮍ⊩៪ getParameterValues ᮍ⊩ˈ䙷Мབԩᅲ⦄义䴶䕀৥ਸ਼˛

  ͊Ҭپ  ࠄဘᮆ᭧᡺ᣁ

Ǐᅲ⦄ᗱ䏃ǐ ೼ JSP ЁৃҹՓ⫼䞡ᅮ৥ঞ䕀থᮍᓣᴹᅲ⦄义䴶䕀৥DŽ 2.4.1 䕀থϢ䞡ᅮ৥ 䕀থㅔऩഄ䇈ህᰃ䗮䖛ϔϾЁҟᇚ⬆ᮍⱘ䇋∖Ӵ䗦㒭ЭᮍDŽҢ⿟ᑣ䖤㸠ⱘ㾦ᑺ㾷ㄨህᰃᔧ ᅶ᠋ッথ䗕ϔϾ䇋∖ࠄ᳡ࡵ఼ৢˈWeb ᳡ࡵ఼䇗⫼ݙ䚼ⱘᮍ⊩೼ᆍ఼ݙ䚼ᅠ៤䇋∖໘⧚੠䕀থ ࡼ԰ˈ✊ৢᇚⳂᷛ䌘⑤থ䗕㒭⌣㾜఼ˈᭈϾ䖛⿟䛑ᰃ೼ϔϾ Web ᆍ఼ݙᅠ៤ˈ಴㗠ৃҹ݅ѿ

(10)

request㣗ೈݙⱘ᭄᥂DŽ㗠ᇍѢࠄᅶ᠋ッˈϡㅵ᳡ࡵ఼ݙ䚼བԩ໘⧚ˈ԰Ў⌣㾜఼䛑াᰃᦤѸњ ϔϾ䇋∖ˈ಴㗠ᅶ᠋ッⱘ URL ഄഔϡӮথ⫳ᬍবDŽՓ⫼ request ⱘ getRequestDispatcher()ᮍ⊩ৃ ҹᅲ⦄䕀থˈ䗮䖛䕀থ㛑೼໮Ͼ义䴶ѸѦ䖛⿟Ёᅲ⦄䇋∖᭄᥂ⱘ݅ѿDŽ Փ⫼ response ᇍ䈵ⱘ sendRedirect()ᮍ⊩ৃҹᅲ⦄䞡ᅮ৥DŽ䞡ᅮ৥ᰃᣛᅶ᠋ッ䞡ᮄ৥᳡ࡵ ఼䇋∖ϔϾഄഔ䫒᥹ˈ⬅Ѣᰃথ䗕ᮄⱘ䇋∖ˈ಴㗠Ϟ⃵䇋∖Ёⱘ᭄᥂ᇚ䱣П϶༅DŽ⬅Ѣ᳡ࡵ఼ 䞡ᮄᅮ৥њ URLˈ಴㗠೼ᅶ᠋ッ⌣㾜఼Ёᰒ⼎ⱘᰃᮄⱘ URL ഄഔˈ᠔ҹ䞡ᅮ৥ৃҹ⧚㾷Ўᰃ ⌣㾜఼㟇ᇥᦤѸњϸ⃵䇋∖DŽ 䕀থ੠䞡ᅮ৥䛑㛑ᅲ⦄义䴶ⱘ䏇䕀ˈᅗӀⱘऎ߿བ㸼 2-3 ᠔⼎DŽ 㸼 2-3 䕀থ੠䞡ᅮ৥ⱘऎ߿ ৡ⿄ Փ⫼ⱘᇍ䈵 থ᣹԰⫼ⱘԡ㕂 ഄഔᷣᚙމ ᭄᥂݅ѿ 䞡ᅮ৥ response ᅶ᠋ッ ᰒ⼎䕀৥ৢⱘഄഔ ϡ݅ѿ request 㣗ೈݙⱘ᭄᥂ 䕀থ request ᳡ࡵ఼ッ ϡᰒ⼎Ⳃᷛഄഔ ݅ѿ request 㣗ೈݙⱘ᭄᥂ 2.4.2 Փ⫼ response ᇍ䈵ᅲ⦄䞡ᅮ৥

responseᇍ䈵⫼Ѣડᑨᅶ᠋䇋∖ᑊ৥ᅶ᠋ッ䕧ߎֵᙃˈsendRedirect ()ᮍ⊩ᰃ response ᇍ䈵 ᳔ᐌ⫼ⱘᮍ⊩ˈ⫼ᴹᇚ䇋∖䞡ᅮ৥ࠄϔϾϡৠⱘ URL ϞDŽsendRedirect ()ᮍ⊩ⱘ䇁⊩ḐᓣЎ˖ response.sendRedirect(String path); path˖⫼ѢᣛᅮⳂᷛ䏃ᕘˈৃҹᰃⳌᇍ䏃ᕘˈгৃҹᰃϡৠЏᴎⱘ݊Ҫ URL ഄഔDŽ Ǐ՟ 2.5ǐ῵ᢳ⫼᠋ⱏᔩˈⱏᔩ៤ࡳ䏇䕀ࠄ⃶䖢义䴶ˈⱏᔩ༅䋹䏇䕀ࠄⱏᔩ义䴶DŽ ᅲ⦄བϟ˖ ˄1˅㓪ݭ login.jsp 义䴶ˈࣙ৿ⱏᔩ㸼ऩˈ㸼ऩ᭄᥂ᦤѸࠄ dologin.jsp 义䴶ˈབ೒ 2-8 ᠔⼎DŽ ⏙ऩ 2-6 login.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>⫼᠋ⱏᔩ</title> </head> <body> 䇋䕧ܹ⫼᠋ৡ੠ᆚⷕ˖

<form action="dologin.jsp" method="post"> ⫼᠋ৡ˖<input type="text" name="uname"><br>

ᆚ&nbsp;&nbsp;ⷕ˖<input type="password" name="pwd"><br> <input type="submit" value="ⱏᔩ"><input type="reset" value="䞡㕂"> </form>

</body> </html>

˄2˅㓪ݭ dologin.jsp 义䴶ˈ⫼ᴹ㦋পⱏᔩ㸼ऩЁⱘ᭄᥂ˈᑊ偠䆕⫼᠋ৡ੠ᆚⷕˈḍ᥂偠 䆕ⱘ㒧ᵰ䖯㸠䏇䕀DŽ

(11)

⏙ऩ 2-7 dologin.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>ⱏᔩ໘⧚</title> </head> <body> <%request.setCharacterEncoding("utf-8"); String name=request.getParameter("uname"); String pwd=request.getParameter("pwd");

if(name.equals("ᓴϝ")&&pwd.equals("123")) response.sendRedirect("welcome.jsp"); else response.sendRedirect("login.jsp");

%> </body> </html>

⏙ऩ 2-8 welcome.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>ⱏᔩ៤ࡳ</title> </head> <body> <%String name=request.getParameter("uname"); %> ⃶䖢<%=name %>ʽ </body> </html> ᔧ䕧ܹℷ⹂ⱘ⫼᠋ৡঞᆚⷕᯊˈᴀḜ՟ⱘ䖤㸠ᬜᵰབ೒ 2-9 ᠔⼎DŽৃ㾕䞡ᅮ৥ᰒ⼎䕀৥ৢ ⱘഄഔˈԚϡ݅ѿ request 㣗ೈݙⱘ᭄᥂DŽ ೒ 2-8 login.jsp 义䴶 ೒ 2-9 welcome.jsp 义䴶 2.4.3 Փ⫼ request ᇍ䈵ᅲ⦄䕀থ Փ⫼ request ⱘ getRequestDispatcher()ᮍ⊩ৃᅲ⦄䕀থDŽ䗮䖛䕀থ㛑೼໮Ͼ义䴶ѸѦ䖛⿟

(12)

Ёᅲ⦄䇋∖᭄᥂ⱘ݅ѿDŽ

Ǐ՟ 2.6ǐׂᬍ dologin.jspˈՓ⫼䕀থᮍᓣᅲ⦄՟ 2.5 ⱘࡳ㛑DŽ ҙ䳔ׂᬍ՟ 2.5 Ёⱘ dologin.jsp ҷⷕˈབ⏙ऩ 2-9 ᠔⼎DŽ

⏙ऩ 2-9 ׂᬍৢⱘ dologin.jsp ҷⷕ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>ⱏᔩ໘⧚</title> </head> <body> <%request.setCharacterEncoding("utf-8"); String name=request.getParameter("uname"); String pwd=request.getParameter("pwd");

if(name.equals("ᓴϝ")&&pwd.equals("123")) request.getRequestDispatcher("welcome.jsp"). forward(request,response); else response.sendRedirect("login.jsp"); %> </body> </html> ᔧ䕧ܹℷ⹂ⱘ⫼᠋ৡঞᆚⷕᯊˈᴀḜ՟ⱘ䖤㸠ᬜᵰབ೒ 2-10 ᠔⼎DŽৃ㾕䕀থϡᰒ⼎䕀৥ ৢⱘഄഔˈԚ݅ѿ request 㣗ೈݙⱘ᭄᥂DŽ ೒ 2-10 Փ⫼䕀থৢⱘ⃶䖢义䴶 2.4.4 ᅲ䆁 ⣰᭄␌៣ 䆁㒗㽕⚍˖request ੠ response ᇍ䈵ⱘՓ⫼DŽ 䳔∖䇈ᯢ˖㓪ݭ JSP ⿟ᑣˈᅲ⦄⣰᭄ࡳ㛑DŽ㋏㒳䱣ᴎ⫳៤ϔϾ 1̚100 П䯈ⱘᭈ᭄ˈ㽕∖ ⫼᠋೼䕧ܹḚЁ䕧᭄ܹ䖯㸠␌៣ˈḍ᥂߸ᮁⱘ㒧ᵰ䕀৥ϡৠⱘ义䴶ˈ㢹≵⣰ᇍˈ㒻㓁⣰᭄DŽ㋏ 㒳䖤㸠ᬜᵰབ೒ 2-11 㟇೒ 2-14 ᠔⼎DŽ

(13)

೒ 2-11 ⣰᭄␌៣佪义 ೒ 2-12 ⣰ᇣњ义䴶 ೒ 2-13 ⣰໻њ义䴶 ೒ 2-14 ⣰ᇍњ义䴶 ᅲ⦄ᗱ䏃˖ᅲ⦄䆹␌៣ࡳ㛑䳔㽕 5 Ͼ义䴶˖  guess.jsp义䴶˖ᬜᵰབ೒ 2-11 ᠔⼎ˈ೼ℸ义䴶Ё⫳៤䱣ᴎᭈ᭄ (int)(Math.random()*100)+1ˈ 䗮䖛㸼ऩӴ䗦ℸ䱣ᴎᭈ᭄ࠄ݊Ҫ义䴶ЁDŽ  control.jsp义䴶˖㦋প guess.jsp 义䴶䕧ܹⱘ᭄ˈৠӴ䗦䖛ᴹⱘ䱣ᴎ᭄↨䕗ˈ䕀৥ϡৠ ⱘ义䴶DŽ  ok.jsp义䴶˖ᬜᵰབ೒ 2-14 ᠔⼎DŽ  smaller.jsp义䴶˖ᬜᵰབ೒ 2-12 ᠔⼎DŽ  larger.jsp义䴶˖ᬜᵰབ೒ 2-13 ᠔⼎DŽ ೼ control.jspǃsmaller.jsp ੠ larger.jsp 䖭ѯ义䴶䯈݅ѿ䇋∖᭄᥂˄䱣ᴎ᭄˅DŽ Ǐ䯂乬ᓩܹǐ ໻ᆊৃ㛑㒣ᐌ⺄ࠄ䖭ḋⱘ䯂乬ˈ↨བ៥Ӏ೼Փ⫼ⱒᑺ᭛ᑧᯊˈᔧᛇϟ䕑ᶤ᭛ḷᯊˈ㋏㒳 Ӯ㞾ࡼ䕀ܹⱏᔩ义䴶ˈᦤ⼎⫼᠋ⱏᔩৢᠡ㛑ϟ䕑DŽᔧ✊ˈབᵰᰃᏆⱏᔩ⫼᠋ˈህϡӮ䴶Ј䖭ḋ ⱘ䯂乬њDŽ䙷Мˈ㔥㒰ᑨ⫼㋏㒳ᰃབԩ߸ᮁ⫼᠋ᰃ৺Ꮖ㒣ⱏᔩ䖛ⱘਸ਼˛гህᰃ䇈ˈ㋏㒳བԩᅲ ⦄ᇍ㔥キⱘ䆓䯂᥻ࠊਸ਼˛

  ͊Ҭ̋  ࠄဘ᝻᫈଍҄

Ǐᅲ⦄ᗱ䏃ǐ 䗮ᐌᚙމϟˈ⫼᠋ⱏᔩৢⱘᭈϾ䆓䯂䖛⿟䛑Ӯ⫼ࠄ⫼᠋ⱏᔩֵᙃˈJSP ⱘ session ᇍ䈵㛑

(14)

೼ϔ↉ᯊ䯈ݙֱᄬ⫼᠋ⱘⱏᔩֵᙃˈ᠔ҹ䗮ᐌӮ೼⫼᠋ⱏᔩПৢᡞ⫼᠋ֵᙃֱᄬ೼ session ЁDŽ 㗠೼݊Ҫ义䴶Ё䆓䯂 session Ёⱘ⫼᠋ֵᙃˈҢ㗠ᅲ⦄䆓䯂᥻ࠊDŽ 2.5.1 䆓䯂᥻ࠊ⌕⿟ ㋏㒳䖯㸠䆓䯂᥻ࠊ᳝ҹϟϸ⾡ᚙᔶ˖  ⫼᠋䗮䖛ⱏᔩ义䴶ⱏᔩ㔥キˈབᵰ䆹⫼᠋ᰃᏆ⊼ݠ⫼᠋ˈ㋏㒳Ӯֱᄬ䆹⫼᠋ⱘⱏᔩֵ ᙃˈᑊ䅽⫼᠋䖯ܹ݊℆䆓䯂ⱘ义䴶DŽ  ⫼᠋Ⳉ᥹䆓䯂㔥キⱘᶤϾ义䴶ˈ㋏㒳Ӯএᶹ䆶ᰃ৺ֱᄬ᳝䆹⫼᠋ⱘⱏᔩֵᙃˈབᵰ᳝ˈ ߭ᰒ⼎䆹义䴶ⱘݙᆍ˗བᵰ≵᳝ˈህ䕀ܹⱏᔩ义䴶ˈ㽕∖⫼᠋ⱏᔩ㔥キDŽ HTTP ण䆂ᰃϔ⾡᮴⢊ᗕⱘण䆂ˈгህᰃ䇈ˈᅗϡ㛑᳝ᬜഄ䆄ᔩᭈϾ䆓䯂䖛⿟Ёⱘϔѯ⢊ ᗕDŽJSP ᦤկњϔ༫Ӯ䆱䎳䏾ᴎࠊˈ䆹ᴎࠊৃҹ㓈ᣕ↣Ͼ⫼᠋ⱘӮ䆱ֵᙃˈৃҹЎϡৠⱘ⫼᠋ֱ ᄬϡৠⱘ᭄᥂DŽᇍ Web ᓔথᴹ䇈ˈϔϾӮ䆱ህᰃ⫼᠋䗮䖛⌣㾜఼Ϣ᳡ࡵ఼П䯈䖯㸠ⱘϔ⃵䗮䆱ˈ ᅗࣙ৿⌣㾜఼Ϣ᳡ࡵ఼П䯈ⱘ໮⃵䇋∖ǃડᑨ䖛⿟DŽᔧ⌣㾜఼݇䯁ᯊˈⳌᑨⱘ⫼᠋Ӯ䆱㒧ᴳDŽ 2.5.2 Փ⫼ session ᇍ䈵ֱᄬֵᙃ JSPЁˈsession ݙ㕂ᇍ䈵⫼ᴹᄬټ᳝݇⫼᠋Ӯ䆱ⱘ᠔ֵ᳝ᙃˈϔϾ⫼᠋ᇍᑨϔϾ sessionˈ ᑊϨ䱣ⴔ⫼᠋ⱘ⾏ᓔ session ЁⱘֵᙃгӮ⍜༅DŽ䆓䯂᥻ࠊህᰃՓ⫼ session ᇍ䈵ᅠ៤ⱘDŽ sessionᇍ䈵ⱘ setAttribute()ᮍ⊩⫼ᴹֱᄬ⫼᠋ֵᙃˈ݊䇁⊩ḐᓣЎ˖

session.setAttribute(String key,Object value);

key㸼⼎䬂ˈvalue 㸼⼎ؐˈvalue ᖙ乏ᰃϔϾ Object ㉏ൟˈ䆹ᮍ⊩㸼⼎ҹ䬂/ؐⱘᮍᓣᇚϔ Ͼᇍ䈵ⱘؐᄬᬒࠄ session ЁএDŽ Ǐ՟ 2.7ǐձ᥂䆓䯂᥻ࠊ⌕⿟ᅠ୘՟ 2.5 Ёⱘ⫼᠋ⱏᔩҷⷕˈ⫼᠋ⱏᔩ៤ࡳৢֱᄬ⫼᠋ֵ ᙃ˄⫼᠋ৡ੠ᆚⷕ˅DŽ ᅲ⦄བϟ˖ ˄1˅㓪ݭ User ㉏ˈ䆹㉏೼ entity ࣙϟˈ⫼Ѣᄬᬒ⫼᠋ৡঞᆚⷕDŽ ⏙ऩ 2-10 entity.User.java package entity;

public class User { private String name; private String password; public String getName() {

return name; }

public void setName(String name) { this.name = name;

}

public String getPassword() { return password; }

public void setPassword(String password) { this.password = password;

(15)

} }

˄2˅㓪ݭ login.jsp 义䴶ˈЎⱏᔩ义䴶DŽ

⏙ऩ 2-11 login.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>⫼᠋ⱏᔩ</title> </head> <body> 䇋䕧ܹ⫼᠋ৡ੠ᆚⷕ˖

<form action="dologin.jsp" method="post"> ⫼᠋ৡ˖<input type="text" name="uname"><br>

ᆚ&nbsp;&nbsp;ⷕ˖<input type="password" name="pwd"><br> <input type="submit" value="ⱏᔩ"><input type="reset" value="䞡㕂"> </form> </body> </html> ˄3˅㓪ݭ dologin.jsp 义䴶ˈЎⱏᔩ໘⧚义䴶ˈ⫼ᴹ䖯㸠ⱏᔩ偠䆕ˈձ᥂䆓䯂᥻ࠊ⌕⿟ˈ 䳔㽕ᇚ៤ࡳⱏᔩⱘ⫼᠋ֵᙃᄬᬒ೼ session Ёˈ✊ৢݡ䕀৥℆䆓䯂ⱘ welcome.jsp 义䴶DŽ ⏙ऩ 2-12 dologin.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="entity.*"%> <html> <head> <title>ⱏᔩ໘⧚</title> </head> <body> <%request.setCharacterEncoding("utf-8"); String name=request.getParameter("uname"); String pwd=request.getParameter("pwd"); User user=new User();

user.setName(name); //ᇚ⫼᠋ৡᇕ㺙೼ user Ё user.setPassword(pwd); //ᇚᆚⷕᇕ㺙೼ user Ё if(name.equals("ᓴϝ")&&pwd.equals("123")) {

//ᡞ user ᇍ䈵ᄬᬒࠄ session Ёএˈᅗᇍᑨⱘ䬂Ў loginuser session.setAttribute("loginuser",user); response.sendRedirect("welcome.jsp"); } else response.sendRedirect("login.jsp"); %> </body> </html>

(16)

2.5.3 Փ⫼ session ᇍ䈵㦋পֵᙃ

sessionᇍ䈵ⱘ getAttribute()ᮍ⊩⫼ᴹ㦋প session ᇍ䈵Ёᄬᬒⱘᇍ䈵ⱘؐˈ݊䇁⊩ḐᓣЎ˖

(㽕ᔎࠊ䕀ᤶⱘ㉏ൟ)session.getAttribute(String key); key 㸼⼎䬂ˈ䆹ᮍ⊩㸼⼎ҹ䬂ⱘᮍᓣ㦋প session ᇍ䈵Ёᄬᬒⱘᇍ䈵ⱘؐˈℸᮍ⊩ⱘ䖨ಲ ؐᰃϔϾ Objectˈᖙ乏㽕䖯㸠ᔎࠊ㉏ൟ䕀ᤶDŽ Ǐ՟ 2.8ǐձ᥂䆓䯂᥻ࠊ⌕⿟ᅠ୘՟ 2.7ˈ㽕∖䴲ⱏᔩⱘ⫼᠋ϡ㛑䆓䯂℆䆓䯂ⱘ welcome.jsp 义䴶DŽ ᅲ⦄˖ҙ䳔ׂᬍ՟ 2.7 Ёⱘ welcome.jspˈ๲ࡴ⏙ऩ 2-13 Ёࡴ㉫ⱘҷⷕ䚼ߚDŽ ⏙ऩ 2-13 welcome.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="entity.*"%> <html> <head> <title>ⱏᔩ៤ࡳ</title> </head> <body> <%User user=(User)session.getAttribute("loginuser"); //㦋প⫼᠋ᇍ䈵 if(user==null)response.sendRedirect("login.jsp"); //᳾ⱏᔩⱘᚙމ %> ⃶䖢<%=user.getName() %>ʽ </body> </html> ⏙ऩ 2-13 Ёⱘ㉫ԧ䚼ߚेЎ߸ᮁ session ᰃ৺ֱᄬњ⫼᠋ⱏᔩֵᙃDŽsession াᄬټᏆⱏᔩ ⱘ⫼᠋ֵᙃDŽ㟇ℸˈ䆓䯂᥻ࠊᏆᅲ⦄DŽ⦄೼ৃ䗮䖛ҹϟ޴ℹᴹ偠䆕䆓䯂᥻ࠊⱘᬜᵰ˖ ˄1˅Ⳉ᥹೼⌣㾜఼ഄഔᷣЁ䕧ܹ URLˈ䆓䯂 welcome.jsp 义䴶DŽ ˄2˅䗮䖛ⱏᔩ义䴶䖯ܹ welcome.jsp 义䴶DŽ ˄3˅䞡ᮄᓔਃϔϾ⌣㾜఼にষˈⳈ᥹䆓䯂 welcome.jsp 义䴶DŽ 2.5.4 Ң session Ё⿏䰸ᣛᅮⱘᇍ䈵

ᇍѢᄬټ೼ session Ӯ䆱Ёⱘᇍ䈵ˈབᵰᛇᇚ݊Ң session Ӯ䆱Ё⿏䰸ˈৃҹՓ⫼ session ᇍ䈵ⱘ removeAttribute()ᮍ⊩ˈ݊Ḑᓣབϟ˖ session.removeAttribute(String key); key 㸼⼎䬂ˈ䆹ᮍ⊩㸼⼎ҹ䬂ⱘᮍᓣ⿏䰸 session ᇍ䈵Ёᄬᬒⱘᇍ䈵ˈϔ㠀⫼೼⊼䫔ⱏᔩ ࡳ㛑ЁDŽ 2.5.5 ᅲ䆁 Ў⬭㿔ㅵ⧚㋏㒳๲ࡴ䆓䯂᥻ࠊ 䆁㒗㽕⚍˖session ᇍ䈵ⱘՓ⫼DŽ 䳔∖䇈ᯢ˖೼⬭㿔ㅵ⧚㋏㒳ЁЎৢৄㅵ⧚义䴶๲ࡴ䆓䯂᥻ࠊDŽ ᅲ⦄ᗱ䏃ঞ݇䬂ҷⷕ˖㓪ݭ doLogin.jsp 义䴶ˈᣝ✻䆓䯂᥻ࠊ⌕⿟䖯㸠ⱏᔩ໘⧚ˈՓ⫼

(17)

session ֱᄬ៤ࡳⱏᔩⱘ⫼᠋ᇍ䈵ˈݡ䕀৥ৢৄㅵ⧚义䴶˄admin.jsp˅ˈҷⷕখ㗗՟ 2.7˗೼ৢ ৄㅵ⧚义䴶㦋প session Ёⱘ⫼᠋ᇍ䈵ᑊ߸ᮁˈ㢹Ўぎ߭䖯㸠ⱏᔩˈ৺߭ᰒ⼎ৢৄㅵ⧚义䴶ݙ ᆍˈҷⷕখ㗗՟ 2.8DŽ Ǐ䯂乬ᓩܹǐ ೼㔥キϞ㒣ᐌৃҹ㾕ࠄ㔥义䅵఼᭄ˈ⫼ᴹ㒳䅵㔥义㹿⫼᠋䆓䯂ⱘ⃵᭄ˈ៥Ӏгᴹ㒭⬭㿔 ㅵ⧚㋏㒳๲ࡴ㔥义䅵఼᭄ࡳ㛑ˈ䆹བԩᅲ⦄ਸ਼˛

  ͊ҬО  ҄ͻᎪᮆᝠ஝٨

Ǐᅲ⦄ᗱ䏃ǐ ೼乍ⳂᓔথЁ㒣ᐌՓ⫼ application ᇍ䈵ᅲ⦄㔥义䅵఼᭄ˈapplication ᇍ䈵ᰃ JSP ⱘݙ㕂ᇍ 䈵ˈᅗ㉏ԐѢ㋏㒳ⱘܼሔব䞣ˈ⫼Ѣᅲ⦄⫼᠋П䯈ⱘ᭄᥂݅ѿDŽ 2.6.1 application ᇍ䈵 applicationᇍ䈵⫼Ѣֱᄬ᠔᳝ᑨ⫼⿟ᑣЁⱘ᭄᳝݀᥂DŽᅗ೼᳡ࡵ఼ਃࡼᯊ㞾ࡼ߯ᓎˈ೼᳡ ࡵ఼ذℶᯊ䫔↕DŽϢ session ᇍ䈵ϡৠⱘᰃˈ೼ JSP ᳡ࡵ఼䖤㸠ᯊˈҙ᳝ϔϾ application ᇍ䈵ˈ ᔧ application ᇍ䈵≵᳝㹿䫔↕ᯊˈ᠔᳝⫼᠋䛑ৃҹ݅ѿ䆹 application ᇍ䈵DŽϢ session ᇍ䈵Ⳍ ৠⱘᰃˈapplication ᇍ䈵г᳝ setAttribute ੠ getAttribute ᮍ⊩DŽ

2.6.2 ᑨ⫼ application ᇍ䈵ᅲ⦄㔥义䅵఼᭄

↣⃵䆓䯂义䴶ᯊˈܜ㦋প application ᇍ䈵Ёֱᄬⱘ䆓䯂⃵᭄DŽབᵰ≵᳝㦋পࠄˈ㸼⼎义䴶 㹿㄀ϔ⃵䆓䯂ˈᇚ᭄ᄫ 1 ֱᄬࠄ application ᇍ䈵Ё˗བᵰ㦋পࠄњˈ߭ᇚ䆓䯂⃵᭄๲ 1ˈݡ⃵ ᄬټࠄ application ᇍ䈵Ёˈ݋ԧҷⷕབ⏙ऩ 2-14 ᠔⼎DŽ

⏙ऩ 2-14 application.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>㔥义䅵఼᭄</title> </head> <body> <% int num=0; //ᅮНϔϾֱᄬ䆓䯂⃵᭄ⱘব䞣 if(application.getAttribute("number")==null){//ᔧ⫼᠋㄀ϔ⃵䆓䯂ᯊ num=1; } else { num=Integer.parseInt(application.getAttribute("number").toString());

(18)

num=num+1; //䆓䯂⃵᭄ࡴ 1 } out.println("䆹义䴶Ꮖ㹿⌣㾜њ"+num+"⃵ʽ"); application.setAttribute("number",num); %> </body> </html>

വڱ̄࠵ፇ

1ˊ೼ࡼᗕ㔥义ⱘᓔথЁˈHTML 㸼ऩᰃϢ⫼᠋ѸѦֵᙃⱘЏ㽕᠟↉DŽ 2ˊՓ⫼ JSP ໘⧚㸼ऩ䇋∖ᯊˈϔ㠀䙉ᕾ䖭ḋϔ⾡῵ᓣ˖ ˄1˅⫼᠋䗮䖛㸼ऩ᥻ӊ䕧ܹᑊᦤѸֵᙃDŽ ˄2˅JSP 义䴶㦋প㸼ऩ᭄᥂ˈ䖯㸠䘏䕥໘⧚DŽ ˄3˅JSP 义䴶ḍ᥂໘⧚㒧ᵰ䕀৥ϡৠⱘ㒧ᵰ义䴶DŽ 3ˊ᠔䇧ݙ㕂ᇍ䈵ህᰃ⬅ Web ᆍ఼ࡴ䕑ⱘϔ㒘㉏ⱘᅲ՟ˈᅗϡڣϔ㠀ⱘ Java ᇍ䈵䙷ḋ⫼ newএ㦋পᅲ՟ˈ㗠ᰃৃҹⳈ᥹೼ JSP 义䴶ЁՓ⫼ⱘᇍ䈵DŽ 4ˊᐌ⫼ⱘݙ㕂ᇍ䈵ˈབ㸼 2-4 ᠔⼎DŽ 㸼 2-4 ᐌ⫼ݙ㕂ᇍ䈵 ৡ⿄ 䇈ᯢ ᐌ⫼ᮍ⊩

out ⫼Ѣ৥ᅶ᠋ッ䕧ߎ᭄᥂ printlnǃprint

request ⫼Ѣᅶ᠋ッⱘ䇋∖໘⧚ getParameterǃgetParameterValuesǃ setCharacterEncodingǃgetRequestDispatcher response ⫼Ѣડᑨᅶ᠋䇋∖ᑊ৥ᅶ᠋ッ䕧ߎֵᙃ setCharacterEncodingǃsendRedirect

session ⫼ᴹᄬټ᳝݇⫼᠋Ӯ䆱ⱘ᠔ֵ᳝ᙃ setAttributeǃgetAttributeǃremoveAttributeǃ invalidate

application ㉏ԐѢ㋏㒳ⱘܼሔব䞣ˈ⫼Ѣᅲ⦄⫼᠋П䯈

ⱘ᭄᥂݅ѿ setAttributeǃgetAttribute

5ˊ䆓䯂᥻ࠊ⌕⿟ˈབ೒ 2-15 ੠೒ 2-16 ᠔⼎DŽ

(19)

೒ 2-16 䆓䯂᥻ࠊ⌕⿟˄2˅

ህ Web ᓔথᴹ䇈ˈϔϾӮ䆱ህᰃ⫼᠋䗮䖛⌣㾜఼Ϣ᳡ࡵ఼П䯈ⱘϔ⃵䗮䆱ˈᅗࣙ৿⌣㾜 ఼Ϣ᳡ࡵ఼П䯈ⱘ໮ሖ䇋∖ǃડᑨ䖛⿟DŽ

˸ᮥ̄

ϔǃ฿ぎ乬

1ˊJSP Ёᐌ⫼ⱘݙ㕂ᇍ䈵᳝ request ᇍ䈵ǃresponse ᇍ䈵ǃsession ᇍ䈵ǃapplication ᇍ䈵ǃ outᇍ䈵ㄝˈ݊Ё ᇍ䈵ⱘ⫳ੑ਼ᳳЎ⫼᠋䆓䯂䖛⿟ˈ ᇍ䈵ⱘ⫳ੑ਼ ᳳЎキ⚍䖤㸠ⱘܼ䖛⿟ˈ ᇍ䈵ࣙ৿њϔ⃵䇋∖Ёⱘ᠔ֵ᳝ᙃˈ ᇍ 䈵ࣙ৿њડᑨ䇋∖ⱘ᠔ֵ᳝ᙃˈ ᇍ䈵⫼Ѣ䕧ߎ݊Ҫᇍ䈵ֵᙃDŽ

2ˊᅶ᠋ッ䗮䖛㸼ऩ Form ৥᳡ࡵ఼ᦤѸ᭄᥂᳝ϸ⾡ᮍ⊩˖ ੠ DŽ 3ˊ䗮䖛䇗⫼ request ᇍ䈵ⱘ getParameter ᮍ⊩䖨ಲⱘ᭄᥂㉏ൟЎ ˈ䗮䖛䇗 ⫼ session ᇍ䈵ⱘ getAttribute ᮍ⊩䖨ಲⱘ᭄᥂㉏ൟЎ ˈ䗮䖛䇗⫼ application ᇍ 䈵ⱘ getAttribute ᮍ⊩䖨ಲⱘ᭄᥂㉏ൟЎ DŽ 4ˊpage ᣛҸⱘ ሲᗻᣛᯢᛇ㽕ᓩܹⱘࣙ੠㉏DŽ 5ˊ ᣛҸৃ⫼Ѣࣙ৿঺ϔϾ᭛ӊDŽ Ѡǃ䗝ᢽ乬 1ˊ೼ JSP 义䴶Ёˈϟ߫˄ ˅㸼䖒ᓣ䇁হৃҹ㦋প义䴶䇋∖ЁৡᄫЎ title ⱘ᭛ᴀḚⱘ ݙᆍDŽ Aˊ<%=request.getParameter("title")%> Bˊ<%=request.getAttribute("title")%> Cˊ<%=request.getParameterValues("title")%> Dˊ<%=request.getParameters("title")%> 2ˊ೼⫼᠋ⱏᔩⱘ JSP 义䴶Ϟࣙ৿བϟҷⷕ᠔⼎ⱘ㸼ऩˈ⫼᠋ᏠᳯᦤѸ㸼ऩᯊ೼ഄഔᷣЁ ϡᰒ⼎ᦤѸⱘֵᙃˈ߭ᑨ䆹೼ϟߦ㒓໘฿ݭⱘҷⷕᰃ˄ ˅DŽ

<form action="loginAction.jsp" name="loginForm" method="______"> ⫼᠋ৡ˖<input type="text" name="name"/><br>

(20)

ᆚⷕ˖<input type="password" name="pwd"/> <input type="submit" value="ⱏᔩ"/> </form>

Aˊget Bˊpost

Cˊϡ฿ݭӏԩݙᆍ DˊҹϞ䗝乍ഛৃ

3ˊ೼ JSP Ёˈ㽕೼ page ᣛҸЁ䆒㕂Փ⫼ⱘ㛮ᴀ䇁㿔ᰃ JavaˈϨᇐܹњ java.io ੠ java.util ࣙˈϟ߫䇁হЁℷ⹂ⱘᰃ˄ ˅DŽ

Aˊ<%@ page language="java" import="java.io.*,java.util.*"%> Bˊ<%@ page language="java" import="java.io, java.util "%>

Cˊ<%@ page language="java" import="java.io" import="java.util"%> Dˊ<%@ page language="java"%>

<%@ page import="java.io.*,java.util.*"%>

4ˊ䆩೒䖤㸠བϟ JSP ҷⷕˈҹϟ䇈⊩ℷ⹂ⱘᰃ˄ ˅DŽ

<html> <%

String str="hello ACCP"; session.setAttribute("title",str); String getStr=session.getAttribute("title"); out.println(getStr); %> </html> Aˊ䖤㸠៤ࡳˈ义䴶Ϟ䕧ߎ hello ACCP Bˊ䖤㸠៤ࡳˈ义䴶Ϟ䕧ߎ title Cˊҷⷕ㸠 session.setAttribute("title",str);᳝䫭䇃ˈ᮴⊩䖤㸠 Dˊҷⷕ㸠 String getStr=session.getAttribute("title");᳝䫭䇃ˈ᮴⊩䖤㸠 5ˊਃࡼ IE にষ䖤㸠བϟ JSPˈབᵰ䖲㓁ࠋᮄ 5 ⃵ˈ䕧ߎⱘ㒧ᵰᰃ Xˈ㋻᥹ⴔ䞡ᮄਃࡼϔ Ͼᮄⱘ IE にষ䖤㸠䆹 JSPˈ䖲㓁ࠋᮄ 3 ⃵ˈ䕧ߎⱘ㒧ᵰᰃ YˈX ੠ Y ⱘؐߚ߿ᰃ˄ ˅DŽ <%@ page contentType="text/html;charset=GBK"%> <html> <% Integer cnt=(Integer)application.getAttribute("hitcount ") ; if(cnt= =null){ cnt=new Integer(1); }else{ cnt=new Integer(cnt.intValue()+1); } application.setAttribute("hitcount",cnt); %> <%=cnt%> </html>

(21)

Aˊ5ǃ8 Bˊ5ǃ3 Cˊ1ǃ2 Dˊ1ǃ1 6ˊJSP ᦤկњϔϾৃҹ೼໮Ͼ䇋∖П䯈ᣕ㓁᳝ᬜⱘݙ㕂ᇍ䈵˄ ˅ˈ䆹ᇍ䈵Ϣ⌣㾜఼ϔ ϔᇍᑨDŽ Aˊrequest Bˊresponse Cˊsession Dˊapplication

7ˊ೼ helloapp ᑨ⫼Ё᳝ϔϾ hello.jspˈᅗⱘ᭛ӊ䏃ᕘЎ WebRoot/hello/hello.jspˈ䙷М೼ ⌣㾜఼ッ䆓䯂 hello.jsp ⱘ URL ᰃ˄ ˅DŽ Aˊhttp://localhost:8080/hello.jsp Bˊhttp://localhost:8080/helloapp/hello.jsp Cˊhttp://localhost:8080/helloapp/hello/hello.jsp Dˊhttp://localhost:8080/hello/hello.jsp 8ˊҢ HTTP 䇋∖Ё㦋ᕫ䇋∖খ᭄ˈᑨ䆹䇗⫼˄ ˅DŽ Aˊrequest ᇍ䈵ⱘ getAttribute()ᮍ⊩ Bˊrequest ᇍ䈵ⱘ getParameter()ᮍ⊩ Cˊsession ᇍ䈵ⱘ getAttribute()ᮍ⊩ Dˊsession ᇍ䈵ⱘ getParameter()ᮍ⊩

9ˊ೼ helloapp ᑨ⫼Ё hello.jsp ੠ welcome.jsp ೼ৠϔⳂᔩЁˈindex.jsp ೼ᑨ⫼ⱘḍⳂᔩЁˈ index.jsp Փ⫼ϟ䴶ⱘҷⷕৃҹ䏇䕀ࠄ hello.jsp 义䴶˖request.getRequestDispatcher("/hello.jsp"). forward(request,response);ˈ⫼ϟ߫ᮍᓣЁⱘ˄ ˅ҷ᳓Ϟ䗄ҷⷕৢৃҹ䏇䕀ࠄ welcome.jsp 义䴶DŽ Aˊresponse.sendRedirect("/helloapp/welcome.jsp"); Bˊresponse.sendRedirect("helloapp/welcome.jsp"); Cˊresponse.sendRedirect("welcome.jsp"); Dˊresponse.sendRedirect("/welcome.jsp"); 10ˊϟ䴶݇Ѣ JSP ԰⫼ඳᇍ䈵ⱘ䇈⊩䫭䇃ⱘᰃ˄ ˅DŽ Aˊrequest ᇍ䈵ৃҹᕫࠄ䇋∖Ёⱘখ᭄ Bˊsession ᇍ䈵ৃҹֱᄬ⫼᠋ֵᙃ Cˊapplication ᇍ䈵ৃҹ㹿໮Ͼᑨ⫼݅ѿ Dˊ԰⫼ඳ㣗ೈҢᇣࠄ໻ᰃ requestǃsessionǃapplication

(22)

ϝǃ㓪⿟乬 1ˊ㓪ݭ䴭ᗕ义䴶⫼Ѣ䕧ܹᑈӑˈ㓪ݭ JSP ⫼Ѣ߸ᮁ䆹ᑈᰃ৺ᰃ䯄ᑈDŽ 2ˊ㓪ݭϔϾ JSP 义䴶ˈ㽕∖ᦤկϔϾࣙ৿৘㘠Ϯৡ⿄ⱘϟᢝ߫㸼Ḛˈ䅽⫼᠋䗝ᢽ݊㘠Ϯˈ ᦤѸৢˈ߸ᮁ⫼᠋ⱘ㘠Ϯᰃ৺ᰃए⫳ˈབᵰᰃˈ߭䏇䕀䖯ܹϔϾ⃶䖢义䴶˗བᵰϡᰃˈ߭೼义 䴶Ϟᰒ⼎䆹⫼᠋ⱘ㘠ϮDŽ 3ˊ㓪ݭϔϾ JSP 义䴶 luncknum.jspˈѻ⫳ 0̚9 П䯈ⱘ䱣ᴎ᭄԰Ў⫼᠋ᑌ䖤᭄ᄫˈᇚֱ݊ ᄬࠄӮ䆱Ёˈᑊ䞡ᅮ৥ࠄ঺ϔϾ义䴶 shownum.jsp Ёˈ೼䆹义䴶Ёᇚ⫼᠋ⱘᑌ䖤᭄ᄫᰒ⼎ߎᴹDŽ ᦤ⼎˖Math ㉏ⱘ random()ᮍ⊩⫳៤ 0.0̚1.0 П䯈ⱘ䱣ᴎ᭄DŽ

參考文獻

相關文件

学校现有教学仪器设备超过1亿元,学校图书馆纸质藏书125万册,电子图书

¾ To fetch a Web page, browser establishes TCP connection to the machine where the page is and sends a message over the connection asking for the

The client’s web browser sends a request to the server for a web page that runs a Java servlet.

1、电动力学 郭硕宏编 高等教育出版社 2、电动力学 尹真 编 南京大学出版社 3、Classical Electrodynamics J. Jackson

彭龙,经济学教授,博士生导师,1999年起享受国务院政府特殊津贴,2014年入选国家百千万人才工程,被

The main purpose of this paper is using Java language with object-oriented and cross platform characteristics and Macromedia Dreamweaver MX to establish a JSP web site with

• 三級處理 (tertiary treatment) 或高級處理 (advance treatment)..

原水 分水井 接觸池 清水池