SpringMVC

2,936 views 55 slides Apr 23, 2011
Slide 1
Slide 1 of 55
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55

About This Presentation

知っ得納得Webフレームワーク勉強会のスライド


Slide Content

4QSJOH.7$
-Weapons for the War on Java Complexity -

?~ ?p
ʲ
"¿$
*%
id:c9katayama
 t
ÒÜqþ©ßл瞷¿ÄÓåïÇï¬

Agenda
SpringMVCqx
,?$s???
???
žÊ”³ãïb;wµ» ç
??
b:=:
?q?

SpringMVCqx
Spring?awWeb???????
.7$Í»”ï›>;`z¤
7JFX +419.-94-55JMFT7FMPDJUZ'SFF.BSLFS
1%'+BTQFS3FQPSU›b;Dó
$POUSPMMFSæü‹ Fî

SpringMVCqx
Spring1.0,JDK1.4Žñpˆ^
hi`žÊ”³ãï›b;b” Ôùx
4QSJOHz+%,UžA
Apache License2.0
SpringSourcep‰C¤

SpringMVC
,Š$s“ʈ

SpringMVCDispatcher
Servlet 8FC
"QQMJDBUJPO
$POUFYU )BOEMFS.BQQJOH )BOEMFS"EBQUFS Handler view .PEFM"OE7JFX .PEFM 7JFX

SpringMVCDispatcher
Servlet 8FC
"QQMJDBUJPO
$POUFYU )BOEMFS.BQQJOH )BOEMFS"EBQUFS Handler view .PEFM"OE7JFX .PEFM 7JFX
DispatcherServlet
?????? Z?Z???????
 s8=?tSpringwƒÑ ç›¡ˆ
ˆzWebApplicationContext? s8=

SpringMVCDispatche
Servlet 8FC
"QQMJDBUJPO
$POUFYU )BOEMFS.BQQJOH )BOEMFS"EBQUFS Handler view .PEFM"OE7JFX .PEFM 7JFX
HandlerMapping
?????qz? rg??OHandlerwÚ¿Ðï¬
URLq????zURLq???????sr

SpringMVCDispatche
Servlet 8FC
"QQMJDBUJPO
$POUFYU )BOEMFS.BQQJOH )BOEMFS"EBQUFS Handler view .PEFM"OE7JFX .PEFM 7JFX
HandlerAdapter
Handlerw?????z| Zb??
Handlerw ?t?lo>

SpringMVCDispatcher
Servlet 8FC
"QQMJDBUJPO
$POUFYU )BOEMFS.BQQJOH )BOEMFS"EBQUFS Handler view .PEFM"OE7JFX .PEFM 7JFX
Handler
?????? rgb????StrutswAction???
\\xî÷`‡b

SpringMVCDispatche
Servlet 8FC
"QQMJDBUJPO
$POUFYU )BOEMFS.BQQJOH )BOEMFS"EBQUFS Handler view .PEFM"OE7JFX .PEFM 7JFX
ModelAndView
h?t Z?b?????Model?qh? Z? rg?View?

SpringMVCDispatche
Servlet 8FC
"QQMJDBUJPO
$POUFYU )BOEMFS.BQQJOH )BOEMFS"EBQUFS Handler view .PEFM"OE7JFX .PEFM 7JFX
view
JSPqTHTMLqT
\\???

SpringMVC
Ù ïÄ
? ??U? ?=^?oM?
??]qt;?^?o????U:K?
ƒÑ ç~žÊ”³ãïpÖ•8QDó

SpringMVC
þÂ]qw«åµ

SpringMVC)BOEMFS.BQQJOH )BOEMFS"EBQUFS

SpringMVCHandler 7JFX

Ù ïÄ
???UM
Y?z?X?T?sM
SpringMVC
‰Cµ» çt ah7‘s(b«åµUO
`oM”hŠzZ`o`‡O

SpringMVC
‰Cµ» ç
ƒÑ ç(b«åµwµ» ç
žÊ”³ãïb;wµ» ç
Spring2.5??s?z???????b;w
µ» çUSbbŠ

SpringMVC
\•iZ!^Q‘O
žÊ”³ãïb;wµ» ç

SpringMVC)BOEMFS.BQQJOH
DefaultAnnotationHandlerMapping
SpringtJå^•hHandlerw¤T’zRequestMappingžÊ
”³ãˆ “zURLqù•b”Handler›sb

