рд╣реЗрд▓реЛ, рд╣реИрдмрд░ред
рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд╣реИред рдореИрдВ рдЖрдкрд╕реЗ рдкреВрдЫрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдереМрдбрд╝реЗ рд╕реЗ рдЬреЛрд░ рд╕реЗ рдордд рдорд╛рд░реЛред
рдЖрдЬ, рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рдореЗрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╢реБрд░реВ рд╣реЛрдЧреАред
рдореИрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдкреЗрдЪреАрджрдЧрд┐рдпреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдБрдЧрд╛, рдпрд╣рд╛рдБ рд╣реИрдмреЗ рдкрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд▓реЗрдЦ рд╣реИрдВред рдореБрдЭреЗ рдЕрднреНрдпрд╛рд╕ рдкрд╕рдВрдж рд╣реИред
рдлрд┐рд░ рднреА, рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЖрдк рдПрдХреНрд╕рдПрдордПрд▓-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рднреА рдЖрдкрдХреЛ рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрддрд╛рдиреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рд╣рдо рдЖрдЬ рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗред
рдЖрдЬ рд╣рдо рдПрдХ рд╕рд░рд▓ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ рджреЛ рдирдВрдмрд░реЛрдВ рдХреА рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬреЗрдЧрд╛ред
рд╣рдо IDE Intellij IDEA 12 рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ (рдлрд╝рд╛рдЗрд▓-рдиреНрдпреВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ)ред
"рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░" рдЪреБрдиреЗрдВ - рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдорд╡реАрд╕реАред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдирд╛рдо (рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдо) рджреЗрдВ рдФрд░ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЖрдк рдПрдХ рдФрд░ рдЖрдзрд╛рд░ рдкреИрдХреЗрдЬ (рдмреЗрд╕ рдкреИрдХреЗрдЬ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ "com.springapp.controllers" рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк JDK (рдкреНрд░реЛрдЬреЗрдХреНрдЯ SDK) рдФрд░ рд╕рд░реНрд╡рд░ (рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░) рдХреЗ рд▓рд┐рдП рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдЬрд╛рд╡рд╛ рдФрд░ рдЧреНрд▓рд╛рд╕рдлрд┐рд╢ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдВрд░рдЪрдирд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдпрд╣ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ xml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рдХрд╛рд▓реЗрдВред
Mvc-dispatcher-servlet.xml рдлрд╝рд╛рдЗрд▓ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдлрд╝реЛрд▓реНрдбрд░ рд╣рдЯрд╛рдПрдВ (рдЗрд╕рдореЗрдВ рдкрд░реАрдХреНрд╖рдг mvc-dispatcher-servlet.xml рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред
рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдореИрдВ рдЗрд╕ рдХрджрдо рдкрд░ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреА рдПрдХ рд╕реНрдХреНрд░реАрди рджреЗ рджреВрдБрдЧрд╛ред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЕрдм рдЖрдкрдХреЛ рдПрдХ рд╣реА рдбрд┐рд╕реНрдкреИрдЪрд░-рд╕рд░реНрд╡рд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдирд┐рдпрдорд┐рдд рдЬрд╛рд╡рд╛ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣рдореЗрд╢рд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрд░рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХрдИ рд▓реЛрдЧ рдореЗрд░рд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдирдпрд╛ "рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди" рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдВ рдЬреЛ рдкреВрд░реЗ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ "ALT-INSERT" рджрдмрд╛рдПрдВред рдкреИрдХреЗрдЬ рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВ (com.springapp.config) рдФрд░ рдареАрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдкреИрдХреЗрдЬ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред рдЗрд╕рдореЗрдВ рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдЬреЛрдбрд╝реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдм рдХреБрдЫ ALT-INSERT рднреА рд╣реИ рдФрд░ "рдХреНрд▓рд╛рд╕" рдЪреБрдиреЗрдВред рдЪрд▓реЛ рдЗрд╕реЗ MvcConfig рдХрд╣рддреЗ рд╣реИрдВред
рдирд┐рд░реНрдорд┐рдд рд╡рд░реНрдЧ рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
package com.springapp.config; public class MvcConfig { }
рдЪрд▓реЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рддреИрдпрд╛рд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрдХреНрд╖рд╛ рдХреЛ рддреБрд░рдВрдд рд▓рд╛рдКрдВрдЧрд╛ рдФрд░ рдиреАрдЪреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╡рд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред
package com.springapp.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; @Configuration @ComponentScan(basePackages="com.springapp") @EnableWebMvc public class MvcConfig extends WebMvcConfigurerAdapter { @Bean public ViewResolver getViewResolver(){ InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/pages/"); resolver.setSuffix(".jsp"); return resolver; } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**").addResourceLocations("/resources/"); } }
рдЪрд▓рд┐рдП рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
@Configuration
- рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡рд░реНрдЧ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ, рдЕрд░реНрдерд╛рдд рдЗрд╕рдореЗрдВ рд╕реЗрдо рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИред
@ComponentScan
- рд╡рд╣ рдкреИрдХреЗрдЬ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢ рдбрд┐рдмреНрдмреЗ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред
@EnableWebMvc
- рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрдЧ рд╕реНрдкреНрд░рд┐рдВрдЧ MVC рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИред
@Bean
- рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдиреЛрдЯреЗрдЯ рд╡рд┐рдзрд┐ рдПрдХ рд╕реЗрдо рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдиреЗ рдЬрд╛рд╡рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рд╡реЗ рдХрдо рд╕реЗ рдХрдо
@Override
рдПрдиреЛрдЯреЗрд╢рди рдЬрд╛рдирддреЗ рд╣реИрдВред
рдЕрдм рд╕реНрд╡рдпрдВ рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗред
GetViewResolver () рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреГрд╖реНрда рджрд░реНрд╢рдХ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд┐рд╕рдореЗрдВ рдкреГрд╖реНрда рдореЗрдВ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдПрдХ рдкреНрд░рддреНрдпрдп рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред
AddResourceHandlers (ResourceHandlerRegistry рд░рдЬрд┐рд╕реНрдЯреНрд░реА) рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдо рдЙрди рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд╕реНрдерд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рд╕реНрдЯрд╛рдЗрд▓ рд╢реАрдЯ, рдФрд░ рдЬрд╛рд╡рд╛-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ, рдЪрд┐рддреНрд░ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИред
рдЕрдм рдЖрдкрдХреЛ рд╡реЗрдм рдХрдВрдЯреЗрдирд░ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдбрд┐рд╕реНрдкреИрдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, web.xml рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рд╡рд┐рдЪрд╛рд░ рдиреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдРрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛрдб рдмрдирд╛рдПред
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Spring MVC Application</display-name> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
рд╣рдореЗрдВ рдЗрд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Spring MVC</display-name> <context-param> <param-name>contextClass</param-name><param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value></context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>SpringDispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextClass</param-name><param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value></init-param> <init-param> <param-name>contextConfigLocation</param-name><param-value>com.springapp.config</param-value></init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>SpringDispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <session-config> <session-timeout>30</session-timeout> </session-config> </web-app>
рдореИрдВрдиреЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рдореИрдВ рдХреЗрд╡рд▓ рдЗрддрдирд╛ рд╣реА рдХрд╣реВрдВрдЧрд╛ - рд╣рдо рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрджрд░реНрдн рдФрд░ рдкреНрд░реЗрд╖рдг рдХреЛ рдПрдиреЛрдЯреЗрд╢рди (рд╕рдВрджрд░реНрднрдХреНрд▓рд╛рд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдЗрд╕рдХреЗ org.springframework.web.context.supportред рд╣рдо рдпрд╣ рднреА рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдкреИрдХреЗрдЬ рдХреЛ рджреЗрдЦрдирд╛ рд╣реИ (ReferenceConfigLocation рдкреИрд░рд╛рдореАрдЯрд░)ред
рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕реНрдкреНрд░рд┐рдВрдЧ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдПрдбреНрд░реЗрд╕ рдЯреНрд░рд╛рдВрд╕рд▓реЗрд╢рди (рдЬреЛ рд╣рдо рдмреНрд░рд╛рдЙрдЬрд░ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ) рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрдиреНрдиреЛрдВ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, hello.spsp)ред
рдЪреВрдВрдХрд┐ рдЖрдЗрдбрд┐рдпрд╛ рдиреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореВрд▓ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдмрд╕, рдореИрдВ рдЙрд╕рдХрд╛ рдХреЛрдб рджреВрдВрдЧрд╛ рдФрд░ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред
package com.springapp.controllers; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @Controller @RequestMapping("/") public class HelloController { @RequestMapping(method = RequestMethod.GET) public String printWelcome(ModelMap model) { model.addAttribute("message", "Hello world!"); return "hello"; } }
рдЖрдЗрдП рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
@Controller
- рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рд╣реИред рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ
@RequestMapping("/")
- рдЗрд╕ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдЧреБрдВрдЬрд╛рдЗрд╢ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдпрджрд┐ рдпрд╣ рдПрдиреЛрдЯреЗрд╢рди рд╡рд░реНрдЧ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ) рдпрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрд╡рд╛рджрд┐рдд рдкрддрд╛ (рдпрджрд┐ рдпрд╣ рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ)ред рдЖрдк рдпрд╣ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдпрд╛ рд╡рд╣ рдкрддрд╛ рдХрд┐рд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрд░реЛрдз рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд╡рд┐рдзрд┐ рдкреИрд░рд╛рдореАрдЯрд░)ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдирд┐рдпрдВрддреНрд░рдХ рд╕рднреА рдкрддреЗ (рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╣реИ) рдХреЛ рджреЗрдЦреЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдкреГрд╖реНрда рдкрд░ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ 2 рдкрддреЗ рд╣реИрдВ mydomain.com/info, mydomain.com/aboutред рдпрджрд┐ рд╣рдо "/" - "/ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ" рдХреЗ рдмрдЬрд╛рдп RequestMapping рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдпрдВрддреНрд░рдХ рдХрднреА рднреА mydomain.com/info рдкрддреЗ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдмрд╕ рдЗрд╕реЗ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗред
PrintWelcome () рд╡рд┐рдзрд┐ рдХреНрдпрд╛ рдХрд░рддреА рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рдкреГрд╖реНрда рдкрд░ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рд╕рдВрджреЗрд╢ рднреЗрдЬрддреА рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкреГрд╖реНрда рдХреЗ рдирд╛рдо рдХреЛ рд╣реА рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИред рдЦреИрд░, рджрд░реНрд╢рдХ рдХреА рдорджрдж рд╕реЗ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдбрд┐рд╕реНрдкреИрдЪрд░ рдХреНрд▓рд╛рд╕ (MvcConfig) рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕ рдирд╛рдо рдХреЛ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдкреНрд░рддреНрдпрдп рдЬреЛрдбрд╝рдХрд░ рдкреГрд╖реНрда рдХреЗ рдкреВрд░реНрдг рдкрде рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣ рдХреЗрд╡рд▓ hello.jsp рдкреГрд╖реНрда рдХрд╛ рдХреЗрд╡рд▓ рдХреЛрдб рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред
<html> <body> <h1>${message}</h1> </body> </html>
рджрд░рдЕрд╕рд▓, рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рд░рдВрдн рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╣рдо рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЖрд╡реЗрджрди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рд╡реЛрдЗрд▓рд╛, рд╣рдо рд╣рд░ рдХрд┐рд╕реА рдХреЗ рдкреНрд░рд┐рдп "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдПрдХ рдмрд╛рд░ рдЬрдм рд╕рдм рдХреБрдЫ рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рдо рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рджреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдпреЛрдЧ рдХрд╛ рдПрдХ рдЧрд▓рдд рдЕрдиреБрдорд╛рди рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдПрдБ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╛рд░реНрдо рдЬреЛрдбрд╝рдХрд░ рдЕрдкрдиреЗ jsp рдкреГрд╖реНрда рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗред
<html> <body> <h1>${message}</h1> <form method="post"> <input name="value1" type="text"/> + <input name="value2" type="text"/> <input type="submit"/> </form> <h3>Result: ${result}</h3> </body> </html>
рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рд╣рдордиреЗ рд╕рдВрдЦреНрдпрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗ, рдПрдХ рд╕рдмрдорд┐рдЯ рдмрдЯрди рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢ред рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рдкреГрд╖реНрда рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВред
package com.springapp.controllers; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @Controller @RequestMapping("/") public class HelloController { @RequestMapping(method = RequestMethod.GET) public String printWelcome(ModelMap model) { model.addAttribute("message", "Hello world!"); return "hello"; } @RequestMapping(method = RequestMethod.POST) public String calcSum(Model m, @RequestParam(value = "value1") Double value1, @RequestParam(value = "value2") Double value2 ){ m.addAttribute("result", (value1+value2)); return "hello"; } }
рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ,
@RequestMapping
рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП,
@RequestMapping
POST рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░
@RequestParam
рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
@RequestParam
рдлреЙрд░реНрдо рдлрд╝реАрд▓реНрдб (value1, value2) рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ (рдЖрдЗрдбрд┐рдпрд╛ 4 рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реЗрдЧрд╛, "Redeploy" рдЪреБрдиреЗрдВ), рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдлреЙрд░реНрдо рд╣реИред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЦреИрд░, рд╣рдо рд░рд╛рд╢рд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдм рд╣реИ
рдЕрдЧрд▓реА рдмрд╛рд░ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ JPA рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред
рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрджреНрдзреГрдд рдХреА рдЧрдИ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдпрд╛ рд░рд╛рдп рд╣реИ рдФрд░ рдПрдХ рдорд╛рдирдХ рдпрд╛ рдорд╛рдирдХ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдореИрдВ рддрд░реАрдХреЗ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХреИрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рдореБрдЭреЗ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ "рд▓реЗрдЦ-рдирд┐рд░реНрдорд╛рдг" рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
рд╕рднреА рдХреЛ рдЕрд▓рд╡рд┐рджрд╛, рдпрд╛ рдмрд▓реНрдХрд┐, рдмрд╛рдж рдореЗрдВ рдорд┐рд▓рддреЗ рд╣реИрдВред