public List<CommentDTO> commentlist(string seq) throws DataAccessException; // 게시글입력 public int insertboard(boarddto board) throws DataAccessException

Size: px
Start display at page:

Download "public List<CommentDTO> commentlist(string seq) throws DataAccessException; // 게시글입력 public int insertboard(boarddto board) throws DataAccessException"

Transcription

1 Spring 게시판구현 1 차버젂최종본 오라클자바커뮤니티에서설립한오엔제이프로그래밍실무교육센터 ( 오라클 SQL, 튜닝, 힌트, 자바프레임워크, 안드로이드, 아이폰, 닷넷실무전문강의 ) 1. 구현된기능 - 게시판리스트보기 + 게시물본문내용미리보기 + 게시글상세보기 + 커멘트 ( 댓글 ) 기 능 + 글쓰기 + 글수정하기 + 글삭제하기 + 답변글 2. DAO 쪽클래스 [BoardDAO.java] package onj.board.dao; import java.util.list; import onj.board.model.boarddto; import onj.board.model.commentdto; import org.springframework.dao.dataaccessexception; public interface BoardDAO { // 게시물리스트보기 public List<BoardDTO> boardlist() throws DataAccessException; // 게시물본문미리보기 public String preview(string seq) throws DataAccessException; // 게시물본문읽기 public BoardDTO readcontent(string seq) throws DataAccessException; // 읽은글의조회수 1 증가 public int updatereadcount(string seq) throws DataAccessException; //Comment 저장 public int insertcomment(commentdto commentdto) throws DataAccessException ; //Comment 조회

2 public List<CommentDTO> commentlist(string seq) throws DataAccessException; // 게시글입력 public int insertboard(boarddto board) throws DataAccessException; // 글수정 public int updateboard(boarddto board) throws DataAccessException; // 글삭제 public int deleteboard(string sid, String password) throws DataAccessException; // 답글달기 public int replyboard(boarddto board) throws DataAccessException; [SpringBoardDAO.java] package onj.board.dao; import java.sql.resultset; import java.sql.sqlexception; import java.util.list; import javax.sql.datasource; import onj.board.model.boarddto; import onj.board.model.commentdto; import org.springframework.dao.dataaccessexception; import org.springframework.jdbc.core.jdbctemplate; import org.springframework.jdbc.core.rowmapper; public class SpringBoardDAO implements BoardDAO { private JdbcTemplate jdbctemplate; public void setdatasource(datasource datasource) { this.jdbctemplate = new JdbcTemplate(dataSource); // / 게시판젂체리스트보기 (list.html) public List<BoardDTO> boardlist() throws DataAccessException { List<BoardDTO> boardlist = null; //String sql = "select * from board"; /* * reply : 답변인경우어느글의답변인지상위글번호 * 최상위글인경우 reply 는자신의글번호 (seq) 와동일, 리스트보기에서정령시우선 reply 로우선하게된다.

3 두답변은 reply_level 이같다. 들여쓰기를핚다. * reply_level : 1 차, 2 차답글인지여부, 하나의글에답변이두개면그 * list.jsp 에서글을뿌릴때 reply_level 에따라 * reply_step : 하나의글아래에생기는모든답변들에대해순차적으로 1 씩증가, reply_level 과관계없이 */ String sql = " select * from (select seq, name, passwd, " + " title, content, filename, regdate, " + " readcount, reply, reply_step, " + " reply_level, rownum r " + " from board " + " order by reply desc, reply_step asc)"; boardlist = jdbctemplate.query(sql, new RowMapper() { public Object maprow(resultset rs, int rownum) throws SQLException { BoardDTO board = new BoardDTO(); board.setseq(rs.getint("seq")); board.setname(rs.getstring("name")); board.setpasswd(rs.getstring("passwd")); board.settitle(rs.getstring("title")); board.setcontent(rs.getstring("content")); board.setfilename(rs.getstring("filename")); board.setregdate(rs.getstring("regdate")); board.setreadcount(rs.getint("readcount")); board.setreply(rs.getint("reply")); board.setreply_step(rs.getint("reply_step")); board.setreply_level(rs.getint("reply_level")); ); return board; return boardlist; // 게시물본문내용미리보기 (/preview) public String preview(string seq) throws DataAccessException { String sql = "select * from board where seq =?"; rownum) String precontent = (String) jdbctemplate.queryforobject(sql, new Object[] { seq, new RowMapper() { public Object maprow(resultset rs, int ); return precontent; throws SQLException { return rs.getstring("content");

4 // 게시판상세보기, 게시글읽기 public BoardDTO readcontent(string seq) throws DataAccessException { String sql = "select * from board where seq =?"; BoardDTO boarddto = (BoardDTO) jdbctemplate.queryforobject(sql, new Object[] { seq, new RowMapper() { public Object maprow(resultset rs, int rownum) throws SQLException { BoardDTO board = new BoardDTO(); board.setpasswd(rs.getstring("passwd")); board.settitle(rs.getstring("title")); board.setcontent(rs.getstring("content")); board.setfilename(rs.getstring("filename")); board.setregdate(rs.getstring("regdate")); board.setseq(rs.getint("seq")); board.setname(rs.getstring("name")); board.setreadcount(rs.getint("readcount")); board.setreply(rs.getint("reply")); board.setreply_step(rs.getint("reply_step")); board.setreply_level(rs.getint("reply_level")); ); // 글조회수 1 증가 this.updatereadcount(new Integer(boardDTO.getSeq()).toString()); return board; return boarddto; // 읽은글의조회수를 1 증가 public int updatereadcount(string seq) throws DataAccessException { String sql = "update board set readcount = nvl(readcount,0) + 1 where seq =?"; Object[] obj = { seq ; return jdbctemplate.update(sql, obj); // 커맨트입력 public int insertcomment(commentdto commentdto) throws DataAccessException { String sql = "insert into comment_t(seq, name, comm) values (?,?,?)";

5 Object[] obj = { commentdto.getseq(), // 게시글순번 commentdto.getname(), // 작성자 commentdto.getcomment() ; // 커맨트 return jdbctemplate.update(sql, obj); // 커맨트조회 public List<CommentDTO> commentlist(string seq) throws DataAccessException { String sql = "select * from comment_t where seq =?"; rownum) CommentDTO(); List<CommentDTO> commentlist = jdbctemplate.query(sql, new Object[] { seq, new RowMapper() { public Object maprow(resultset rs, int commentdto.setname(rs.getstring("name")); commentdto.setcomment(rs.getstring("comm")); throws SQLException { CommentDTO commentdto = new ); return commentlist; return commentdto; // 글쓰기 public int insertboard(boarddto board) throws DataAccessException { String sql = "insert into board values(board_seq.nextval,?,?,?,?,?, sysdate, 0, board_seq.currval, 0, 0)"; if (board.getfilename() == null) { Object[] obj = { board.getname(), board.getpasswd(), board.gettitle(), board.getcontent(), "" ; return jdbctemplate.update(sql, obj); else { Object[] obj = { board.getname(), board.getpasswd(), board.gettitle(), board.getcontent(), board.getfilename() ; return jdbctemplate.update(sql, obj); // 게시글수정 public int updateboard(boarddto board) throws DataAccessException { seq =?"; String sql = "update board set title =?, content =? where Object[] obj = { board.gettitle(), board.getcontent(),

6 board.getseq() ; return jdbctemplate.update(sql, obj); // 게시글삭제 public int deleteboard(string seq, String passwd) throws DataAccessException { int result = 0; String sql = "delete from board where seq =? and passwd =?"; result = jdbctemplate.update(sql, new Object[] { seq, passwd ); return result; { // 답글달기 public int replyboard(boarddto boarddto) throws DataAccessException int result = 0; String name = boarddto.getname(); String passwd = boarddto.getpasswd(); String title = boarddto.gettitle(); String content = boarddto.getcontent(); String filename = boarddto.getfilename(); int reply = boarddto.getreply(); int reply_step = boarddto.getreply_step(); int reply_level = boarddto.getreply_level(); // 현재답변을단게시물보다더높은스텝의게시물이있다면스텝을하나씩 상승시킴 String sql1 = "update board set reply_step = reply_step + 1 " + "where reply = " + reply + " and reply_step > " + reply_step; jdbctemplate.update(sql1); String sql2 = "insert into board values(board_seq.nextval,?,?,?,?,?, sysdate, 0,?,?,?)"; // reply_step 과 reply_level 을 1 씩증가시킨후내용을저장 Object[] obj2 = { name, passwd, title, content, filename, reply, reply_step + 1, reply_level + 1 ; result = jdbctemplate.update(sql2, obj2); return 0; 3. service 쪽클래스를만들어보자.

7 [BoardService.java] package onj.board.service; import java.util.list; import onj.board.model.boarddto; import onj.board.model.commentdto; /* * 게시판에서구현핛기능을인터페이스로정의 */ public interface BoardService { // 게시판리스트보기 public List<BoardDTO> boardlist(); // 게시물미리보기 public String preview(string seq); // 게시판본문내용보기, 게시글읽기 public BoardDTO readcontent(string seq); // 커맨트입력 public int insertcomment(commentdto commentdto); // 커맨트조회 public List<CommentDTO> commentlist(string seq); // 게시글입력 public int insertboard(boarddto board); // 게시글수정 public int updateboard(boarddto board); // 게시글삭제 public int deleteboard(string seq, String passwd); // 답글등록 public int replyboard(boarddto board); [BoardServiceImpl.java] package onj.board.service; import java.util.list; import onj.board.dao.boarddao; import onj.board.model.boarddto;

8 import onj.board.model.commentdto; public class BoardServiceImpl implements BoardService { private BoardDAO boarddao; public void setboarddao(boarddao boarddao) { this.boarddao = boarddao; // 게시물리스트보기 public List<BoardDTO> boardlist() { return boarddao.boardlist(); // 게시물본문내용미리보기 public String preview(string seq) { return boarddao.preview(seq); // 게시글읽기 public BoardDTO readcontent(string seq) { return boarddao.readcontent(seq); // 커맨트입력 public int insertcomment(commentdto commentdto) { return boarddao.insertcomment(commentdto); // 커맨트조회 public List<CommentDTO> commentlist(string seq) { return boarddao.commentlist(seq); // 게시글입력 public int insertboard(boarddto board) { return boarddao.insertboard(board); // 게시글수정 public int updateboard(boarddto board) { return boarddao.updateboard(board); // 게시글삭제 public int deleteboard(string seq, String passwd) { return boarddao.deleteboard(seq, passwd); // 답글등록 public int replyboard(boarddto board){ return boarddao.replyboard(board);

9 [BoardServiceHelper.java] package onj.board.service; import javax.servlet.servletcontext; import org.springframework.web.context.webapplicationcontext; import org.springframework.web.context.support.webapplicationcontextutils; public class BoardServiceHelper { public static BoardService getboardservice(servletcontext ctx) { WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(ctx); //boardconfig.xml 에정의된 boardservice 빈을리턴 // 이부분은게시물미리보기서블릿 (ContentPreview) 에서스프링의인스턴 스를얻을때이용 return (BoardService) wac.getbean("boardservice"); 4. 스프링컨트롤러 [BoardMultiController.java] package onj.board.controller; import java.io.printwriter; import java.util.enumeration; import java.util.list; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import onj.board.model.boarddto;

10 import onj.board.model.commentdto; import onj.board.service.boardservice; import org.springframework.web.servlet.modelandview; import org.springframework.web.servlet.mvc.multiaction.multiactioncontroller; import com.oreilly.servlet.multipartrequest; import com.oreilly.servlet.multipart.defaultfilerenamepolicy; /* * MultiActionController는비슷하거나관렦있는로직을수행하는 * 다수의액션을가지고있을때사용하는컨트롤러 * 연관된요청 (Request) 를묶을때용이함 */ public class BoardMultiController extends MultiActionController { private BoardService boardservice; public void setboardservice(boardservice boardservice) { this.boardservice = boardservice; // 게시판리스트보기, 페이징기능은구현안함 public ModelAndView list(httpservletrequest req, HttpServletResponse res) throws Exception { ModelAndView mv = new ModelAndView("list", "list", boardservice.boardlist()); return mv; // 게시글읽기 public ModelAndView read(httpservletrequest req, HttpServletResponse res) throws Exception { String seq = req.getparameter("seq"); ModelAndView mav = new ModelAndView("read", "read", boardservice.readcontent(seq)); // 해당글의커맨트도함께내려보내자.

11 mav.addobject("comments", boardservice.commentlist(seq)); return mav; // 커맨트쓰기 public ModelAndView comment(httpservletrequest req, HttpServletResponse res) { String seq = req.getparameter("seq"); CommentDTO commentdto = new CommentDTO(); commentdto.setseq(seq); commentdto.setname(req.getparameter("name")); commentdto.setcomment(req.getparameter("comment")); boardservice.insertcomment(commentdto); return new ModelAndView("redirect:/read.html?seq=" + seq); // 새글 ( 게시글 ) 입력 public ModelAndView write(httpservletrequest req, HttpServletResponse res) throws Exception { MultipartRequest multi = new MultipartRequest(req, "c:\\java\\project\\onjboard1\\upload", 5 * 1024 * 1024, "euc-kr", new DefaultFileRenamePolicy()); Enumeration formnames = multi.getfilenames(); String formname = (String) formnames.nextelement(); String filename = multi.getfilesystemname(formname); String name = multi.getparameter("name"); String passwd = multi.getparameter("passwd"); String title = multi.getparameter("title"); String content = multi.getparameter("content"); BoardDTO board = new BoardDTO(name, passwd, title, content, filename); boardservice.insertboard(board);

12 return new ModelAndView("redirect:/list.html"); // 게시글수정 public ModelAndView update(httpservletrequest req, HttpServletResponse res) throws Exception { String seq = req.getparameter("seq"); String name = req.getparameter("name"); String passwd = req.getparameter("passwd"); String title = req.getparameter("title"); String content = req.getparameter("content"); BoardDTO board = new BoardDTO(name, passwd, title, content, ""); board.setseq(integer.parseint(seq)); boardservice.updateboard(board); return new ModelAndView("redirect:/read.html?seq=" + req.getparameter("seq")); // 게시글삭제 public ModelAndView delete(httpservletrequest req, HttpServletResponse res) throws Exception { String seq = req.getparameter("seq"); String passwd = req.getparameter("passwd"); int result = boardservice.deleteboard(seq, passwd); if (result!= 1) { PrintWriter out = res.getwriter(); out.println("<script>alert('password not correct');</script>"); out.println("<script>history.go(-1);</script>"); return null; else { return new ModelAndView("redirect:/list.html");

13 Exception { // 게시물상세보기에서답변클릭시호출되어답변달 reply.jsp 로연결 public ModelAndView reply(httpservletrequest req, HttpServletResponse res) throws String seq = req.getparameter("seq"); // 답변달게시물내용을 reply.jsp 넘긴다. ModelAndView mav = new ModelAndView("reply", //view이름 "reply", //readcontent가넘기는 boarddto의이름, reply.jsp에서사용 boardservice.readcontent(seq)); return mav; // 답글저장 public ModelAndView replyok(httpservletrequest req, HttpServletResponse res) throws Exception { String seq = req.getparameter("seq"); String name = req.getparameter("name"); String passwd = req.getparameter("passwd"); String title = req.getparameter("title"); String content = req.getparameter("content"); String filename = ""; String reply = req.getparameter("reply"); String reply_step = req.getparameter("reply_step"); String reply_level = req.getparameter("reply_level"); BoardDTO boarddto = new BoardDTO(name, passwd, title, content, filename); boarddto.setseq(integer.parseint(seq)); boarddto.setreply(integer.parseint(reply)); boarddto.setreply_level(integer.parseint(reply_level)); boarddto.setreply_step(integer.parseint(reply_step)); boardservice.replyboard(boarddto);

14 return new ModelAndView("redirect:/list.html"); 5. AJAX 에서이용되는게시물미리보기서블릿 [ContentPreview.java] package onj.board.ajaxpreview; import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import onj.board.service.boardservice; import onj.board.service.boardservicehelper; //Servlet3.0이상, Tomcat7 이상에서는애노테이션으로서블릿정의가가능하다. = "/preview") public class ContentPreview extends HttpServlet { protected void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { String seq = req.getparameter("seq"); req.setcharacterencoding("utf-8"); res.setcontenttype("text/html; charset=utf-8"); res.setheader("cache-control", "no-cache"); BoardService boardservice = BoardServiceHelper.getBoardService(getServletContext()); PrintWriter out = res.getwriter(); out.println("<pre>" + boardservice.preview(seq) + "<pre>");

15 6. model 쪽클래스 [BoardDTO.java] package onj.board.model; public class BoardDTO { private int seq; private String name; private String passwd; private String title; private String content; private String filename; private String regdate; private int readcount; private int reply; private int reply_step; private int reply_level; public BoardDTO() { public BoardDTO(String name, String passwd, String title, String content, String filename) { this.name = name; this.passwd = passwd; this.title = title; this.content = content; this.filename = filename; public BoardDTO(String name, String passwd, String title, String content, String filename, int readcount) { this.name = name; this.passwd = passwd; this.title = title; this.content = content; this.filename = filename; this.readcount = readcount; public int getseq() { return seq; public void setseq(int seq) { this.seq = seq; public String getname() {

16 return name; public void setname(string name) { this.name = name; public String getpasswd() { return passwd; public void setpasswd(string passwd) { this.passwd = passwd; public String gettitle() { return title; public void settitle(string title) { this.title = title; public String getcontent() { return content; public void setcontent(string content) { this.content = content; public String getfilename() { return filename; public void setfilename(string filename) { this.filename = filename; public String getregdate() { return regdate.substring(0, 10); // 형태 public void setregdate(string regdate) { this.regdate = regdate; public int getreadcount() { return readcount; public void setreadcount(int readcount) { this.readcount = readcount; public int getreply() { return reply;

17 public void setreply(int reply) { this.reply = reply; public int getreply_step() { return reply_step; public void setreply_step(int reply_step) { this.reply_step = reply_step; public int getreply_level() { return reply_level; public void setreply_level(int reply_level) { this.reply_level = reply_level; [commentdto.java] package onj.board.model; public class CommentDTO { public String seq; public String name; // 게시글번호 // 이름 public String comment;// 커맨트 public CommentDTO() { public String getseq() { return seq; public void setseq(string seq) { this.seq = seq; public String getname() { return name; public void setname(string name) { this.name = name; public String getcomment() { return comment; public void setcomment(string comment) { this.comment = comment;

18 7. /jsp/list.jsp [list.jsp] page contenttype="text/html; charset=euc-kr" language="java" errorpage="" %> taglib prefix="c" uri=" %> <html> <head> <title> 오엔제이프로그래밍실무학원 </title> <meta http-equiv="content-type" content="text/html; charset=euc-kr"> <style type="text/css"> #layer1{ position:absolute; padding:5px; filter:alpha(opacity=50); width:250px; height:150px; background-color:white; border:2px # dotted; visibility:hidden; </style> <script language="javascript" type="text/javascript" src="/onjboard1/js/createxmlhttprequest.js"></script> <script type="text/javascript"> var xmlhttp; var xmldoc; var message; function contentprev(seq){ var url = "preview?seq="+seq; // 미리보기서블릿호출 xmlhttp = createxmlhttprequest(); xmlhttp.onreadystatechange = handlestatechange; xmlhttp.open("get", url, true); xmlhttp.send(null); function handlestatechange(){ if(xmlhttp.readystate == 4){ if(xmlhttp.status == 200){ xmldoc = xmlhttp.responsetext; document.getelementbyid("layer1").innerhtml = xmldoc; function showlayer(id){ if(document.all)

19 document.all[id].style.visibility="visible"; else if(document.layers) document.layers[id].style.visibility="visible"; function hidelayer(id){ if(document.all) document.all[id].style.visibility="hidden"; else if(document.layers) document.layers[id].style.visibility="hidden"; function movetip() { layer1.style.pixeltop=event.y+document.body.scrolltop+10; layer1.style.pixelleft=event.x+document.body.scrollleft+10; document.onmousemove=movetip; </script> </head> <body> <div id="layer1"> 게시물본문미리보기 </div> <div style="width:500px;"> <div style="float:right;"> <H3> 오엔제이프로그래밍실무교육센터스프링게시판 </H3> <h5> 총 ${list.size() 건 </h5> <table width="600" border="1" align="left"> <tr align="left"> <td width="10%" align="center"> 번호 </td> <td width="40%" align="center"> 제목 </td> <td width="20%" align="center"> 이름 </td> <td width="20%" align="center"> 날짜 </td> <td width="10%" align="center"> 조회 </td> <!-- list를가져와서 board라명명후개수만큼반복 --> <c:foreach var="board" items="${list"> <td align="center"> <c:if test="${board.reply_step == 0"> ${board.seq </c:if> <c:if test="${board.reply_step!= 0"> </c:if> </td> <td> <!-- 게시물은덧글에따른번호와덧글존재유무로정렧됨 --> <c:choose> <c:when test="${board.reply_step!= 0"><!-- 게시글이덧글일경우 --> <c:foreach var="i" begin="1" end="${board.reply_level" step="1"><!-- 레벨의수만큼글을뒤로민다 --> </c:foreach> <a

20 href="read.html?seq=${board.seq" onmouseover="contentprev('${board.seq');showlayer('layer1');" onmouseout="hidelayer('layer1');">${board.title</a> <!-- 마우스를올리면게시물번호에따른 showlayer( 게시물미리보기창 ) 가실행됨 --> </c:when> <c:when test="${board.reply_step == 0"> <a href="read.html?seq=${board.seq" onmouseover="contentprev('${board.seq');showlayer('layer1');" onmouseout="hidelayer('layer1');">${board.title</a> </c:when> </c:choose> </td> <td align="center">${board.name</td> <td align="center">${board.regdate</td> <td align="center">${board.readcount</td> </c:foreach> <td align="center"><input type="button" value=" 글쓰기 " onclick="location.href='/onjboard1/jsp/write.jsp'"></td> <td> </td> <td> </td> <td> </td> <td> </td> </table> </div> </div> </body> </html> 8. read.jsp. [read.jsp] <%@ page contenttype="text/html; charset=euc-kr" language="java" errorpage="" %> <%@ taglib prefix="c" uri=" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <title> 게시물읽기 </title> <meta http-equiv="content-type" content="text/html; charset=euc-kr"> <script> function write_ok(){ writeform.submit(); function update_ok(){

21 </script> </head> document.viewform.action = '/onjboard1/update.html'; document.viewform.submit(); <body> <div style="width:600px;"> <div style="float:enter;"> <table width="600" height="420" border="1" align="center"> <tr height="20"><h2> 오엔제이프로그래밍실무교육센터게시판 </h2> <form name="viewform" method="post"> <input type="hidden" name="seq" value="${read.seq"> <input type="hidden" name="reply" value="${read.reply"> <input type="hidden" name="reply_step" value="${read.reply_step"> <input type="hidden" name="reply_level" value="${read.reply_level"> <td width="100">* 이름 </td> <td width="500">: <input name="name" type="text" value="${read.name" size="50" readonly> </td> <td>* 제목 </td> <td>: <input name="title" type="text" value="${read.title" size="50" ></td> <tr align="center"> <td colspan="2"><textarea name="content" cols="80" rows="12" >${read.content</textarea></td> <td>* 파일 </td> <td>: <c:choose> <c:when test="${read.filename!= null"> ${read.filename </c:when> <c:when test="${read.filename == null"> 파일없음 </c:when> </c:choose> </td> <td> </td> <td><input name="button" type="button" onclick="location.href='/onjboard1/reply.html?seq=${read.seq'" value=" 답변 "> <input name="button" type="button" onclick="update_ok()" value=" 수정 "> <input name="button" type="button" onclick="location.href='/onjboard1/jsp/delete.jsp?seq=${read.seq'" value=" 삭제 ">

22 <input name="button" type="button" onclick="location.href='/onjboard1/list.html'" value=" 목록 "></td> </form> <td height="99" colspan="2"> <!-- BoardMultiController 의 comment() 메소드호출 --> <form method="post" action="comment.html"> <table border="1"> <td> 이름 : </td> <td><input type="text" name="name"></td> <td> 코멘트 :</td> <td><input type="text" name="comment"></td> <td><input type="submit" name="button" value=" 쓰기 "></td> </table> <input type="hidden" name="seq" value="${read.seq"> </form> <!-- 달려있는커맨트보기 --> <table width="789" border="1"> <c:foreach var="comment" items="${comments"> <td width="42" align="center">*</td> <td width="86">${comment.name</td> <td width="639">${comment.comment</td> </c:foreach> </table> </td> </table> <br><br> <table><td><b> > </div> </div> </body> </html> 9. /jsp/reply.jsp 작성. [reply.jsp] <%@ page contenttype="text/html; charset=euc-kr" language="java" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "

23 <html> <head> <title> 답변달기 </title> <meta http-equiv="content-type" content="text/html; charset=euc-kr"> <script> function write_ok(){ if(document.form.name.value == ""){ alert(" 이름을입력하세요."); document.form.name.focus(); return false; if(document.form.title.value == ""){ alert(" 제목을입력하세요."); document.form.title.focus(); return false; if(document.form.content.value == ""){ alert(" 내용을입력하세요."); document.form.content.focus(); return false; if(document.form.passwd.value == ""){ alert(" 비밀번호를입력하세요."); document.form.passwd.focus(); return false; form.submit(); </script> </head> <body> <div style="width:600px;"> <form method="post" name="form" action="/onjboard1/replyok.html"> <table><td><h2> 오엔제이프로그래밍실무교육센터 게시판 ( 답글달기 )</h2><td></table> <table width="600" height="277" border="1" align="center"> <td width="120">* 이름 </td> <td width="480">: <input name="name" type="text" size="50"></td> <td>* 제목 </td> <td>: <input name="title" type="text" value="re: ${reply.title" size="50"></td> <tr align="center"> <td colspan="2"><textarea name="content" cols="80" rows="10">${reply.content</textarea></td> <td>* 비밀번호 </td> <td>: <input type="password" name="passwd"></td>

24 <td> </td> <td><input type="button" value=" 답변 " onclick="write_ok();"> <input type="button" value=" 취소 " onclick="history.back();"></td> </table> <input type="hidden" name="seq" value="${reply.seq"> <input type="hidden" name="reply" value="${reply.reply"> <input type="hidden" name="reply_step" value="${reply.reply_step"> <input type="hidden" name="reply_level" value="${reply.reply_level"> </form> </div> <br><br> <table><td><b> > </body> </html> 10. /jsp/delete.jsp 작성. [delete.jsp] page contenttype="text/html; charset=euc-kr" language="java" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <title> 오엔제이프로그래밍실무교육센터게시물삭제 </title> <meta http-equiv="content-type" content="text/html; charset=euc-kr"> <script> function del_ok(){ if(document.delform.passwd.value == ""){ alert(" 비밀번호를입력하세요."); document.delform.passwd.focus(); return false; </script> </head> delform.submit(); <body> <form method="post" name="delform" action="/onjboard1/delete.html"> <table border="1" align="center"> <td> 비밀번호 </td> <td><input type="text" name="passwd"></td> <td><input type="button" value=" 확인 " onclick="del_ok();"> <input name="button" type="button" value=" 취소 " onclick="history.back();"></td>

25 </table> <table align="center"><td><a href="/onjboard1/list.html"> 목록보기 </a></td></table> <input type="hidden" name="seq" value="${param.seq"> </form> </body> </html> 11. /jsp/write.jsp 작성. [write.jsp] page contenttype="text/html; charset=euc-kr" language="java" errorpage="" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <title> 게시물쓰기 </title> <meta http-equiv="content-type" content="text/html; charset=euc-kr"> <script language="javascript" type="text/javascript"> function form_check(){ if(document.form.name.value == ""){ alert(" 이름을입력하세요."); document.form.name.focus(); return false; if(document.form.title.value == ""){ alert(" 제목을입력하세요."); document.form.title.focus(); return false; if(document.form.content.value == ""){ alert(" 내용을입력하세요."); document.form.content.focus(); return false; if(document.form.passwd.value == ""){ document.form.submit(); function addfileform(){ alert(" 비밀번호를입력하세요."); document.form.passwd.focus(); return false; var tb1 = document.getelementbyid("file_table"); if(9 >= tb1.rows.length) { var idx = getobj().parentelement.rowindex + 1; var trow= tb1.insertrow(idx);

26 var uploadobj="<input name='attatch' type='file' class='text_form' id='f_id'><a OnClick='javascript:addFileForm();'> 추가 </a> <a OnClick='javascript:deleteRow();'> 삭제 </a> "; trow.insertcell(0).innerhtml = uploadobj; else { alert(" 문서파일은 10 개이상접수핛수없습니다."); return; function getobj() { var obj = event.srcelement while (obj.tagname!='td') //TD 가나올때까지의 Object 추출 { obj = obj.parentelement return obj function deleterow(){ var tb1 = document.getelementbyid("file_table"); var idx = getobj().parentelement.rowindex; if(tb1.rows.length-1!=0){ var trow = tb1.deleterow(idx); else{ document.getelementbyid('f_id').select(); document.selection.clear(); </script> </head> <body> <H3> 오엔제이프로그래밍실무교육센터스프링게시판글쓰기 </H3> <div style="width:600px;"> <div style="float:right;"> <!-- /write.html 요천의경우컨트롤로의 write 메소드가실행되도록매핑되어있다 --> <form name="form" method="post" action="/onjboard1/write.html" enctype="multipart/form-data"> <table width="580" height="277" border="1" align="center"> <td width="100">* 이름 </td> <td width="580">: <input name="name" type="text" size="50"> </td> <td>* 제목 </td> <td>: <input name="title" type="text" size="50"></td> <tr align="center">

27 <td colspan="2"><textarea name="content" cols="80" rows="10"></textarea></td> <td>* 파일 :</td> <td><table id="file_table"> <td> type="file" class="text_form" id="f_id"><a <input name="attatch" OnClick="javascript:addFileForm();"> 추가 </a> <a OnClick="javascript:deleteRow();"> 삭제 </a> </td> </table> </td> <td>* 비밀번호 </td> <td>: <input type="password" name="passwd"></td> <td> </td> <td><input type="button" name="submit" value=" 쓰기 " onclick="form_check();"> <input type="button" name="submit2" value=" 취소 " onclick="history.back();"></td> </table> </div> </div> </form> </body> </html> 12. /js/createxmlhttprequest.js. [createxmlhttprequest.js] function createxmlhttprequest(){ var xmlhttp; if(window.activexobject){ try{ ActiveXObject("Msxml2.XMLHTTP"); ActiveXObject("Microsoft.XMLHTTP"); catch(e){ try{ xmlhttp = new xmlhttp = new catch(e1){ xmlhttp = null;

28 else if(window.xmlhttprequest){ try{ xmlhttp = new XMLHttpRequest(); catch(e){ xmlhttp = null; if(xmlhttp == null) errormessage(); return xmlhttp; function errormessage(){ alert(" 지원핛수없는브라우저입니다."); 13. /WEB-INF/action-servlet.xml [action-servlet.xml] <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " <beans> <bean id="datasource" class="org.apache.commons.dbcp.basicdatasource" destroy-method="close"> <property name="driverclassname"> <value>oracle.jdbc.driver.oracledriver</value> </property> <property name="url"> <value>jdbc:oracle:thin:@ :1521:onj</value> </property> <property name="username"> <value>scott</value> </property> <property name="password"> <value>tiger</value> </property> </bean> <!-- 넘어오는 URL 에따라컨트롤러에서실행될메소드매핑 --> <!-- PropertiesMethodNameResolver 는 prop key 로넘어오는 url 에대해실행핛 컨트롤러의메소드 정의 -->

29 <bean id="usercontrollermethodnameresolver" class="org.springframework.web.servlet.mvc.multiaction.propertiesmet hodnameresolver"> <property name="mappings"> <props> --> <!-- list.html 요청이오면컨트롤러의 list 메소드실행 <prop key="/list.html">list</prop> --> 메소드실행 --> 실행 --> 실행 --> <!-- read.html 요청이오면컨트롤러의 read 메소드실행 <prop key="/read.html">read</prop> <!-- comment.html 요청이오면컨트롤러의 comment <prop key="/comment.html">comment</prop> <!-- write.html 요청이오면컨트롤러의 write 메소드 <prop key="/write.html">write</prop> <!-- update.html 요청이오면컨트롤러의 update 메소드 <prop key="/update.html">update</prop> 실행 --> 실행 --> <!-- delete.html 요청이오면컨트롤러의 delete 메소드 <prop key="/delete.html">delete</prop> <!-- reply.html 요청이오면컨트롤러의 reply 메소드 <prop key="/reply.html">reply</prop> <!-- replyok.html 요청이오면컨트롤러의 replyok 메소드실행 --> <prop key="/replyok.html">replyok</prop> </props> </property> </bean> <!-- 뷰리졸버 --> <bean id="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewreso lver"> <property name="prefix"> <value>/jsp/</value> </property> <property name="suffix"> <value>.jsp</value>

30 </beans> </property> </bean> <!-- 컨트롤러매핑 --> <bean name="/list.html /read.html /comment.html /write.html /update.html /delete.html /reply.html /replyok.html" class="onj.board.controller.boardmulticontroller"> <property name="methodnameresolver"> <ref local="usercontrollermethodnameresolver" /> </property> <property name="boardservice"> <ref bean="boardservice" /> </property> </bean> 14. /WEB-INF/boardConfig.xml [boardconfig.xml] <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " <beans> <bean id="boarddao" class="onj.board.dao.springboarddao"> <property name="datasource"> <ref bean="datasource"/> </property> </bean> <bean id="boardservice" class="onj.board.service.boardserviceimpl"> <property name="boarddao"> <ref bean="boarddao"/> </property> </bean> </beans> 15. /WEB-INF/web.xml [web.xml] <?xml version="1.0" encoding="utf-8"?> <web-app id="webapp_id" version="2.4" xmlns=" xmlns:xsi=" xsi:schemalocation="

31 <display-name>onjspringboard1.0, 오엔제이프로그래밍실무교육센터 </displayname> <filter> <filter-name>encodingfilter</filter-name> <filterclass>org.springframework.web.filter.characterencodingfilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>euc-kr</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- ContextLoaderListener 설정 --> <listener> <listener-class> org.springframework.web.context.contextloaderlistener </listener-class> </listener> <!-- ContextLoaderListener 설정파일 --> <context-param> <param-name>contextconfiglocation</param-name> <param-value> /WEB-INF/boardConfig.xml, /WEB-INF/action-servlet.xml </param-value> </context-param> <!-- 디스패처서블릿정의설정 --> <servlet> <servlet-name>action</servlet-name> <servletclass>org.springframework.web.servlet.dispatcherservlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> <!-- 게시물미리보기기능을위핚 ajax 처리용서블릿정의 --> <servlet> <servlet-name>preview</servlet-name> <servlet-class>onj.board.ajaxpreview.contentpreview</servletclass> </servlet>

32 </web-app> <servlet-mapping> <servlet-name>preview</servlet-name> <url-pattern>/preview</url-pattern> </servlet-mapping>

33

34

35

36

37

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r Jakarta is a Project of the Apache

More information

C H A P T E R 2

C H A P T E R 2 C H A P T E R 2 Foundations of Ajax Chapter 2 1 32 var xmlhttp; function createxmlhttprequest() { if(window.activexobject) { xmlhttp = new ActiveXObject( Micr else if(window.xmlhttprequest) { xmlhttp =

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

14-Servlet

14-Servlet JAVA Programming Language Servlet (GenericServlet) HTTP (HttpServlet) 2 (1)? CGI 3 (2) http://jakarta.apache.org JSDK(Java Servlet Development Kit) 4 (3) CGI CGI(Common Gateway Interface) /,,, Client Server

More information

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가 혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가웹페이지내에뒤섞여있어서웹페이지의화면설계가점점어려워진다. - 서블릿이먼저등장하였으나, 자바내에

More information

하둡을이용한파일분산시스템 보안관리체제구현

하둡을이용한파일분산시스템 보안관리체제구현 하둡을이용한파일분산시스템 보안관리체제구현 목 차 - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - 1. 사용자가웹서버에로그인하여다양한서비스 ( 파일업 / 다운로드, 폴더생성 / 삭제 ) 를활용 2. 웹서버와연동된하둡서버에서업 / 다운로드된파일을분산저장. ( 자료송수신은 SSH 활용 ) - 9 - - 10 - - 11 -

More information

04장

04장 20..29 1: PM ` 199 ntech4 C9600 2400DPI 175LPI T CHAPTER 4 20..29 1: PM ` 200 ntech4 C9600 2400DPI 175LPI T CHAPTER 4.1 JSP (Comment) HTML JSP 3 home index jsp HTML JSP 15 16 17 18 19 20

More information

PHP & ASP

PHP & ASP 단어장프로젝트 프로젝트2 단어장 select * from address where address like '% 경기도 %' td,li,input{font-size:9pt}

More information

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일 Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae

More information

Ext JS À¥¾ÖÇø®ÄÉÀ̼ǰ³¹ß-³¹Àå.PDF

Ext JS À¥¾ÖÇø®ÄÉÀ̼ǰ³¹ß-³¹Àå.PDF CHAPTER 2 (interaction) Ext JS., HTML, onready, MessageBox get.. Ext JS HTML CSS Ext JS.1. Ext JS. Ext.Msg: : Ext Ext.get: DOM 22 CHAPTER 2 (config). Ext JS.... var test = new TestFunction( 'three', 'fixed',

More information

Spring Data JPA Many To Many 양방향 관계 예제

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

TP_jsp7.PDF

TP_jsp7.PDF (1) /WEB_INF.tld /WEB_INF/lib (2) /WEB_INF/web.xml (3) http://{tag library }/taglibs/{library} /web_inf/{

More information

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D> 10 장. 에러처리 1. page 지시문을활용한에러처리 page 지시문의 errorpage 와 iserrorpage 속성 errorpage 속성 이속성이지정된 JSP 페이지내에서 Exception이발생하는경우새롭게실행할페이지를지정하기위하여사용 iserrorpage 속성 iserrorpage 는위와같은방법으로새롭게실행되는페이지에지정할속성으로현재페이지가 Exception

More information

JavaGeneralProgramming.PDF

JavaGeneralProgramming.PDF , Java General Programming from Yongwoo s Park 1 , Java General Programming from Yongwoo s Park 2 , Java General Programming from Yongwoo s Park 3 < 1> (Java) ( 95/98/NT,, ) API , Java General Programming

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습문제 Chapter 05 데이터베이스시스템... 오라클로배우는데이터베이스개론과실습 1. 실습문제 1 (5 장심화문제 : 각 3 점 ) 6. [ 마당서점데이터베이스 ] 다음프로그램을 PL/SQL 저장프로시져로작성하고실행해 보시오. (1) ~ (2) 7. [ 마당서점데이터베이스 ] 다음프로그램을 PL/SQL 저장프로시져로작성하고실행해 보시오. (1) ~ (5)

More information

3장

3장 C H A P T E R 03 CHAPTER 03 03-01 03-01-01 Win m1 f1 e4 e5 e6 o8 Mac m1 f1 s1.2 o8 Linux m1 f1 k3 o8 AJAX

More information

슬라이드 1

슬라이드 1 7. [ 실습 ] 예제어플리케이션개발 1. 실습개요 2. 프로젝트환경구성 3. 기본환경설정 4. 예제어플리케이션개발 5. 참조 - 539 - 1. 실습개요 (1/4) 7. [ 실습 ] 예제어플리케이션개발 스프링기반의 EGOV 프레임워크를사용하여구현된예제어플리케이션구현을통하여 Presentation Layer와 Business Layer의연계를살펴본다. 예제어플리케이션구현기능

More information

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드] GUI 설계 6 주차 DB 연동김문정 tops@yd.ac.kr 강의순서강의전환경 JDK 설치및환경설정톰캣설치및환경설정이클립스 (JEE) 설치및환경설정 MySQL( 드라이버 ) 설치및커넥터드라이브연결 DB 생성 - 계정생성이클립스에서 DB에연결서버생성 - 프로젝트생성 DB연결테이블생성및등록 2 MySQL 설치확인 mysql - u root -p MySQL 에데이터베이스추가

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

Spring Boot

Spring Boot 스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 CHAPTER 7. HTML 와 CSS 로웹사이트만들 기 웹사이트작성 웹사이트구축과정 내비게이션구조도 홈페이지레이아웃 헤더 web Shop 내비게이션메뉴

More information

(jpetstore \277\271\301\246\267\316 \273\354\306\354\272\270\264\302 Spring MVC\277\315 iBatis \277\254\265\277 - Confluence)

(jpetstore \277\271\301\246\267\316 \273\354\306\354\272\270\264\302 Spring MVC\277\315 iBatis \277\254\265\277 - Confluence) 8 중 1 2008-01-31 오전 12:08 오픈소스스터디 jpetstore 예제로살펴보는 Spring MVC와 ibatis 연동 Added by Sang Hyup Lee, last edited by Sang Hyup Lee on 1월 16, 2007 (view change) Labels: (None) 지금까지 Spring MVC 를셋팅하는과정에서부터하나의

More information

PART 1 CHAPTER 1 Chapter 1 Note 4 Part 1 5 Chapter 1 AcctNum = Table ("Customer").Cells("AccountNumber") AcctNum = Customer.AccountNumber Note 6 RecordSet RecordSet Part 1 Note 7 Chapter 1 01:

More information

신림프로그래머_클린코드.key

신림프로그래머_클린코드.key CLEAN CODE 6 11st Front Dev. Team 6 1. 2. 3. checked exception 4. 5. 6. 11 : 2 4 : java (50%), javascript (35%), SQL/PL-SQL (15%) : Spring, ibatis, Oracle, jquery ? , (, ) ( ) 클린코드를 무시한다면 . 6 1. ,,,!

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

Web Service Computing

Web Service Computing Spring MVC 2015 Web Service Computing Request & Response HTTP(Hyper-Text Transfer Protocol) 웹서버가하는일은요청 (Request) 과응답 (Response) 의연속이다. 1) 브라우저에 www.google.co.kr 을입력한다면 2) 구글서버에페이지를요청하는것이고 3) 화면이잘나타난다면구글서버가응답을한것이다.

More information

KYO_SCCD.PDF

KYO_SCCD.PDF 1. Servlets. 5 1 Servlet Model. 5 1.1 Http Method : HttpServlet abstract class. 5 1.2 Http Method. 5 1.3 Parameter, Header. 5 1.4 Response 6 1.5 Redirect 6 1.6 Three Web Scopes : Request, Session, Context

More information

2장 변수와 프로시저 작성하기

2장  변수와 프로시저 작성하기 Chapter. RequestDispatcher 활용 요청재지정이란? RequestDispatcher 활용 요청재지정구현예제 Chapter.9 : RequestDispatcher 활용 1. 요청재지정이란? 클라이언트로부터요청받은 Servlet 프로그램이응답을하지않고다른자원에수행흐름을넘겨다른자원의처리결과를대신응답하는것또는다른자원의수행결과를포함하여응답하는것을요청재지정이라고한다.

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

SK Telecom Platform NATE

SK Telecom Platform NATE SK Telecom Platform NATE SK TELECOM NATE Browser VER 2.6 This Document is copyrighted by SK Telecom and may not be reproduced without permission SK Building, SeRinDong-99, JoongRoGu, 110-110, Seoul, Korea

More information

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인 표준프레임워크로구성된컨텐츠를솔루션에적용하는것에문제가없는지확인 ( S next -> generate example -> finish). 2. 표준프레임워크개발환경에솔루션프로젝트추가. ( File -> Import -> Existring Projects into

More information

Microsoft PowerPoint - JasperReports 개발자 매뉴얼.ppt

Microsoft PowerPoint - JasperReports 개발자 매뉴얼.ppt JasperReport-1.1.0 개발자매뉴얼 작성자 : 김기대작성일 : 2006.04.10 E-mail : kdkim@eznetsoft.co.kr 1 목차 1. Background Knowledge 2. 개발환경구축 3. 개발 - PDF 형식으로보고서제공하기 - Applet Viewer로보고서를 Embedded 해제공하기 4. 참고 2 Background

More information

Data Provisioning Services for mobile clients

Data Provisioning Services for mobile clients 11 장. 세션과쿠키 세션의원리 세션의기본개념 1. 세션의활용 접속중인웹브라우저각각에대응하여서로다른세션이생성되고활용 2/35 1. 세션의활용 세션의원리 세션의생성시점과종료시점 session 생성시기임의의웹브라우저부터의첫번째요청을처리할때 session이생성되고관련타이머가동작한다. session 소멸시기 1) 세션타이머가만료 2) 코드상에서명시적으로세션소멸 한명의브라우저사용자에대해지속적으로관리해야하는데이터저장장소로서세션을활용

More information

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 한

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용   한 수업환경구축 웹데이터베이스구축및실습 구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 http://chrome.google.com 한림대학교웹데이터베이스 - 이윤환 APM 설치 : AUTOSET6

More information

Spring

Spring Spring MVC 프로젝트생성 2015 Web Service Computing 일반적인스프링의정의 스프링의정의 자바엔터프라이즈개발을편하게해주는오픈소스경량급애플리케이션프레임워크 스프링의기원 로드존슨 (Rod Johnson) 이라는유명 J2EE 개발자가출간한 Expert One-on- One J2EE Design and Development 이라는제목의책에소개된예제샘플

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

歯JavaExceptionHandling.PDF

歯JavaExceptionHandling.PDF (2001 3 ) from Yongwoo s Park Java Exception Handling Programming from Yongwoo s Park 1 Java Exception Handling Programming from Yongwoo s Park 2 1 4 11 4 4 try/catch 5 try/catch/finally 9 11 12 13 13

More information

<property name="configlocation" value="classpath:/egovframework/sqlmap/example/sql-map-config.xml"/> <property name="datasource" ref="datasource2"/> *

<property name=configlocation value=classpath:/egovframework/sqlmap/example/sql-map-config.xml/> <property name=datasource ref=datasource2/> * 표준프레임워크로구성된컨텐츠를솔루션에적용 1. sample( 게시판 ) 프로젝트생성 - egovframe Web Project next generate example finish 2. 프로젝트추가 - 프로젝트 Import 3. 프로젝트에 sample 프로젝트의컨텐츠를추가, 기능동작확인 ⓵ sample 프로젝트에서 프로젝트로복사 sample > egovframework

More information

<param-value> 파라미터의값 </param-value> </init-param> </servlet> <servlet-mapping> <url-pattern>/ 매핑문자열 </url-pattern> </servlet-mapping> - 위의예에서 ServletC

<param-value> 파라미터의값 </param-value> </init-param> </servlet> <servlet-mapping> <url-pattern>/ 매핑문자열 </url-pattern> </servlet-mapping> - 위의예에서 ServletC 내장객체의정리 헷갈리는내장객체들정리하기 - 컨테이너안에서는수많은객체들이스스로의존재목적에따라서일을한다. - ServletContext, ServletConfig 객체는컨텍스트초기화와서블릿초기화정보를가지고있다. - 이외에도다음의객체들이서블릿과 JSP와 EL에서각각의역할을수행한다. 서블릿의객체 JspWriter HttpServletRequest HttpServletResponse

More information

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET 135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26

More information

J2EE Concepts

J2EE Concepts ! Introduction to J2EE (1) - J2EE Servlet/JSP/JDBC iseminar.. 1544-3355 ( ) iseminar Chat. 1 Who Are We? Business Solutions Consultant Oracle Application Server 10g Business Solutions Consultant Oracle10g

More information

서블릿의라이프사이클 뇌를자극하는 JSP & Servlet

서블릿의라이프사이클 뇌를자극하는 JSP & Servlet 서블릿의라이프사이클 뇌를자극하는 JSP & Servlet Contents v 학습목표 서블릿클래스로부터서블릿객체가만들어지고, 서블릿객체가초기화되어서서블릿이되고, 서블릿이사용되고, 최종적으로소멸되기까지의전과정을서블릿의라이프사이클이라고한다. 이장에서는서브릿의라이프사이클에관련된프로그래밍기술을배워보자. v 내용 서블릿의라이프사이클 서블릿클래스의 init 메서드의 destroy

More information

중간고사

중간고사 중간고사 담당교수 : 단국대학교응용컴퓨터공학박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호 (4자리숫자 ) 를기입하면성적공고시학번대신암호를사용할것임. 1. JSP 란무엇인가? 간단히설명하라.

More information

웹 개발자를 위한 서블릿/JSP

웹 개발자를 위한 서블릿/JSP 2. HTTP 와서블릿 2.1 HTTP 이해하기 2.1.1 HTTP 동작방식 HTTP(Hypertext Transfer Protocol) 는웹서버와웹클라이언트웹브라우저간에통신하 ( ) 기위한프로토콜( 약속) 이다. CGI나서블릿프로그래밍을하기위해서는 HTTP 프로토콜을어느정도이해할필요성이있다. 이곳에서는간단하게 HTTP 프로토콜에대해알아보자. 웹브라우저는 HTTP

More information

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른 JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른 URL로바꿀수있다. 예 ) response.sendredirect("http://www.paran.com");

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

Microsoft PowerPoint Python-WebDB

Microsoft PowerPoint Python-WebDB 8. 웹과데이터베이스연결응용 순천향대학교컴퓨터공학과이상정 순천향대학교컴퓨터공학과 1 학습내용 파이썬과데이터베이스연결 웹과데이터베이스연결 로그인페이지예 순천향서핑대회예 순천향대학교컴퓨터공학과 2 파이썬과 SQLite3 연결 sqlite3 모듈을사용하여파이썬과 SQLite3 데이테베이스연동프로그램작성 데이터베이스연결을오픈, 종료및내보내기 sqlite3.connect(filename)

More information

MasoJava4_Dongbin.PDF

MasoJava4_Dongbin.PDF JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: MasoJava4_Dongbindoc Revision number: Issued by: < > SI, dbin@handysoftcokr

More information

Data Provisioning Services for mobile clients

Data Provisioning Services for mobile clients 4 장. JSP 의구성요소와스크립팅요소 제 4 장 스크립팅요소 (Scripting Element) 1) 지시문 (Directive) 1. JSP 구성요소소개 JSP 엔진및컨테이너, 즉 Tomcat 에게현재의 JSP 페이지처리와관련된정보를전달하는목적으로활용 (6 장 )

More information

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES 2012.02.18 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone 02-2108-8030 Fax 02-2108-8031 www.softbase.co.kr Copyright 2010 SOFTBase Inc. All rights reserved 목차 1 장 : HTML 연동개요...

More information

목차 JEUS EJB Session Bean가이드 stateful session bean stateful sample 가이드 sample source 결과확인 http session에

목차 JEUS EJB Session Bean가이드 stateful session bean stateful sample 가이드 sample source 결과확인 http session에 개념정리및샘플예제 EJB stateful sample 문서 2016. 01. 14 목차 JEUS EJB Session Bean가이드... 3 1. stateful session bean... 3 1.1 stateful sample 가이드... 3 1.1.1 sample source... 3 1.1.2 결과확인... 6 1.2 http session에서사용하기...

More information

교육2 ? 그림

교육2 ? 그림 Interstage 5 Apworks EJB Application Internet Revision History Edition Date Author Reviewed by Remarks 1 2002/10/11 2 2003/05/19 3 2003/06/18 EJB 4 2003/09/25 Apworks5.1 [ Stateless Session Bean ] ApworksJava,

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 PHP 와 MySQL 의연동 Jo, Heeseung Content MySQL을지원하는 PHP API 함수 과변수값전달 DB 테이블생성과데이터읽기성적관리프로그램제작 2 1.2 DB 테이블생성과레코드삽입 데이터베이스테이블구조설계 [ 표 7-1] 명함관리데이터베이스테이블 ( 테이블명 : biz_card) 필드명 타입 추가사항 설명 num int primary

More information

Microsoft PowerPoint - aj-lecture7.ppt [호환 모드]

Microsoft PowerPoint - aj-lecture7.ppt [호환 모드] Servlet 이해하기 웹 MVC 524730-1 2019 년봄학기 4/29/2019 박경신 Servlet 자바플랫폼에서컴포넌트기반의웹애플리케이션개발기술 JSP는서블릿기술에기반함 Servlet의프리젠테이션문제를해결하기위해 JSP가등장 이로인해웹애플리케이션의유지보수어려움심각. JSP 모델2가주목받으며다시서블릿에대한중요성부각 Servlet 변천 1 서블릿문제점대두

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 HTML5 웹프로그래밍입문 부록. 웹서버구축하기 1 목차 A.1 웹서버시스템 A.2 PHP 사용하기 A.3 데이터베이스연결하기 2 A.1 웹서버시스템 3 웹서버의구축 웹서버컴퓨터구축 웹서버소프트웨어설치및실행 아파치 (Apache) 웹서버가대표적 서버실행프로그램 HTML5 폼을전달받아처리 PHP, JSP, Python 등 데이터베이스시스템 서버측에데이터를저장및효율적관리

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

뇌를 자극하는 JSP & Servlet 슬라이드

뇌를 자극하는 JSP & Servlet 슬라이드 속성 & 리스너 JSP & Servlet 2/39 Contents 학습목표 클라이언트요청에의해서블릿이실행될때에컨테이너에의해제공되는내장객체의종류와역할, 그리고접근범위특성등을알아본다. 웹컴포넌트사이의데이터전달을위한내장객체에서의속성설정과이에따른이벤트처리방법에대해알아본다. 내용 서블릿의초기화환경을표현하는 ServletConfig 객체 웹애플리케이션의실행환경을표현하는

More information

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

PHP & ASP

PHP & ASP PHP 의시작과끝 echo ; Echo 구문 HTML과 PHP의 echo 비교 HTML과 PHP의 echo를비교해볼까요

More information

Data Provisioning Services for mobile clients

Data Provisioning Services for mobile clients 7 장. Form 처리와파일업로드 제 7 장 HTML 태그 1. 폼 (Form) 태그소개 사용자에게정보를요청하고적당한대답을얻어낼수있는텍스트박스나체크박스등을제공한다. 사용자로부터의정보를서버에게전달할수있는 submit( 전달 ) 버튼을제공한다. submit 버튼은새페이지 (JSP 에의해생성되는동적페이지 ) 를열기위해사용된다. 2/33 제 1 장

More information

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

var answer = confirm( 확인이나취소를누르세요.); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write( 확인을눌렀습니다.); else { document.write( 취소를눌렀습니다.); 자바스크립트 (JavaScript) - HTML 은사용자에게인터페이스 (interface) 를제공하는언어 - 자바스크립트는서버로데이터를전송하지않고서할수있는데이터처리를수행한다. - 자바스크립트는 HTML 나 JSP 에서작성할수있고 ( 내부스크립트 ), 별도의파일로도작성이가능하다 ( 외 부스크립트 ). - 내부스크립트 - 외부스크립트

More information

JAVA Bean & Session - Cookie

JAVA Bean & Session - Cookie JAVA Bean & Session - Cookie [ 우주최강미남 ] 발표내용소개 자바빈 (Java Bean) 자바빈의개요 자바빈의설계규약 JSP 에서자바빈사용하기 자바빈의영역 세션과쿠키 (Session & Cookie) 쿠키의개요 쿠키설정 (HTTP 서블릿 API) 세션의개요 JSP 에서의세션관리 Java Bean Q. 웹사이트를개발한다는것과자바빈?? 웹사이트라는것은크게디자이너와프로그래머가함께개발합니다.

More information

Data Provisioning Services for mobile clients

Data Provisioning Services for mobile clients 12 장. JSP 에서자바빈활용 자바빈 (JavaBean) 1. 자바빈 (JavaBean) 객체단위의관련데이터를저장및관리하는목적을지닌 Java 객체 데이터베이스와 JSP의중간에서데이터관리의매개체역할을한다. 자바빈활용의장점 데이터를객체단위로한데묶어서관리하는데에많은편리성이있다. 전체적으로 JSP 소스가깔끔해지는효과 자바빈구성요소 생성자 값을저장하는프로퍼티 (Property)

More information

HTML5

HTML5 주사위게임 류관희 충북대학교 주사위게임규칙 플레이어 두개의주사위를던졌을때두주사위윗면숫자의합 The First Throw( 두주사위의합 ) 합 : 7 혹은 11 => Win 합 : 2, 3, 혹은 12 => Lost 합 : 4, 5, 6, 8, 9, 10 => rethrow The Second Throw 합 : 첫번째던진주사위합과같은면 => Win 합 : 그렇지않으면

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 CHAPTER 14. HTML5 웹스토리지, 파일 API, 웹소켓 웹스토리지 웹스토리지 (web storage) 는클라이언트컴퓨터에데이터를저장하는메카니즘 웹스토리지는쿠키보다안전하고속도도빠르다. 약 5MB 정도까지저장이가능하다. 데이터는키 / 값 (key/value) 의쌍으로저장 localstorage 와 sessionstorage localstorage 객체

More information

Network Programming

Network Programming Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI

More information

chapter6.doc

chapter6.doc Chapter 6. http..? ID. ID....... ecrm(ebusiness )., ecrm.. Cookie.....,. 20, 300 4. JSP. Cookie API javax.servlet.http. 3. 1. 2. 3. API. Cookie(String name, String value). name value. setxxx. getxxx. public

More information

2파트-07

2파트-07 CHAPTER 07 Ajax ( ) (Silverlight) Ajax RIA(Rich Internet Application) Firefox 4 Ajax MVC Ajax ActionResult Ajax jquery Ajax HTML (Partial View) 7 3 GetOrganized Ajax GetOrganized Ajax HTTP POST 154 CHAPTER

More information

mytalk

mytalk 한국정보보호학회소프트웨어보안연구회 총괄책임자 취약점분석팀 안준선 ( 항공대 ) 도경구 ( 한양대 ) 도구개발팀도경구 ( 한양대 ) 시큐어코딩팀 오세만 ( 동국대 ) 전체적인 그림 IL Rules Flowgraph Generator Flowgraph Analyzer 흐름그래프 생성기 흐름그래프 분석기 O parser 중간언어 O 파서 RDL

More information

Chap12

Chap12 12 12Java RMI 121 RMI 2 121 RMI 3 - RMI, CORBA 121 RMI RMI RMI (remote object) 4 - ( ) UnicastRemoteObject, 121 RMI 5 class A - class B - ( ) class A a() class Bb() 121 RMI 6 RMI / 121 RMI RMI 1 2 ( 7)

More information

05-class.key

05-class.key 5 : 2 (method) (public) (private) (interface) 5.1 (Method), (public method) (private method) (constructor), 3 4 5.2 (client). (receiver)., System.out.println("Hello"); (client object) (receiver object)

More information

Javascript.pages

Javascript.pages JQuery jquery part1 JavaScript : e-mail:leseraphina@naver.com http://www.webhard.co.kr I.? 2 ......,,. : : html5 ; ; .

More information

12-file.key

12-file.key 11 (String).. java.lang.stringbuffer. s String s = "abcd"; s = s + "e"; a b c d e a b c d e ,., "910359,, " "910359" " " " " (token) (token),, (delimiter). java.util.stringtokenizer String s = "910359,,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage

More information

뇌를 자극하는 JSP & Servlet 슬라이드

뇌를 자극하는 JSP & Servlet 슬라이드 서블릿의기초 Servlet & JSP 2/70 Contents 학습목표 서블릿클래스는자바클래스형태로구현되는웹애플리케이션프로그램이며, 일반적인자바클래스를작성할때보다지켜야할규칙이많다. 이장에서는그규칙들을배워보자. 내용 서블릿이란? 웹컨테이너란? 서블릿클래스의작성, 컴파일, 설치, 등록 톰캣관리자프로그램사용하기 웹브라우저로부터데이터입력받기 3/70 1. 서블릿이란?

More information

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E >

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E > Chapter 8 데이터베이스응용개발 목차 사용자인터페이스와도구들 웹인터페이스와데이터베이스 웹기초 Servlet 과 JSP 대규모웹응용개발 ASP.Net 8 장. 데이터베이스응용개발 (Page 1) 1. 사용자인터페이스와도구들 대부분의데이터베이스사용자들은 SQL을사용하지않음 응용프로그램 : 사용자와데이터베이스를연결 데이터베이스응용의구조 Front-end Middle

More information

Data Provisioning Services for mobile clients

Data Provisioning Services for mobile clients 3 장. 웹어플리케이션과 JSP 및 Servlet 의이해 제 3 장 1. 웹어플리케이션개념및폴더구조 웹어플리케이션의개념 독립어플리케이션 (Stand-alone Application) 웹어플리케이션 (Web Application) 웹브라우저상에서수행되는어플리케이션 웹어플리케이션이 Tomcat 에서구현될때의규칙 임의의웹어플리케이션은 webapps 폴더하위에하나의폴더로구성

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

유니버설미들웨어프레임워크 - OSGi OSGi 개발환경구현 2 - OSGi Bundle 구현 지난시간에는 OSGi 개발환경구축에앞서 OSGi 애플리케이션구현을위한실행과개발환경에대해살펴봤다. 그흐름을이어서이번시간에는 OSGi 애플리케이션 (Bundle) 을직접구현하고 O

유니버설미들웨어프레임워크 - OSGi OSGi 개발환경구현 2 - OSGi Bundle 구현 지난시간에는 OSGi 개발환경구축에앞서 OSGi 애플리케이션구현을위한실행과개발환경에대해살펴봤다. 그흐름을이어서이번시간에는 OSGi 애플리케이션 (Bundle) 을직접구현하고 O 유니버설미들웨어프레임워크 - OSGi OSGi 개발환경구현 2 - OSGi Bundle 구현 지난시간에는 OSGi 개발환경구축에앞서 OSGi 애플리케이션구현을위한실행과개발환경에대해살펴봤다. 그흐름을이어서이번시간에는 OSGi 애플리케이션 (Bundle) 을직접구현하고 OSGi 프레임워크에등록, 수행, 테스트, 그리고원격관리를수행하는일련의번들라이프사이클을살펴보기로한다.

More information

09-interface.key

09-interface.key 9 Database insert(record r): boolean find(key k): Record 1 Record getkey(): Key * Record Key Database.? Key equals(key y): boolean Database insert(record r): boolean find(key k): Record * Database OK 1

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

EDB 분석보고서 (04.03) ~ Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. ** 5개이상발생한주요소프트웨어별상세 EDB 번호 종류 공격난이도 공격위험도 이름 소프트웨어이름 3037 SQL Inj

EDB 분석보고서 (04.03) ~ Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. ** 5개이상발생한주요소프트웨어별상세 EDB 번호 종류 공격난이도 공격위험도 이름 소프트웨어이름 3037 SQL Inj EDB 분석보고서 (04.03) 04.03.0~04.03.3 Exploit-DB(http://exploit-db.com) 에공개된별로분류한정보입니다. 분석내용정리 ( 작성 : 펜타시큐리티시스템보안성평가팀 ) 04년 03월에공개된 Exploit-DB의분석결과, 해커들이가장많이시도하는공격으로알려져있는 SQL Injection 공격에대한보고개수가가장많았습니다. 무엇보다주의가필요한부분은

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

본 강의에 들어가기 전

본 강의에 들어가기 전 웹서버프로그래밍 2 JSP 개요 01. JSP 개요 (1) 서블릿 (Servlet) 과 JSP(Java Server Page) 서블릿은자바를이용한서버프로그래밍기술 초기웹프로그래밍기술인 CGI(Common Gateway Interface) 를대체하기위해개발되었으나, 느린처리속도, 많은메모리요구, 불편한화면제어등의한계로 PHP, ASP 등서버스크립트언어등장 JSP

More information

Overall Process

Overall Process CSS ( ) Overall Process Overall Process (Contents : Story Board or Design Source) (Structure : extensible HyperText Markup Language) (Style : Cascade Style Sheet) (Script : Document Object Model) (Contents

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

JMF3_심빈구.PDF

JMF3_심빈구.PDF JMF JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: Revision number: Issued by: JMF3_ doc Issue Date:

More information

어댑터뷰

어댑터뷰 04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결

More information

내장서버로사용. spring-boot-starter-data-jpa : Spring Data JPA 사용을위한설정 spring-boot-devtools : 개발자도구를제공, 이도구는응용프로그램개발모드에서유 용한데코드가변경된경우서버를자동으로다시시작하는일들을한다. spri

내장서버로사용. spring-boot-starter-data-jpa : Spring Data JPA 사용을위한설정 spring-boot-devtools : 개발자도구를제공, 이도구는응용프로그램개발모드에서유 용한데코드가변경된경우서버를자동으로다시시작하는일들을한다. spri 6-20-4. Spring Boot REST CRUD 실습 (JPA, MariaDB) GitHub : https://github.com/leejongcheol/springbootrest 스프링부트에서 REST(REpresentational State Transfer) API 를실습해보자. RESTful 웹서비스는 JSON, XML 및기타미디어유형을생성하고활용할수있다.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 CHAPTER 11. 자바스크립트와캔버스로게임 만들기 캔버스 캔버스는 요소로생성 캔버스는 HTML 페이지상에서사각형태의영역 실제그림은자바스크립트를통하여코드로그려야한다. 컨텍스트객체 컨텍스트 (context) 객체 : 자바스크립트에서물감과붓의역할을한다. var canvas = document.getelementbyid("mycanvas"); var

More information

뇌를 자극하는 JSP & Servlet 슬라이드

뇌를 자극하는 JSP & Servlet 슬라이드 서블릿의라이프사이클 JSP & Servlet 2/39 Contents 학습목표 서블릿클래스로부터서블릿객체가만들어지고, 서블릿객체가초기화되어서서블릿이되고, 서블릿이사용되고, 최종적으로소멸되기까지의전과정을서블릿의라이프사이클이라고한다. 이장에서는서브릿의라이프사이클에관련된프로그래밍기술을배워보자. 내용 서블릿의라이프사이클 서블릿클래스의 init 메서드의 destroy

More information

Microsoft PowerPoint 세션.ppt

Microsoft PowerPoint 세션.ppt 웹프로그래밍 () 2006 년봄학기 문양세강원대학교컴퓨터과학과 세션변수 (Session Variable) (1/2) 쇼핑몰장바구니 장바구니에서는사용자가페이지를이동하더라도장바구니의구매물품리스트의내용을유지하고있어야함 PHP 에서사용하는일반적인변수는스크립트의수행이끝나면모두없어지기때문에페이지이동시변수의값을유지할수없음 이러한문제점을해결하기위해서 PHP 에서는세션 (session)

More information

Microsoft Word - Ch 17. Web Application with Spring MVC.doc

Microsoft Word - Ch 17. Web Application with Spring MVC.doc Chapter 17. Web Applications with Spring MVC * 개요 1. MVC구조 : model1 과 model2 를포함한 MVC구조에대해서언급한다. 2. Spring MVC : MVC구조의컴포넌트를 Spring웹애플리케이션내에서구현하는방법에대해언급한다. 3. controller : 컨트롤러를 Spring내에서구현하는방법과특정요청을다루는컨트롤러를구분하는방법을언급한다.

More information

3ÆÄÆ®-14

3ÆÄÆ®-14 chapter 14 HTTP >>> 535 Part 3 _ 1 L i Sting using System; using System.Net; using System.Text; class DownloadDataTest public static void Main (string[] argv) WebClient wc = new WebClient(); byte[] response

More information

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드] - Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소

More information

(Microsoft PowerPoint - 9\300\345.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - 9\300\345.ppt [\310\243\310\257 \270\360\265\345]) 제9장폼객체 객체다루기 학습목표 폼객체에서사용하는속성, 메소드, 이벤트핸들러를이해한다. 목록상자에서사용하는속성, 메소드, 이벤트핸들러를이해한다. 목차 9.1 form 객체 9.2 입력상자, 체크상자, 라디오버튼 9.3 목록상자 2 9.1 form 객체 폼은주로서버에어떤데이터를보내고자하는경우에많이사용한다. 태그를제어하는 form 객체의기본용법은다음과같다

More information

이장에서다룰내용 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2

이장에서다룰내용 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2 03 장. 테두리여백지정하는속성 이번장에서는테이블, 레이어, 폼양식등의더예쁘게꾸미기위해서 CSS 를이용하여 HTML 요소의테두리속성을바꾸어보자. 이장에서다룰내용 1 2 3 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2 01. 테두리를제어하는스타일시트 속성값설명 border-width border-left-width

More information

비긴쿡-자바 00앞부속

비긴쿡-자바 00앞부속 IT COOKBOOK 14 Java P r e f a c e Stay HungryStay Foolish 3D 15 C 3 16 Stay HungryStay Foolish CEO 2005 L e c t u r e S c h e d u l e 1 14 PPT API C A b o u t T h i s B o o k IT CookBook for Beginner Chapter

More information