Title: Java Web Programming
1Java Web Programming
2Hello World! Servlet???
- WEB-INF?classes????? HelloServlet.java??? ????
??? - HelloServlet.java
- import java.io. import javax.servlet.
import javax.servlet.http. public class HelloS
ervlet extends HttpServlet public void doGet(
HttpServletRequest request, HttpServletResponse re
sponse) throws ServletException, IOExceptio
n PrintWriter out response.getWriter()
out.println(lthtmlgtltbodygt)
out.println(lth1gt Hello World lt/h1gt)
out.println(lt/bodygtlt/htmlgt) - ?? http//localhost8080/MySample/servlet/HelloS
ervlet
3??????
- ???? Servlet?????? ???? GenericServlet? ??? ?? ??
Http????? ?? ??? HttpServlet???? ??? ? ?? ????
????? ??
4???? ??
- ???? ?? ??
- ?????? ??
- ??? Handler 8080???? ?? ??
- ??? ?????? ?? ??? ??
- ?? ???? ??? ??? ??? ?? ??? DB??, ??
- ?? ??? ?? ???? ???? ??? ????.
5???? ????
- GenericServlet? ????? ?????? ?????? ? ? ???
?????. ??? ??? GenericServlet? Http????? ?? ??
???? ?? ?? HttpServlet
6GenericServlet abstract ???
- GenericServlet?, Servlet? ?? ??? ?? ????, ???
???? ?? ? ???? ?? HttpServlet? ? GenericServlet?
???? ?????. ? ??????? ?? ??? Http????? ???? ??
???, ?? ??? ???? HttpServlet? ???? ???? ??????
?????.
7GenericServlet? ?
- GenericServletTest.java
- import java.io. import java.util.Enumeration
import javax.servlet. public class GenericServ
letTest extends GenericServlet
public void service(ServletRequest req, Servlet
Response res) thro ws ServletException, IOExcepti
on String message req.getParameter("messa
ge") PrintWriter outres.getWriter()
out.println("lthtmlgtltbodygt")
out.println("lth1gt" message "lt/h1gt")
out.println("lt/bodygtlt/htmlgt")
8Servlet ?????
- ??? ????? init, service, destroy ??? ???? ???
???, ???, ??? ??? ???. - ??? ? ? ?? init???? ??
- ?????? ??? ?? ??? service???? ????? ??
- service???? ?????? ????? ?? Get???? doGet????
Post???? doPost? ?? - ? ? ???? Servlet?????? ?? ???? ????? ???? ?? ???
??? ??????. - ??? ???? ?? ?? ?? ?? ????? ???? ?? ?????? ????
destroy() - destroy()???? ???? ??? ???? ??? ???? ??
- init? destroy? ? ?? ???? ?? ?????? ??? ??
service???? ??? ?? ? ?? ??
9(No Transcript)
10ServletConfig ?????
- ServletConfig ?????? ??? ????? ???? ????? ??? ??
???? ??? ???? ??? ?? - ???? ???? ??? ??? ??? ???? ServletContext, ??? ??
??? ???? ??? ???? ?? ??.
11HttpServlet abstract ???
- HttpServlet? ????? ? ???????? ? ??? ??? ????, ?
??? ?? ? ??????? ??? ?? ??? ?? - doGet? doPost? ????? ??
- ????? ?? ??? HttpServlet???? service??? ?? ??
- service???? ????? ?????? ????? ??? doGet,
doPost???? ???? ???
12- ?????? ????? ?? service???? ???? ???
- doGet ??? ???? HTTP GET ??? ???? ??? ??????.
- doPost ??? ???? HTTP POST ??? ???? ??? ??????.
- doPut ??? ???? HTTP PUT ??? ???? ??? ??????.
- doDelete ??? ???? HTTP DELETE ??? ???? ???
??????
13HttpServlet doGet
- HelloDoGet.java
- import java.io. import javax.servlet.
import javax.servlet.http. public class Hello
DoGet extends HttpServlet public void doGet(
HttpServletRequest request, HttpServletResponse re
sponse) throws ServletException, IOException
PrintWriter out response.getWriter()
String name request.getParameter("name")
out.println("lthtmlgtltbodygt")
out.println("lth1gt Hello doGet Testlt/h1gt")
if(name ! null) out.println("lth2gt"n
ame"lt/h2gt") else out.println("
lth2gtnothing parameterlt/h2gt")
out.println("lt/bodygtlt/htmlgt")
14HttpServlet doPost
- HelloDoPost.java
- import java.io. import javax.servlet.
import javax.servlet.http. public class Hello
DoPost extends HttpServlet public void doPos
t(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOExcepti
on PrintWriter out response.getWriter()
String name request.getParameter("name")
out.println("lthtmlgtltbodygt")
out.println("lth1gt Hello doPost Testlt/h1gt")
if(name ! null) out.println("lth2gt"n
ame"lt/h2gt") else out.println("
lth2gtnothing parameterlt/h2gt")
out.println("lt/bodygtlt/htmlgt")
15- HelloDoPost.html
- ltHTMLgtltHEADgtltTITLEgtdoPost ???lt/TITLEgtlt/HEADgt
ltBODYgt lth1gtdoPost ???lt/h1gt ltform action"/MySam
ple/servlet/HelloDoPost" method"Post"gt
ltinput type"text" name"name"gt
ltinput type"submit" name"submit1"gt lt/formgt
lt/BODYgt lt/HTMLgt
16??? ??? ??
- protected void service(HttpServletRequest req,
HttpServletResponse resp) - protected void doGet(HttpServletRequest req,
HttpServletResponse resp) - protected void doPost(HttpServletRequest req,
HttpServletResponse resp)
17HttpServletRequest, HttpServletResponse? ??
- HttpServletRequest
- ?????? ?? ?? ?? ??
- request header
- form data, query parameter
- InputStream(???????? ?????? ???)
- ?? ????? ???? ? ?? ??, ??, path ...
-
- HttpServletResponse
- ??????? ???? ?? ?? ??
- response header
- OutputStream (??????? ???? ???)
- ?? ??
- ?? ??
18get??? post?? ??? ????
- GetPostTest.html
- lthtmlgtltheadgtlttitlegtGetPostTestlt/titlegtlt/headgtltbody
gt - ltform action"/MySample/servlet/chap4.GetPostResul
t?age20" method"post"gt - ltinput type"text" name"name" size"10"gtltbrgt
- ltinput type"submit"gtltinput type"reset"gt
- lt/formgtlt/bodygtlt/htmlgt
19- GetPostResult.java
- package chap4
- import java.io. import javax.servlet.
import javax.servlet.http. public class GetPos
tResult extends HttpServlet public void doPost
(HttpServletRequest req, HttpServletResponse res)
- throws ServletException, IOException
res.setContentType("text/htmlcharseteuc-kr"
) PrintWriter poutres.getWriter()
String namereq.getParameter("name")
String agereq.getParameter("age")
pout.println("lthtmlgtltheadgt")
pout.println("lttitlegtGetPostResultlt/titlegt")
pout.println("lt/headgtltbodygt")
pout.println("Name "name)
pout.println("ltbrgtAge "age)
pout.println("lt/bodygtlt/htmlgt")
20HttpServletRequest?? ??? ?? ? ????
- ParaNamesValueTest.html
- ltHTMLgtltBODYgt lth1gt ??????? lt/h1gt
ltform action"/MySample/servlet/chap4.ParamsTest"
method"post"gt 1.????? ltinput typetext name"
tf1"gtltbrgtltbrgt 2.?? ltinput typehidden name"h1"
value"???"gtltbrgtltbrgt 3.Radio?? ???ltbrgt
ltinput typeradio name"r1" value"JSP" checkedgtJ
SPltbrgt ltinput typeradio name"r1" value"??"gt?
?ltbrgt ltinput typeradio name"r1" value"??????
"gt??????ltbrgtltbrgt 4.CheckBox?? ???ltbrgt
ltinput typeCheckBox name"r2" value"??"gt??ltbrgt
ltinput typeCheckBox name"r2" value"??"gt??ltbr
gt ltinput typeCheckBox name"r2" value"??" che
ckedgt??ltbrgtltbrgt 5.select?????ltbrgt
ltselect name"s1"gt ltoption selectedgt???lt/opt
iongt ltoptiongt???lt/optiongt
ltoptiongt???lt/optiongt lt/selectgtltbrgtltbrgt
21- 6.select?? Multipleltbrgt ltselect name"s2" Mult
iplegt ltoption selectedgtCGIlt/optiongt
ltoptiongtJSPlt/optiongt ltoptiongtASPlt/optiongt
ltoptiongtPerllt/optiongt lt/selectgtltbrgtltbrgt
7.TextArea???ltbrgt lttextarea name"ta1"gtlt/textare
agt ltbrgt ltinput typesubmit value"??"gt
lt/formgt lt/BODYgtlt/HTMLgt
22- ParamsTest.java
- package chap4 import java.io.
import javax.servlet. import javax.servlet.h
ttp. import org.jabook.util.
public class ParamsTest extends HttpServlet
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
response.setContentType("text/htmlcharseteu
c-kr") PrintWriter out response.getWriter
() String tf1 request.getParameter("tf1"
) String h1 request.getParameter("h1")
String r1 request.getParameter("r1")
String r2 request.getParameterValues("r2"
) String s1 request.getParameter("s1")
String s2 request.getParameterValues("s2"
) String ta1 request.getParameter("ta1")
out.println("1.Text"encodeString(tf1)"ltbr
gt") out.println("2.Hidden"encodeString(h1)
"ltbrgt") out.println("3.Radio"encodeString
(r1)"ltbrgt") out.println("4CheckBox")
for(int i0 iltr2.length i)
out.println(encodeString(r2i)"nbspnbs
p") out.println("ltbrgt5.Select" encodeStr
ing(s1) "ltbrgt") out.println("6Select Mult
ipul")
23- for(int i0 ilts2.length i) out.println(
encodeStrint(s2i) "nbspnbsp")
out.println("ltbrgt7.TextArea" encodeString(
ta1) "ltbrgt") public String encodeString(
String str) return HangulEncoder.toKSC5601(s
tr)
24HttpServletRequest getParameterNames()
- RequestParameterNames.java
- package chap4 import java.io.
import java.util. import javax.servlet.
import javax.servlet.http.
import org.jabook.util. public class RequestPa
rameterNames extends HttpServlet
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
response.setContentType("text/htmlcharsetKS
C5601") PrintWriter out response.getWrit
er() out.println("lthtmlgtltbodygt")
out.println("lth1gt?????? ?? ????? ??lt/h1gt")
Enumeration enum request.getParameterNames
()
25- while(enum.hasMoreElements())
String name (String)enum.nextElement()
out.println("ltbgt"name"lt/bgt" - HangulEncoder.toKSC5601(request.getParameter(name
))"ltbrgt") out.println("lt/bodygtlt/
htmlgt") out.close()
26HttpServletResponse ?? ??? ???
- ResponseRedirect.java
- package chap4
- import java.io. import java.util.
import javax.servlet. import javax.servlet.h
ttp. public class ReponseRedirect extends Htt
pServlet - public void doGet(HttpServletRequest request, Ht
tpServletResponse response) throws ServletE
xception, IOException - response.setContentType("text/htmlcharseteu
c-kr") PrintWriter out response.getWriter(
) String gopage request.getParameter("go
page") if(gopage!null gopage.equals("yah
oo")) response.sendRedirect("http//www.ya
hoo.co.kr") else out.println("lthtm
lgtltbodygt") out.println("lth1gtResponse? send
Redirectlt/h1gt") out.println("?????? ???? ?
???ltbrgt") out.println("URL? ?gopageyahoo?
????") out.println("lt/bodygtlt/htmlgt")
out.close() -
27??1 ??? ??2 ??
??1 ??
? ????
1. ??
- ???? ??? JSP?? ??
- ?? ??? UI ??? ??
- ????? ??? JSP? ??
JSP
???? ???
2. ??
?
?
?
??2 ??
? ????
1. ??
- ????? ??? ??
- JSP?? UI? ??
- ????? ??? ????? ??
???
?????
???
?
?
?
JSP
2. ??
28Model-View-Controller ??
MVC ??? ??
2. ???? ????
1. ??
???
???? (Controller)
?? (Model)
3. ???
4. ??
? (View)
- ?? - ???? ???? ?? ??? ????.
- ? - ???? ??? ?? ?????? ? (?, ???? ?? ?
?? ??)? ????. - ???? - ???? ?? ? ?? ??? ????
MVC ??? ??
- ???? ??? ???? ??? ?? ??? ???? ?? ???? ??.
- ??????? ?? ??? ???? ?? ??? ????? ????.
29MVC ??? ??2 ??? ??
- ???? ???
- ?? EJB ?? ???? ?? ???, ???
- ? JSP
- ??? ?????, ???? ?? ????
30MVC ???? ???? ?? ??
? ????
- ??1 - ? ????? ??? HTTP ??? ???. ???? doGet()
???? doPost() ???? ????. - ??2 - ? ????? ?? ??? ???? ? ????. ?? ??, ??? ???
???? ?, ? ??? ???? ? ????. - ??3 - ??? ???? ??? ??? ????.
- ??4 - ????? ???? ???? ??? ??? ?, request?
session? setAttribute() ???? ???? ???? ??? ????.
??? ??? ???? ?? JSP?? ????. - ??5 - ? ????? ??? JSP? ??? ?, ?? JSP? ?????. ???
??? ?????? ??? ??.
???
1. HTTP ?? ??
HTTP ??
2. ?????? ???? ??? ??
3. ??? ??????? ???? ?? ??
??
4. ??? request ?? session? ??
5. ??? ? ?? ?, ?? ???(?? ?????)
HTTP ??
JSP
31MVC ????? ??? ??
??? ??? ?? ??
? ????
???
??
HTTP ??
1. ??????? ?? ??
2. ???? ?? ??
3. ?? ?? ????? ??
JSP
HTTP ??
32???? ???? ?? ??
Code
public class ControllerServlet extends
HttpServlet public void doGet(HttpServletRe
quest request, HttpServletResponse response)
throws IOException, ServletException
processRequest(request, response)
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws
IOException, ServletException
processRequest(request, response)
private void processRequest(HttpServlet request,
HttpServletResponse response) throws
IOException, ServletException // 2??,
?? ?? // request ????? ???? ??? ???? ??
... // 3??, ??? ???? ???
??? ????. // ???? ??? ?? ??? ??
// 4??, request? session? ?? ??? ??
request.setAttribute("result", resultObject) //
?? ??? ?? ... // 5??,
RequestDispatcher? ???? ??? ?? ???
RequestDispatcher dispatcher
request.getRequestDispatcher("/view.jsp")
dispatcher.forward(request, response)
1??, ???? GET/POST ???? ???? ?????? ??? ???
???? processRequest()? ????.
33??? ???? ??? ??
Example
private void processRequest(HttpServletRequest
request, HttpServletResponse response) throws
IOException, ServletException // 2??,
?? ?? // request ????? ???? ??? ???? ??
String type request.getParameter("type")
// 3??, ??? ??? ????. //
???? ??? ?? ??? ?? Object resultObject
null if (type null
type.equals("greeting"))
resultObject "?????." else if
(type.equals("date")) resultObject
new java.util.Date() else
resultObject "Invalid Type"
// 4??, request? session? ?? ??? ??
request.setAttribute("result",
resultObject) // 5??,
RequestDispatcher? ???? ??? ?? ???
RequestDispatcher dispatcher
request.getRequestDispatcher("/simpleView.jsp")
dispatcher.forward(request, response)
??? ???? ?? ?? ?? ??
34Command ??? ?? (1)
- ? ??? ???? ???? ??? ????. ?? ??? ??? ???? ? ??, ?
???? ???? ??? ???? ?? ????. (Command ??) - ???? ??? ??? ???? ??? ?? ??? ??? ??? ????.
35Command ??? ?? (2)
Command ??? ??
ltlt?????gtgt CommandHandler
??? ???? ???? ???? ? ?????
public String process()
? ??? ????? ???? CommandHandler ?????? implements
??. process() ???? ??? ???? ??? ????.
ListHandler
WriteFormHandler
public String process()
public String process()
36Command ??? ?? (3)
Controller? Command? ?? ??
???? ???
??
HTTP ?? ??
?????? ???? ??? ??
??? ??? ??? ???? ??
??
CommandHandler
????
??? ???? ?? ?? ??
????
??? ???? ??? ?? ???
???
?
37Command ??? ?? (4)
?? ??? ??
lt???, ??? ???gt? ?? ?? ?? ???1????????1 ???2???
?????2 ???3????????3
Example
lt???, ??? ???gt? ?? ?? ?? /hello.domadvirus.comm
and.HelloHandler /guestbook/writeForm.domadvirus.
guestbook.command.WriteFormHandler /guestbook/writ
e.domadvirus.guestbook.command.WriteHandler
38Command ??
- ?? URI??? Command? ??
- ?) http//server/chap21/logic/process.do??
/logic/process.do? Command? ?? - ?? ????? ?? Command? ??
- ?) http//server/servlet/..?cmdlistp2 ?? cmd
???? ?? list? Command? ??
39??1 ??? ??2 ??? ?? ??
?? ?? ??
?? 1 -??? ?? -?? ??? ??? ?? ?? -??? JSP? ???? ??. ??? JSP? ??? ??? ?? -??? ?? ??? ? ??? ???? JSP ??? ???? -? ??? ????? ??? ?? ?, ???? ??? ??? -?? ?? ?? ??? JSP ??? ???? ?
?? 2 -?? ??? ? ??? ??? ?? ?? ??? ??? -???? ????? ???? ?? ?? ??.(??/?? ?) -??? ??? -?? ??? ???? ??? ????? ?? ?? -???? ??(???????JSP) -??? ??? ???