SpringMVC)BOEMFS"EBQUFS
AnnotationMethodHandlerAdapter
HandlerMappingp ÚEtKlhHandlerwRequestMappingž
Ê”³ãïT’z͵~ÍåÝ”»~HTTPݹ¿Å›¡ˆ
“z櫤µÄw ÚEq°•b”ݹ¿Å›_mZoz|
Zb

SpringMVC
~DefaultAnnotationHandlerMapping
~AnnotationMethodHandlerAdapter
Mc•‹ÃÑ¥çÄpDispatcherServlett
Jå^•oM”{
žÊ”³ãï›b;b” Ôùx׈$t
\•’U–;^•”hŠz›t™Ýb”
žAxsM

SpringMVC7JFX Handler
AnnotationMethodHandlerAdapterUHandlerwí“‹›it
&~t rg`oX•”hŠz{q‡ch•”
POJOt0`ožÊ”³ãï›Ç)`o^R
\\iZ®Q•yMVCÚµ»”‚

SpringMVC
žÊ”³ãï›–lh
Handler

SpringMVC
@Controller
@RequestMapping("/login.do")
public class LoginController {
@RequestMapping(method = RequestMethod.GET)
public String setup(Model model) {
model.addAttribute(new LoginForm());
return "login.jsp";
}

@RequestMapping(method = RequestMethod.POST)
public String doLogin(LoginForm loginForm, Errors errors) {
if (errors.hasErrors()) {
return "login.jsp";
}else{
return “redirect:menu.do”;
}
}
}

SpringMVC
@Controller
4QSJOHt)BOEMFS«åµ›Jåb”hŠwžÊ
?????
)BOEMFS«åµtÇ)

SpringMVC
package sample.springmvc.controller
@Controller
public class LoginController {
DPOUFYUDPNQPOFOUTDBO
CBTFQBDLBHFzTBNQMFTQSJOHNWDDPOUSPMMFSz
¦Í¿­”´Ž<›µ©ßï‚

SpringMVC
@RequestMapping
櫤µÄqzf•› rgb”)BOEMFS›{‹
nZ????????
͵z櫤µÄÍåÝ”»z)551ݹ¿Å›
b;`o{‹nZ
«åµqݹ¿ÅtÇ)pV”

SpringMVC
@Controller
@RequestMapping("/login.do")
public class LoginController {
@RequestMapping(method = RequestMethod.GET)
public String setup(Model model) {
model.addAttribute(new LoginForm());
return "login.jsp";
}
@RequestMapping(params=”character=EEDA”)
public String character() {
return “character.jsp”
}

SpringMVC
@Controlleq@RequestMapping^QK•yz櫤
µÄt0`o rg›æO«åµ—ݹ¿Å›ÈnZ
pV”{

SpringMVC
Handlerwݹ¿Å

SpringMVC
?????
?p‹MM¢!3FRVFTU.BQQJOHpÈn
Z?h??

SpringMVC
?????:
+&&pb; ZR”¦Ò´£«Ä
.PEFM
4FTTJPO4UBUVT
!3FRVFTU1BSBN
10+0 !.PEFM"UUSJCVUF
&SSPST
žAsú›¾:pt

SpringMVC
+&&pb; ZR”¦Ò´£«Ä
)UUQ4FSWMFU3FRVFTU3FTQPOTF
)UUQ4FTTJPO
3FBEFS*OQVU4USFBN
8SJUFS0VUQVU4USFBN
1SJODJQBM
-PDBMF

SpringMVC
Model
7JFXtIbÔ»›¨òb”¦Ò´£«Ä
TFU"UUSJCVUF p‹›·¿Ä
TFU"UUSJCVUF WBMVFw Ôùz‰ç$t©”U
?^??
@RequestMapping(method = RequestMethod.GET)
public String setup(Model model) {
model.addAttribute(new LoginForm());
return "login.jsp";
}
?loginForm?U
???ts?

SpringMVC
4FTTJPO4UBUVT
! SessionAttributesq0tsloˆ^
4FTTJPO4UBUVTTFU$PNQMFUF ›z| Zb
qz!4FTTTJPO"UUSJCVUFp·¿³ãït¨ò`
h??????U?????T?_ ?^??
_ †0 ÅxzTFU$PNQMFUF ›zœi«åµ
UÇ)`oM”!4FTTTJPO"UUSJCVUFTw‹

SpringMVC
@SessionAttributes
.PEFMtÖloM”¦Ò´£«ÄwOjz·¿³ã
ït¨ò`oSVhM¦Ò´£«Äw©”›¦

