рдкрд░рд┐рдЪрдп
рдпрд╣ рд▓реЗрдЦ рдПрдХ
рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдлрд┐рд▓реНрдо рдЯрд┐рдХрдЯ рдмреБрдХрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдИ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдмреБрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддреА рд╣реИ, рдЕрд░реНрдерд╛рддред рдкрд╣рд▓реЗ рдкреЗрдЬ рдкрд░ рд╡рд╣ рд╕рддреНрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░реЗ рдкрд░ рдЙрд╕рдХрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛, рддреАрд╕рд░реЗ рдкрд░ - рднреБрдЧрддрд╛рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ред рдЕрдВрддрд┐рдо рдкреГрд╖реНрда рдЖрд░рдХреНрд╖рдг рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛ рд╕рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрд░рдХреНрд╖рдг рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рддреНрд░ рд╕реЗ рдбреЗрдЯрд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ
рддреБрд░рдВрдд рдЖрд░рдХреНрд╖рдг рдХрд░реЗрдВ, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдорд╡реАрд╕реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЗрдкреА рдХреЛ рджреГрд╢реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рдо рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддрд╛ рд╣реИ:
- Book.jsp: рдлрд┐рд▓реНрдо рдЪрдпрди рдкреГрд╖реНрда
- customer.jsp: рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдкреГрд╖реНрда
- payment.jsp: рднреБрдЧрддрд╛рди рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдкреГрд╖реНрда
- confirm.jsp: рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдкреГрд╖реНрда
рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ: рдмреБрдХрд┐рдВрдЧ редjsp
<% @ рдкреГрд╖реНрда contentType = "text / html; charset = UTF-8" рднрд╛рд╖рд╛ = "рдЬрд╛рд╡рд╛"%>
<% @ taglib uri = "http://www.springframework.org/tags/form" рдЙрдкрд╕рд░реНрдЧ = "рдлрд╝реЙрд░реНрдо"% 1
<Html>
<Head>
<рд╢реАрд░реНрд╖рдХ> рдмреБрдХрд┐рдВрдЧ рдкреНрд░рд╛рд░рдВрдн рдкреГрд╖реНрда </ рд╢реАрд░реНрд╖рдХ>
</ Head>
<Body>
<рдлрд╝реЙрд░реНрдо: рдлрд╝реЙрд░реНрдо рдХрд╛рд░реНрд░рд╡рд╛рдИ = "/ рдмреБрдХрд┐рдВрдЧ / рдлрд┐рд▓реНрдо" рдореЙрдбрд▓ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ = "рдЯрд┐рдХрдЯрдлрд╝реЙрд░реНрдо">
рдореВрд╡реА рдЖрдИрдбреА: <рдлреЙрд░реНрдо: рдЗрдирдкреБрдЯ рдкрде = "рдореВрд╡реАрдЖрдИрдб" />
<рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░ = "рд╕рдмрдорд┐рдЯ" />
</ рдлреЙрд░реНрдо: рдлрд╝реЙрд░реНрдо>
</ Body>
</ Html>
рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ: customer.jsp
<% @ рдкреГрд╖реНрда contentType = "text / html; charset = UTF-8" рднрд╛рд╖рд╛ = "рдЬрд╛рд╡рд╛"%>
<% @ taglib uri = "http://www.springframework.org/tags/form" рдЙрдкрд╕рд░реНрдЧ = "рдлрд╝реЙрд░реНрдо"% 1
<Html>
<Head>
<рд╢реАрд░реНрд╖рдХ> рдЧреНрд░рд╛рд╣рдХ рдкреГрд╖реНрда </ рд╢реАрд░реНрд╖рдХ>
</ Head>
<Body>
<рдлрд╝реЙрд░реНрдо: рдлрд╝реЙрд░реНрдо рдХрд╛рд░реНрд░рд╡рд╛рдИ = "/ рдмреБрдХрд┐рдВрдЧ / рдЧреНрд░рд╛рд╣рдХ" рдореЙрдбрд▓ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ = "рдЯрд┐рдХрдЯрдлрд╝реЙрд░реНрдо">
рдЕрдВрддрд┐рдо рдирд╛рдо: <рдлреЙрд░реНрдо: рдЗрдирдкреБрдЯ рдкрде = "рдЕрдВрддрд┐рдо рдирд╛рдо" />
<рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░ = "рд╕рдмрдорд┐рдЯ" />
</ рдлреЙрд░реНрдо: рдлрд╝реЙрд░реНрдо>
</ Body>
</ Html>
рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ: рднреБрдЧрддрд╛рди
<% @ рдкреГрд╖реНрда contentType = "text / html; charset = UTF-8" рднрд╛рд╖рд╛ = "рдЬрд╛рд╡рд╛"%>
<% @ taglib uri = "http://www.springframework.org/tags/form" рдЙрдкрд╕рд░реНрдЧ = "рдлрд╝реЙрд░реНрдо"% 1
<Html>
<Head>
<рд╢реАрд░реНрд╖рдХ> рднреБрдЧрддрд╛рди рдкреГрд╖реНрда </ рд╢реАрд░реНрд╖рдХ>
</ Head>
<Body>
<рдлреЙрд░реНрдо: рдлреЙрд░реНрдо рдПрдХреНрд╢рди = "/ рдмреБрдХрд┐рдВрдЧ / рднреБрдЧрддрд╛рди" рдореЙрдбрд▓ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ = "рдЯрд┐рдХрдЯрдлреЙрд░реНрдо">
рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рдирдВрдмрд░: <рдлреЙрд░реНрдо: рдЗрдирдкреБрдЯ рдкрде = "рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдбрдирдВрдмрд░" />
<рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░ = "рд╕рдмрдорд┐рдЯ" />
</ рдлреЙрд░реНрдо: рдлрд╝реЙрд░реНрдо>
</ Body>
</ Html>
рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ: рдкреБрд╖реНрдЯрд┐рдХрд░рдг редjsp
<% @ рдкреГрд╖реНрда contentType = "text / html; charset = UTF-8" рднрд╛рд╖рд╛ = "рдЬрд╛рд╡рд╛"%>
<Html>
<Head>
<рд╢реАрд░реНрд╖рдХ> рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдкреГрд╖реНрда </ рд╢реАрд░реНрд╖рдХ>
</ Head>
<Body>
рдЕрдкрдиреА рдЦрд░реАрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
</ Body>
</ Html>
рдлрд╛рд░реНрдо:
рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ рдЯрд┐рдХрдЯрдлрд╛рд░реНрдо {
рдирд┐рдЬреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд┐рд▓реНрдо рдЖрдИ рдбреА;
рдирд┐рдЬреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдВрддрд┐рдо рдирд╛рдо;
рдирд┐рдЬреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреНрд░реЗрдбрд┐рдЯрдХрд╛рд░реНрдбрдирдВрдмрд░;
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ getMovieId () {
рд░рд┐рдЯрд░реНрди рдореВрд╡реАрдЖрдИрдбреА;
}
public void setMovieId (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд┐рд▓реНрдо рдЖрдИ) {
this.movieId = movieId;
}
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ getLastName () {
рдЕрдВрддрд┐рдо рдирд╛рдо;
}
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рд╕реЗрдЯрд▓реИрд╕реНрдЯрдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдВрддрд┐рдо рдирд╛рдо) {
this.lastName = lastName;
}
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ getCreditCardNumber () {
рд╡рд╛рдкрд╕реА рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдбрдирдВрдмрд░;
}
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рд╕реЗрдЯ рдХрд░реЗреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдбрдирдВрдмрд░ (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдбрдирдВрдмрд░) {
this.creditCardNumber = creditCardNumber;
}
}
BookTicketController рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ @SessionAttributes рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг, рдЕрдм рдореЙрдбрд▓ рд╕реЗ рдЬреБрдбрд╝реЗ рдЯрд┐рдХрдЯрдлреЙрд░реНрдо рдкреНрд░рдХрд╛рд░ рднреА рд╕рддреНрд░ рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЬрд╛рдПрдВрдЧреЗред @SessionAttributes рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЙрдбрд▓ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рдХреЗ рд╕рд╛рде рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдпрд╛рдд org.springframework.stereotype.Controller;
рдЖрдпрд╛рдд org.springframework.ui.Model;
рдЖрдпрд╛рдд org.springframework.util.Assert;
рдЖрдпрд╛рдд org.springframework.web.bind.annotation.RequestMapping;
рдЖрдпрд╛рдд org.springframework.web.bind.annotation.RequestMethod;
рдЖрдпрд╛рдд org.springframework.web.bind.annotation.SessionAttributes;
рдЖрдпрд╛рдд org.springframework.web.bind.support.SessionStatus;
@Controller
@RequestMapping (рдореВрд▓реНрдп = "/ рдмреБрдХрд┐рдВрдЧ")
@ рд╕рддреНрд░рдЕрднрд┐рдпреЛрдЧ (рдкреНрд░рдХрд╛рд░ = рдЯрд┐рдХрдЯрдлрд╝реЙрд░реНрдо.рдХреНрд▓рд╛рд╕)
рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ рдмреБрдХ рдЯрд┐рдХрдЯрдХрдВрдЯреНрд░реЛрд▓рд░ {
@RequestMapping (рд╡рд┐рдзрд┐ = RequestMethod.GET)
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рд░рдВрдн (рдореЙрдбрд▓ рдореЙрдбрд▓) {
// рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж () рдлреЙрд░реНрдо рдХреЛ http рд╕рддреНрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП @SessionAttributes (рдкреНрд░рдХрд╛рд░ = TicketForm.class) рдХреА рдмрджреМрд▓рдд рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
model.addAttribute (рдирдпрд╛ рдЯрд┐рдХрдЯрдлреЙрд░реНрдо ());
рд╡рд╛рдкрд╕реА "рдмреБрдХрд┐рдВрдЧ / рдмреБрдХрд┐рдВрдЧ";
}
@RequestMapping (рдорд╛рди = "/ рдлрд┐рд▓реНрдо", рд╡рд┐рдзрд┐ = RequestMethod.POST)
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЪрдпрдирдореВрд╡реА (рдЯрд┐рдХрдЯрдлреЙрд░реНрдо рдЯрд┐рдХрдЯрдлреЙрд░реНрдо) {
Assert.notNull (рдЯрд┐рдХрдЯрдлрд╝реЙрд░реНрдо);
Assert.notNull (рдЯрд┐рдХрдЯрдлрд╝реЙрд░реНрдо.рдЧреЗрдЯрдореВрд╡реАрдЖрдИрдПрдирдбреА ());
рд╡рд╛рдкрд╕реА "рдмреБрдХрд┐рдВрдЧ / рдЧреНрд░рд╛рд╣рдХ";
}
@RequestMapping (рдорд╛рди = "/ рдЧреНрд░рд╛рд╣рдХ", рд╡рд┐рдзрд┐ = RequestMethod.POST)
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдВрдЯрд░рдХрд╛рдбрд░рдбреЗрдЯрд╛ (рдЯрд┐рдХрдЯрдлреЙрд░реНрдо рдЯрд┐рдХрдЯрдлреЙрд░реНрдо) {
Assert.notNull (рдЯрд┐рдХрдЯрдлрд╝реЙрд░реНрдо);
// MovieId рдХреЛ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рде рдкреНрд░реЗрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬреЗрдПрд╕рдкреА, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕реЗрд╢рдирдореВрд╡реА () рдХреЗ рджреМрд░рд╛рди рд╕рддреНрд░ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рдерд╛
Assert.notNull (рдЯрд┐рдХрдЯрдлрд╝реЙрд░реНрдо.рдЧреЗрдЯрдореВрд╡реАрдЖрдИрдПрдирдбреА ());
Assert.notNull (рдЯрд┐рдХрдЯрдлрд╝реЙрд░реНрдо.рдЧреЗрдЯ рд▓рд╛рд╕реНрдЯрдирд╛рдо ());
рд╡рд╛рдкрд╕реА "рдмреБрдХрд┐рдВрдЧ / рднреБрдЧрддрд╛рди";
}
@RequestMapping (рдорд╛рди = "/ рднреБрдЧрддрд╛рди", рд╡рд┐рдзрд┐ = RequestMethod.POST)
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдВрдЯрд░рдкреЗрдореЗрдВрдЯрдбреЗрд▓ (рдЯрд┐рдХрдЯрдлреЙрд░реНрдо рдЯрд┐рдХрдЯрдлрд╝реЙрд░реНрдо) {
// MovieId рдХреЛ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рде рдкреНрд░реЗрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬреЗрдПрд╕рдкреА, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕реЗрд╢рдирдореВрд╡реА () рдХреЗ рджреМрд░рд╛рди рд╕рддреНрд░ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рдерд╛
Assert.notNull (рдЯрд┐рдХрдЯрдлрд╝реЙрд░реНрдо.рдЧреЗрдЯрдореВрд╡реАрдЖрдИрдПрдирдбреА ());
// lastName рдХреЛ рднреБрдЧрддрд╛рди рдХреЗ рд╕рд╛рде рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬреЗрдПрд╕рдкреА, рд▓реЗрдХрд┐рди рдпрд╣ enterCustomerData () рдХреЗ рджреМрд░рд╛рди рд╕рддреНрд░ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рдерд╛
Assert.notNull (рдЯрд┐рдХрдЯрдлрд╝реЙрд░реНрдо.рдЧреЗрдЯ рд▓рд╛рд╕реНрдЯрдирд╛рдо ());
Assert.notNull (рдЯрд┐рдХрдЯрдлрд╝реЙрд░реНрдо.рдЧреЗрдЯрдХреНрд░реЗрдбрд┐рдЯрдХреЙрд░реНрдбрдирдВрдмрд░ ());
рд╡рд╛рдкрд╕реА "рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд: / рдмреБрдХрд┐рдВрдЧ / рдкреБрд╖реНрдЯрд┐";
}
@RequestMapping (рдорд╛рди = "/ рдкреБрд╖реНрдЯрд┐", рд╡рд┐рдзрд┐ = RequestMethod.GET)
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдкреБрд╖реНрдЯрд┐ (SessionStatus рд╕реНрдерд┐рддрд┐) {
status.setComplete (); // рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рддреНрд░
рд╡рд╛рдкрд╕реА "рдмреБрдХрд┐рдВрдЧ / рдкреБрд╖реНрдЯрд┐";
}
}
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛
рдЖрдк SessionAttributes рдХрдВрдЯреНрд░реЛрд▓рд░ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП SessionStatus рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдХреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
@RequestMapping (рдорд╛рди = "/ рдкреБрд╖реНрдЯрд┐", рд╡рд┐рдзрд┐ = RequestMethod.GET)
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдкреБрд╖реНрдЯрд┐ (SessionStatus рд╕реНрдерд┐рддрд┐) {
status.setComplete ();
рд╡рд╛рдкрд╕реА "рдмреБрдХрд┐рдВрдЧ / рдкреБрд╖реНрдЯрд┐";
}
Status.setComplete () рдХреЙрд▓ рдХрд░рдХреЗ; рдЖрдк рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рддреНрд░ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, HTTP рд╕рддреНрд░ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рд╕рддреНрд░рд╛рдВрдХ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред