토이프로젝트/ToAnime(만화속으로)

ToAnime(write.jsp)

하뀨뿅 2021. 7. 13. 23:36
728x90
반응형

write.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
   <!-- 스크립트 문장을 쓸 수 있도록 라이브러리 불러오기-->
<%@ page import="java.io.PrintWriter" %>
<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<meta name="viewport" content="width=device-width" initial-scale="1">
		<link rel="stylesheet" href="css/bootstrap.css"> 
		<link rel="stylesheet" href="css/custom.css"> 
		<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
		<script src="js/bootstrap.js"></script>
		<title>만화속으로 글쓰기</title>
	</head>
	<body>
		<% 
			// 메인 페이지로 이동했을 때 세션에 값이 담겨있는지 체크
			// 로그인이 된 사람들은 그 로그인 정보를 담을 수 있도록 만들어준다. 
			// 로그인 한 사람이라면 peopleID라는 변수에 해당 아이디가 담기고 그렇지 않으면 null값
			String peopleID = null;
			// 만약 현재 세션이 존재하면 그 아이디 값을 그대로 받아서 관리하도록
			// getAttribute() 는 Servlet간 공유하는 객체 반환 유형이 Object다. 
			// 이전에 다른 jsp또는 Servlet페이지에 설정된 매개 변수를 가져오는데 씀.
			if (session.getAttribute("peopleID") != null) {
				// String 형태로 형변환하고, 세션에 있는 값을 가져와서 userID 변수에 해당 아이디가 담긴다. 아니면 null값이 담긴다.
				peopleID = (String) session.getAttribute("peopleID");
			}
		
		%>
		<nav class="navbar navbar-default">
			<div class="navbor-header">
				<button type="button" class="navbar-toggle collapsed"
					data-toggle="collapse" data-target="#bs-example-navbor-collapse-1"
					aria-expanded="false">
					<span class="icon-bar"></span>	
					<span class="icon-bar"></span>	
					<span class="icon-bar"></span>	
				</button>
				<a class="navbar-brand" href="main.jsp">만화속으로</a>
			</div>
			<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
				<ul class="nav navbar-nav">
					<li class="active"><a href="main.jsp">메인</a></li>
					<li><a href="list.jsp">게시판</a></li>			
				</ul>
				<%	// 로그인이 되어 있지 않은경우만 나올 수 있게 
					// 로그인이 되어있지 않은 사람만! 회원가입이나 로그인이 나올 수 있도록 한다.
					if(peopleID == null) {
				%>
				<ul class="nav navbar-nav navbor-right">
					<li class="dropdown">
						<a href="#" class="dorpdown-toggle"
							data-toggle="dropdown" role="button" aria-haspopup="true"
							aria-expanded="false">접속하기<span class="caret"></span></a>
						<!-- 드랍다운 안에 내용 -->
						<ul class="dropdown-menu">
							<li class="active"><a href="login.jsp">로그인</a></li>
							<li><a href="join.jsp">회원가입</a></li>
						</ul>
					</li>
				</ul>
				<%	// 로그인이 되어있는 사람들만 보는것!
					} else{
				%>
					<ul class="nav navbar-nav navbor-right">
						<li class="dropdown">
							<a href="#" class="dorpdown-toggle"
								data-toggle="dropdown" role="button" aria-haspopup="true"
								aria-expanded="false">회원관리<span class="caret"></span></a>
							<ul class="dropdown-menu">
								<li><a href="logoutAction.jsp">로그아웃</a></li>
							</ul>
						</li>
					</ul>
				<% 
					}
				%>
			</div>
		</nav>
		<div class="container">
			<div class="row">
				<form method="post" action="writeAction.jsp">
					<table class="table table-striped" style="text-align:center; border:1px solid #dddddd">
						<thead>
							<tr>
								<th colspan="2" style="background-color:#eeeeee; text-align:center;">글쓰기</th>
							</tr>
						</thead>
						<tbody>
							<tr>
								<td>
									<input type="text" class="form-control" placeholder="만화 제목" name="animeTitle" maxlength="50">
								</td>
							</tr>
							<tr>
								<td class="form-contorl">장르<br>
									<input type="radio" class="form-contorl" name="animeType" value="판타지"> 판타지
									<input type="radio" class="form-contorl" name="animeType" value="로맨스"> 로맨스
									<input type="radio" class="form-contorl" name="animeType" value="공포"> 공포
									<input type="radio" class="form-contorl" name="animeType" value="시대극"> 시대극
									<input type="radio" class="form-contorl" name="animeType" value="SF"> SF(공상과학)
									<input type="radio" class="form-contorl" name="animeType" value="액션"> 액션
									<input type="radio" class="form-contorl" name="animeType" value="코미디"> 코미디
									<input type="radio" class="form-contorl" name="animeType" value="미스터리"> 미스터리
									<input type="radio" class="form-contorl" name="animeType" value="스포츠"> 스포츠
								</td>
							</tr>
							<tr>
								<td class="form-contorl">추천도🍭<br>								
									<input type="radio" class="form-contorl" name="animeCandy" value="1"> <label for="1">1점</label>
									<input type="radio" class="form-contorl" name="animeCandy" value="2"> <label for="2">2점</label>
									<input type="radio" class="form-contorl" name="animeCandy" value="3"> <label for="3">3점</label>
									<input type="radio" class="form-contorl" name="animeCandy" value="4"> <label for="4">4점</label>
									<input type="radio" class="form-contorl" name="animeCandy" value="5"> <label for="5">5점</label>
								</td>
							</tr>
							<tr>
								<td>
									<textarea class="form-control" placeholder="만화 내용" name="animeContent" maxlength="2048" style="height: 350px;"></textarea>
								</td>
							</tr>
						</tbody>
					</table>
					<input type="submit" onclick="return confirm('등록하시겠습니까?')" class="btn btn-primary pull-right" value="글쓰기">
				</form>
			</div>
		</div>
	</body>