SpringMVC
@Controller
@RequestMapping("/login.do")
@SessionAttributes(“loginForm”)
public class LoginController {
@RequestMapping(method = RequestMethod.GET)
public String setup(Model model) {
model.addAttribute(“loginForm”,new LoginForm());
return "login.jsp";
}
®loginForm¯›©”q`
o·¿³ãïtÖ”

SpringMVC
@Controller
@RequestMapping("/login.do")
@SessionAttributes(“loginForm”)
public class LoginController {
@RequestMapping(method = RequestMethod.POST)
public String doEnd(SessionStatus status) {
status.setComplete();
return "login.jsp";
}
®loginForm¯U©”‹
w¦Ò´£«ÄU·¿³ãï
T’_ †^•”

SpringMVC
!3FRVFTU1BSBN
??????????? ?b?h?w??
?????
ÃÑ¥çÄpSFRVJSFE{ÍåÝ”»U櫤µÄ
tsM ??z??UC\

SpringMVC
/sample/login.do?id=hoge
@RequestMapping(method = RequestMethod.POST)
public String doLogin(@RequestParam(“id”) String id) {
//idt”hoge”UÖ”
}

SpringMVC
10+0 !.PEFM"UUSJCVUF
10+0›¦b”qz櫤µÄÍåÝ”»U
Ì ïÅ^•”
!.PEFM"UUSJCVUF lOBNFz›Ç)b”
qzOBNF›©”t`o.PEFMt10+0UÖ”{
¢Ç)`sM Ôùx‰ç$sʲp.PEFMt
???

SpringMVC
@RequestMapping(method = RequestMethod.POST)
public String doLogin(LoginForm loginForm, Errors errors) {
}
@RequestMapping(method = RequestMethod.POST)
public String doLogin(
@ModelAttribute(“loginForm”)LoginForm loginForm,
Errors errors) {
}

SpringMVC
&SSPST
櫤µÄÍåÝ”»›10+0t!õb”Mz
?srUIVh ??tfw????
?b?h?w???

SpringMVC
@RequestMapping(method = RequestMethod.POST)
public String doLogin(LoginForm loginForm, Errors errors) {
if (errors.hasErrors()) {
return "login.jsp";
}else{
return “redirect:menu.do”;
}
}

SpringMVC
???????
è ×x4USJOH
.PEFM"OE7JFX›&bÄ‹Dó
WPJEw Ôùz7JFX3FTPMWFSqMO«åµU
櫤µÄÍåÝ”»T’7JFX›Êˆqo”
¢MPHJOEPMPHJOKTQw‘Os!õ£

SpringMVC
Ù ïÄ
MVs“¶;ó›–OwxÉ`M
‡cx!3FRVFTU.BQQJOH+&&w«åµp
4FTTJPO4UBUVTq4FTTJPO"UUSJCVUFx–˜
sXo‹0,¢è ×w)UUQ4FTTJPO›–O£
??$s?7??x?Z?
?x???????t?dozf?
??w???????x?????????
pæO

SpringMVC
view

SpringMVC
??????
4USVUTéw'PSN»¬
?????

SpringMVC
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<form:form modelAttribute="loginForm">
ID: <form:errors path="id"/>
<form:input path="id" size="30" maxlength="30"/>

PASSWORD: <form:errors path="password"/>
<form:password path="password" size="10" maxlength="10"/>

<input type="submit" value="login"/>

</form:form>

SpringMVC
ÃÞ

SpringMVC
b:
MXmTžÊ”³ãï›®Q•yzbYt63-
qÚ¿Ðï¬ ZR”
 JÈsÚ¿Ðï¬
櫤µÄÍåÝ”»T’10+0w!õ›z
???????U?loX??
)BOEMFSU¯ïÂÆg^•oM”hŠz%*U
D?
§µ»Ú ¶U0›

SpringMVC
=:
.PEFM4FTTJPO"UUSJCVUFTsrw“æU˜T
“c’M¢¦Ò´£«Äwå Ñ± «çU_Q
tXM?
$P$$t rg^•”æüU˜“qK”
Äåﲫ³ãïx±Ù”Ä`oMsM
¢4QSJOH8FC'MPX£
¯ïÂÆw¬R¶U4QSJOH`TsM

SpringMVC
?q?
žÊ”³ãïµ» çs’ƒwG \‹
—sXz 0t–MŠ’•”
»¬x4USVUTéswpzsaˆbM
q“KQcyxaŠoˆ‘Oy.7$