Калі кліент адпраўляе запыт на вэб-сервер, кантэйнер сэрвлета стварае ServletRequest і ServletResponse аб'екты і перадае іх у якасці аргументу службы сэрвлета () метад. Аб'ект запыту забяспечвае доступ да інфармацыі запыту, такія як загаловак і цела інфармацыі запыту дадзеных.
Спачатку мы разгледзім прыклад, і тады мы ўбачым спіс даступных метадаў у інтэрфейсе ServletRequest:
Прыклад 1: ServletRequest getParameter () для адлюстравання карыстацкага ўводу
У гэтым прыкладзе я дэманструю выкарыстанне метаду getParameter (), які вяртае значэнне дадзенага параметру.
У гэтым выглядзе HTML, мы робім ўвод дадзеныя карыстальніка (імя і ўзрост) і захоўваць іх у параметрах uname
і uage
адпаведна.
index.html
<Форма дзеянні метад = «дэталі» = «атрымаць»> Імя карыстальніка: <ўваходных тып = "тэкст" назва = "uname"> <br> Карыстальнік Узрост: <ўваходных тып = "тэкст" назва = "uage"> <br> <Уваходны тып = "адправіць" значэнне = "адправіць»> </ Форма>
MyServletDemo.java
У гэтым класе сэрвлета мы атрымліваем значэнне параметраў з дапамогай метаду getParameter (), гэты метад ставіцца да ServletRequest інтэрфейсу. Метад У гэтым прыкладзе мы маем HttpServletRequest ў якасці параметру doGet (), HttpServletRequest пашырае інтэрфейс ServletRequest Вось чаму метад getParameter () даступны для req
аб'екта.
Пасля атрымання значэння, мы пішам іх на вэб-старонцы.
імпарт javax.servlet.http *. імпарт javax.servlet *. імпарт java.io. *; грамадскі клас MyServletDemo пашырае HttpServlet { грамадскага несапраўднай doGet (HttpServletRequest REQ, HttpServletResponse дазвол) кідае ServletException, IOException {res.setContentType ( "тэкст / html"); PrintWriter pwriter = res.getWriter (); Імя String = req.getParameter ( "uname"); Радок ўзрост = req.getParameter ( "uage"); pwriter.println ( "Імя:" + імя); pwriter.println ( "Узрост:" + ўзрост); pwriter.close ();} }
web.xml
Гэта разгортванне дэскрыптар файл, які адлюстроўвае сэрвлета ў URL. Так як наша форма мае дадзеныя старонкі як дзеянне, мы вырабім клас сэрвлета на старонку звестак.
<Вэб-дадатак> <Дысплей імя> BeginnersBookDemo <дысплей імя /><Гасцінна-файл-спіс><Гасцінна-файл> index.html </ гасцінна-файл><Гасцінна-файл> index.htm </ гасцінна-файл><Гасцінна-файл> index.jsp </ гасцінна-файл><Гасцінна-файл> default.html </ гасцінна-файл><Гасцінна-файл> default.htm </ гасцінна-файл><Гасцінна-файл> Default.jsp </ гасцінна-файл></ Гасцінна-файл-спіс> <Сэрвлета><Сэрвлета-імя> BeginnersBook </ сэрвлета-імя><Сэрвлета-клас> MyServletDemo </ сэрвлета-клас> </ Сэрвлета>
<Сэрвлета-адлюстраванне><Сэрвлета-імя> BeginnersBook </ сэрвлета-імя><URL-шаблон> / падрабязнасці </ URL-шаблон> </ Сэрвлета-адлюстраванне> </ Вэб-дадатак>
выхад:
Экран 1:
Экран 2, які з'яўляецца пры націску прадстаўляе:
Прыклад 2: Атрыманне імёнаў параметраў і значэнне
У гэтым прыкладзе мы будзем выкарыстоўваць getParameterNames () і getParameter () метады, каб атрымаць імёны параметраў і значэнняў.
getParameterNames (): Вяртае Пералік аб'ектаў Струнны змяшчаюць імёны параметраў, якія змяшчаюцца ў запыце. Калі запыт не мае параметраў, метад вяртае пусты Пералік.
getParameter (): Як згадвалася вышэй, гэта вяртае значэнне зададзенага параметра.
index.html
<Форма дзеянні метад = «дэталі» = «атрымаць»> Імя карыстальніка: <ўваходных тып = "тэкст" назва = "uname"> <br> Карыстальнік Узрост: <ўваходных тып = "тэкст" назва = "uage"> <br> <Уваходны тып = "адправіць" значэнне = "адправіць»> </ Форма>
MyServletDemo.class
імпарт java.io.IOException; імпарт java.io.IOException; імпарт java.io.PrintWriter; імпарт java.util.Enumeration; імпарт javax.servlet.ServletException; імпарт javax.servlet.http.HttpServlet; імпарт javax.servlet.http.HttpServletRequest; імпарт javax.servlet.http.HttpServletResponse; грамадскі клас MyServletDemo пашырае HttpServlet { грамадскага несапраўднай doGet (HttpServletRequest REQ, HttpServletResponse дазвол) кідае ServletException, IOException { PrintWriter pwriter = res.getWriter (); res.setContentType ( "тэкст / html"); Пералік ан = req.getParameterNames (); у той час як (en.hasMoreElements ()){Аб'ект OBJ = en.nextElement ();Радок пары = (радок) OBJ;Радок = p-значэнне req.getParameter (пары);pwriter.print ( "Імя параметру:" + Param + "Параметр Значэнне:" + p-значэнне);}pwriter.close (); } }
web.xml
<Вэб-дадатак> <Сэрвлета> <Сэрвлета-імя> BeginnersBook </ сэрвлета-імя> <Сэрвлета-клас> MyServletDemo </ сэрвлета-клас> </ Сэрвлета> <Сэрвлета-адлюстраванне> <Сэрвлета-імя> BeginnersBook </ сэрвлета-імя> <URL-шаблон> / падрабязнасці </ URL-шаблон> </ Сэрвлета-адлюстраванне> </ Вэб-дадатак>
выхад:
Прыклад 3: Адлюстраванне інфармацыі загалоўка
index.html
<H1> Servlet Request Demo </ h1> <Цела> <a href="headinfo"> Націсніце тут </a> </ Body>
HeaderDetails.java
імпарт java.io.IOException; імпарт java.io.PrintWriter; імпарт java.util.Enumeration; імпарт javax.servlet.ServletException; імпарт javax.servlet.http.HttpServlet; імпарт javax.servlet.http.HttpServletRequest; імпарт javax.servlet.http.HttpServletResponse; грамадскі клас HeaderDetails пашырае HttpServlet { грамадскага несапраўднай doGet (HttpServletRequest запыт, HttpServletResponse адказ) кідае IOException, ServletException{ response.setContentType ( "тэкст / html"); PrintWriter pwriter = response.getWriter (); pwriter.println ( "Інфармацыя загалоўка HTTP: <br>"); Пералік ан = request.getHeaderNames (); у той час як (en.hasMoreElements ()) { Радок hName = (радок) en.nextElement (); Радок hValue = request.getHeader (hName); pwriter.println ( "<B>" + hName + ": </ b>" + HValue + "<br>"); } } }
web.xml
<Вэб-дадатак> <Гасцінна-файл-спіс> <Гасцінна-файл> index.html </ гасцінна-файл> <Гасцінна-файл> index.htm </ гасцінна-файл> <Гасцінна-файл> index.jsp </ гасцінна-файл> <Гасцінна-файл> default.html </ гасцінна-файл> <Гасцінна-файл> default.htm </ гасцінна-файл> <Гасцінна-файл> Default.jsp </ гасцінна-файл> </ Гасцінна-файл-спіс> <Сэрвлета> <Сэрвлета-імя> BeginnersBook </ сэрвлета-імя> <Сэрвлета-клас> HeaderDetails </ сэрвлета-клас> </ Сэрвлета> <Сэрвлета-адлюстраванне> <Сэрвлета-імя> BeginnersBook </ сэрвлета-імя> <URL-шаблон> / headinfo </ URL-шаблон> </ Сэрвлета-адлюстраванне> </ Вэб-дадатак>
выхад:
Метады інтэрфейсу ServletRequest
Радок getParameter (імя String): вяртае значэнне дадзенага параметру ў выглядзе радкі або нуль , калі дадзены параметр не існуе.
Пералічэння getParameterNames (): Ён вяртае Пералік аб'ектаў радкоў , якія змяшчаюць імёны параметраў ў запыце.
String [] getParameterValues (імя String): Ён вяртае масіў радкоў , якія змяшчаюць усе значэння, параметры мае, вяртае нулявое значэнне , калі параметр не мае ніякага значэння.
Радок getCharacterEncoding (): Вяртае імя кадоўкі знакаў , якія выкарыстоўваюцца ў целе гэтага запыту. Гэты метад вяртае нулявое значэнне, калі запыт не вызначае кадыроўку знакаў.
setCharacterEncoding несапраўднымі (String ENV): Змена кадоўку ў целе запыту.
INT getContentLength (): Вяртае даўжыню змесціва запыту ў байтах.
Радок getContentType (): Вяртае тып MIME цела запыту, або нулявое значэнне , калі тып не вядомы.
Заўвага: я толькі што згадаў некаторыя з метадаў. Калі вы хочаце поўны спіс метадаў, а затым перадаць гэтую афіцыйную дакументацыю .
Пакінуць каментар