</html>

writeAction.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!-- user패키지의 User.DAO클래스를 그대로 가져옴 
실질적으로 사용자가 로그인 시도 하려는걸 처리하는 페이지 -->
<%@ page import="animelist.AnimelistDAO" %>
<%@ page import="java.io.PrintWriter" %>
<%  request.setCharacterEncoding("UTF-8"); 
	response.setContentType("text/html; charset=UTF-8");
%>
<!-- User를 자바빈즈로 사용/ SCOPE 현재 페이지 안에서만 빈즈가 사용될 수 있게 한다. property 값을 저장할 수 있는 거 -->
<jsp:useBean id="animelist" class="animelist.Animelist" scope="page" />
<jsp:setProperty name="animelist" property="animeTitle" />
<jsp:setProperty name="animelist" property="animeContent" />
<jsp:setProperty name="animelist" property="animeType" />
<jsp:setProperty name="animelist" property="animeCandy" />

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>회원가입</title>
</head>
	<body>
		<%
		// 현재 세션 상태를 체크
			String peopleID = null;
		// 피플 아이디 이름으로 세션이 존재하는 회원들은
			if(session.getAttribute("peopleID") != null) {
		// 유저 아이디에 해당 세션값을 넣어준다.
				peopleID = (String) session.getAttribute("peopleID");
			} 
			if (peopleID == null) {
				PrintWriter script = response.getWriter();
				script.println("<script>");
				script.println("alert('로그인을 하세요.')");
				script.println("location.href = 'login.jsp'");
				script.println("</script>");
			} else {
				if(animelist.getAnimeTitle() == null || animelist.getAnimeContent() == null) {
					PrintWriter script = response.getWriter();
					script.println("<script>");
					script.println("alert('입력 되지 않은 사항이 있습니다.')");
					script.println("history.back()");
					script.println("</script>");
				} else {
					System.out.println(">>> " + animelist.toString());
					AnimelistDAO animelistDAO = new AnimelistDAO();
					int result = animelistDAO.write(animelist.getAnimeTitle(), peopleID, animelist.getAnimeContent(),
								 animelist.getAnimeType(), animelist.getAnimeCandy());
					// -1은 디비 오류
					if (result == -1) {
						PrintWriter script = response.getWriter();
						script.println("<script>");
						script.println("alert('글쓰기에 실패했습니다.')");
						script.println("history.back()");
						script.println("</script>");
					}
					// 나머지는 다 성공적으로 글이 작성되면 게시판화면으로 이동하게 한다.
					else {
						PrintWriter script = response.getWriter();
						script.println("<script>");
						script.println("location.href = 'list.jsp'");
						script.println("</script>");
					}
				}
			}
		%>
	</body>
</html>
728x90
반응형

'토이프로젝트 > ToAnime(만화속으로)' 카테고리의 다른 글

ToAnime(update.jsp)  (0) 2021.07.14
ToAnime(초기화면구상)  (0) 2021.07.12
ToAnime(list.jsp)  (0) 2021.07.12
ToAnime(index.jsp)  (0) 2021.07.12
ToAnime(logout.jsp)  (0) 2021.07.11