Spring
어제에 이어서 로그인 화면을 동작하는 내용이다.
MVC 아키텍처를 사용해 JSP로 구현하도록 한다.
login
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align="center">
<h1>로그인</h1>
<hr>
<form action="login_ok.jsp">
<table border=1>
<tr>
<td>아이디</td>
<td><input type=text name=id></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type=text name=password></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value="로그인"></td>
</tr>
</table>
</form>
</div>
</body>
</html>
login_ok
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import ="com.maju.k1.user.impl.*" %>
<%@page import ="com.maju.k1.user.*" %>
<%@page import ="java.util.*" %>
<%
String path = request.getContextPath();
String id = request.getParameter("id");
String password = request.getParameter("password");
UserVO vo = new UserVO();
vo.setId(id);
vo.setPassword(password);
UserService service = new UserServiceImpl();
List<UserVO> user = (List<UserVO>) service.getUser(vo);
System.out.println("====> 유저 확인 " + user);
if(user.isEmpty()){
response.sendRedirect("login.jsp");
}else{
response.sendRedirect(path+"/board/getBoardList.jsp");
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
user의 값이 잘 넘어오는지 프린트문으로 확인을 해야한다.
데이터에 존재하는 로그인 동작 시 리스트화면을 갈수 있도록 조건을 설정한다.
getBoardList
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import ="com.maju.k1.board.impl.*" %>
<%@page import ="com.maju.k1.board.*" %>
<%@page import ="java.util.*" %>
<%
BoardVO vo = new BoardVO();
BoardService service = new BoardServiceImpl();
List<BoardVO> li = service.getBoardList(vo);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align="center">
<h2>게시판 목록보기</h2>
<hr>
<table border=1>
<tr>
<td>번호</td><td>제목</td><td>내용</td>
<td>등록일</td><td>조회수</td>
</tr>
<%for (BoardVO m : li) { %>
<tr>
<td><%=m.getSeq() %></td>
<td><%=m.getTitle() %></td>
<td><%=m.getContent() %></td>
<td><%=m.getRegDate() %></td>
<td><%=m.getCnt() %></td>
</tr>
<% } %>
<tr>
<td colspan=5 align="center">
<select>
<option value="title">제목
<option value="content">내용
</select>
<input name="ch2" type=text >
<input type="submit" value="검색">
</td>
<tr>
</table>
</div>
</body>
</html>
전체 글 목록을 출력하도록 for문을 이용해 테이블의 레코드를 불러온다.
write
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align="center">
<h1>글 등록</h1>
<hr>
<form action="write_ok.jsp">
<table border=1>
<tr>
<td>제목</td>
<td><input type=text name=title></td>
</tr>
<tr>
<td>작성자</td>
<td><input type=text name=writer width=20></td>
</tr>
<tr>
<td>내용</td>
<td><textarea name=content cols=40 rows=5></textarea></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value="새글등록"></td>
</tr>
</table>
</form>
</div>
</body>
</html>
write_ok
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import ="com.maju.k1.board.impl.*" %>
<%@page import ="com.maju.k1.board.*" %>
<%@page import ="java.util.*" %>
<%
String path = request.getContextPath();
String title = request.getParameter("title");
String writer = request.getParameter("writer");
String content = request.getParameter("content");
BoardVO vo = new BoardVO();
vo.setTitle(title);
vo.setWriter(writer);
vo.setContent(content);
BoardService service = new BoardServiceImpl();
service.insertBoard(vo);
System.out.println("====> 글등록 확인 " + vo);
response.sendRedirect(path+"/board/getBoardList.jsp");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
새 글을 등록하고 등록된 값이 DB와 리스트에 추가되도록 설정한다.
동작 순서는 JSP > ServiceImpl > DaoInmpl 순으로 동작된다.
suvlet
package com.maju.k1.view.controller;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.maju.k1.board.BoardService;
import com.maju.k1.board.BoardVO;
import com.maju.k1.board.impl.BoardServiceImpl;
import com.maju.k1.user.UserService;
import com.maju.k1.user.UserVO;
import com.maju.k1.user.impl.UserServiceImpl;
/**
* Servlet implementation class DispatcherServlet
*/
public class DispatcherServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public DispatcherServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// // TODO Auto-generated method stub
// response.getWriter().append("Served at: ").append(request.getContextPath());
process(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
doGet(request, response);
}
private void process(HttpServletRequest request, HttpServletResponse response) throws IOException {
String path2 = request.getContextPath();
String uri = request.getRequestURI();
String path = uri.substring(uri.lastIndexOf("/"));
System.out.println("path : " + uri );
System.out.println("path : " + path );
HttpSession session = request.getSession();
if(path.equals("/login.do")) {
String id = request.getParameter("id");
String password = request.getParameter("password");
UserVO vo = new UserVO();
vo.setId(id);
vo.setPassword(password);
UserService service = new UserServiceImpl();
List<UserVO> user = (List<UserVO>) service.getUser(vo);
System.out.println("====> 유저 확인 " + user);
if(!user.isEmpty()){
UserVO m = user.get(0);
String name = m.getName();
session.setAttribute("name", name);
response.sendRedirect("getBoardList.do");
}else{
response.sendRedirect(path2+"/login/login.jsp");
}
}else if(path.equals("/logout.do")) {
session.invalidate();
response.sendRedirect(path2+"/index.jsp");
}else if(path.equals("/insertBoard.do")) {
String title = request.getParameter("title");
String writer = request.getParameter("writer");
String content = request.getParameter("content");
BoardVO vo = new BoardVO();
vo.setTitle(title);
vo.setWriter(writer);
vo.setContent(content);
BoardService service = new BoardServiceImpl();
service.insertBoard(vo);
System.out.println("====> 글등록 확인 " + vo);
response.sendRedirect("getBoardList.do");
}else if(path.equals("/updateBoard.do")) {
String seq = request.getParameter("seq");
String title = request.getParameter("title");
String writer = request.getParameter("writer");
String content = request.getParameter("content");
BoardVO vo = new BoardVO();
vo.setTitle(title);
vo.setWriter(writer);
vo.setContent(content);
vo.setSeq(Integer.parseInt(seq));
BoardService service = new BoardServiceImpl();
service.updateBoard(vo);
System.out.println("====> 글수정 확인 " + vo);
response.sendRedirect("getBoardList.do");
}else if(path.equals("/deleteBoard.do")) {
String seq = request.getParameter("seq");
BoardVO vo = new BoardVO();
vo.setSeq(Integer.parseInt(seq));
BoardService service = new BoardServiceImpl();
service.deleteBoard(vo);
System.out.println("====> 글삭제 확인 " + vo);
response.sendRedirect("getBoardList.do");
}else if(path.equals("/getBoard.do")) {
String seq = request.getParameter("seq");
BoardVO vo = new BoardVO();
vo.setSeq(Integer.parseInt(seq));
BoardService service = new BoardServiceImpl();
service.cntBoard(vo);
BoardVO m = service.getBoard(vo);
session.setAttribute("m", m);
response.sendRedirect(path2+"/board/getBoard.jsp");
}else if(path.equals("/getBoardList.do")) {
String ch1 = request.getParameter("ch1");
String ch2 = request.getParameter("ch2");
BoardVO vo = new BoardVO();
vo.setCh1(ch1);
vo.setCh2(ch2);
BoardService service = new BoardServiceImpl();
List<BoardVO> li = service.getBoardList(vo);
session.setAttribute("li", li);
response.sendRedirect(path2+"/board/getBoardList.jsp");
}
}
}
작성한 게시판 수정, 삽입, 삭제, 목록보기, 검색 동작을 완성한 뒤 Suvlet 파일로 모아 .do 동작을 위치로하여 동작을 이어붙일 수 있다.
어렵기도 하지만 정확한 경로를 알아내는것이 중요하다 !
꾸준하게 작성하고 반복하도록 하자 !