본문 바로가기

IT일반과목/JSP

20180902 집공부12 (프로젝트)

JSP 게시판 만들고 간단히 구현







package bbs;

//게시판의 글을 관리하기 위한 것이다.
//Bbs라는 걸로 하나의 자바 빈즈가 만들어진것이다.
public class Bbs {
	
	private int bbsID;
	private String bbsTitle;
	private String userID;
	private String bbsDate;
	private String bbsContent;
	private int bbsAvailable;

	public int getBbsID() {
		return bbsID;
	}
	public void setBbsID(int bbsID) {
		this.bbsID = bbsID;
	}
	public String getBbsTitle() {
		return bbsTitle;
	}
	public void setBbsTitle(String bbsTitle) {
		this.bbsTitle = bbsTitle;
	}
	public String getUserID() {
		return userID;
	}
	public void setUserID(String userID) {
		this.userID = userID;
	}
	public String getBbsDate() {
		return bbsDate;
	}
	public void setBbsDate(String bbsDate) {
		this.bbsDate = bbsDate;
	}
	public String getBbsContent() {
		return bbsContent;
	}
	public void setBbsContent(String bbsContent) {
		this.bbsContent = bbsContent;
	}
	public int getBbsAvailable() {
		return bbsAvailable;
	}
	public void setBbsAvailable(int bbsAvailable) {
		this.bbsAvailable = bbsAvailable;
	}
	
	
	
}




package bbs;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class BbsDAO {

	private Connection conn=null; //데이터베이스를 접근하기 위한 객체
	//private PreparedStatement pstmt=null;
	private ResultSet res=null; //정보를 담을 수 있는 변수를 만들어 준다.


	//Oracle 처리부분
	public BbsDAO() {
		//생성자를 만들었다.

		try {
			//1. Driver 등록
			Class.forName("oracle.jdbc.driver.OracleDriver");

			//2. DBMS와 연결 (Connection 사용)
			conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","BBS", "1234");
			//첫번째는 연결 정보(DB종류, 타입, IP주소, 포트 등등)
			//두번째는 연결하는 DB의 ID(아이디)
			//세번째는 연결하는 ID의 PW(비밀번호)
			//get으로 읽어오는것이므로 저장하는 것이다.conn에 저장하는 것이다.
			System.out.println(conn);

		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	//게시판에 시간을 저장해줄 것이다.
	public String getDate() {

		String query="select sysdate from dual";
		//mysql에서는 select now();

		try {
			PreparedStatement pstmt = conn.prepareStatement(query);
			res = pstmt.executeQuery();
			if(res.next()) {
				return res.getString(1);
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return ""; //데이터베이스 오류

	}

	//게시판에 마지막 번호의 글에서 +1을 해야되니 그거때문에 가져올려는 것이다.
	public int getNext() {

		String query="select bbsid from bbs order by bbsid desc";
		//mysql 구문은 select bbsID from BBS order by bbsID desc;

		try {
			PreparedStatement pstmt = conn.prepareStatement(query);
			res = pstmt.executeQuery();
			if(res.next()) {
				return res.getInt(1)+1;//게시글에 다음번호를 쓰기 위해 1을 더했다.
			}
			return 1;//첫번째 게시물인 경우

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return -1; //데이터베이스 오류

	}

	//실제로 글을 작성하는 함수
	public int write(String bbsTitle, String userID, String bbsContent) {

		String query="insert into bbs values (?,?,?,?,?,?)";

		try {
			PreparedStatement pstmt = conn.prepareStatement(query);

			pstmt.setInt(1, getNext());
			pstmt.setString(2, bbsTitle);
			pstmt.setString(3, userID);
			pstmt.setString(4, getDate());
			pstmt.setString(5, bbsContent);
			pstmt.setInt(6, 1);


			return pstmt.executeUpdate();



		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return -1; //데이터베이스 오류

	}

	//게시판 목록 구현하기
	public ArrayList<Bbs> getList(int pageNumber) {
		String query="select * from (select * from bbs where bbsid <? and bbsAvailable=1 order by bbsID desc) where rownum<=10";
		
		/*
		 * "SELECT * FROM BBS WHERE bbsID < ? AND bbsAvailable = 1 ORDER BY bbsID DESC LIMIT 10";
  ArrayList<Bbs> list = new ArrayList<Bbs>();
		 */
		
		//Bbs에서나오는 걸 보관할수 있는 인스턴스를 만들자
		ArrayList<Bbs> list = new ArrayList<Bbs>();
		
		
		try {
			PreparedStatement pstmt = conn.prepareStatement(query);
			pstmt.setInt(1, getNext() - (pageNumber -1)*10);
			//게시글의 개수에 따라 값으로 나오게 할려고 그래서 6보다 작게 할려고 모든 글자가 다 나오게 할려고 이다.그래서 일부러 함수를 만든 것이다.
			res = pstmt.executeQuery();
			//System.out.println("여기에러");
			if(res.next()) {
				Bbs bbs = new Bbs();
				bbs.setBbsID(res.getInt(1));
				bbs.setBbsTitle(res.getString(2));
				bbs.setUserID(res.getString(3));
				bbs.setBbsDate(res.getString(4));
				bbs.setBbsContent(res.getString(5));
				bbs.setBbsAvailable(res.getInt(6));
				list.add(bbs);
				
			}
			

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return list;

	}
	
	//다음페이지 버튼이 없어야 한다.왜냐하면 글을 10개씩 출력을 하는데 없는경우 알려주거나 할려고 페이징처리를 위해 만들었다.
	//게시물이 10,20단위로 끊을때 게시물이 10개라면 다음 페이지가 없어야된다.
	public boolean nextPage(int pageNumber) {
		
		String query="select * from (select * from bbs where bbsid <? and bbsAvailable=1 order by bbsID desc) where rownum<=10";
		
		
		//String query="select * from bbs where bbsID < ? AND bbsAvailable = 1";
		
		
		
		try {
			PreparedStatement pstmt = conn.prepareStatement(query);
			pstmt.setInt(1, getNext() - (pageNumber - 1)*10);
			//게시글의 개수에 따라 값으로 나오게 할려고 그래서 6보다 작게 할려고 모든 글자가 다 나오게 할려고 이다.그래서 일부러 함수를 만든 것이다.
			res = pstmt.executeQuery();
			
			if(res.next()) {
				return true;//게시글 20개면 페이지 2개 , 게시글 21개면 3으로 늘어나는 것이다.
			}
			

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return false;

	}


}




package user;

public class User1 {

	private String userID;
	private String userPassword;
	private String userName;
	private String userGender;
	private String userEmail;
	public String getUserID() {
		return userID;
	}
	public void setUserID(String userID) {
		this.userID = userID;
	}
	public String getUserPassword() {
		return userPassword;
	}
	public void setUserPassword(String userPassword) {
		this.userPassword = userPassword;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserGender() {
		return userGender;
	}
	public void setUserGender(String userGender) {
		this.userGender = userGender;
	}
	public String getUserEmail() {
		return userEmail;
	}
	public void setUserEmail(String userEmail) {
		this.userEmail = userEmail;
	}
	

	
}




package user;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

//DBMS에 접근하는 클래스파일이다.
public class User1DAO {

	private Connection conn=null;
	private PreparedStatement pstmt=null;
	private ResultSet res=null;
	
	public User1DAO() {
		
	
		try {
			//1. Driver 등록
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			//2. DBMS와 연결 (Connection 사용)
			conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","BBS", "1234");
			//첫번째는 연결 정보(DB종류, 타입, IP주소, 포트 등등)
			//두번째는 연결하는 DB의 ID(아이디)
			//세번째는 연결하는 ID의 PW(비밀번호)
			//get으로 읽어오는것이므로 저장하는 것이다.conn에 저장하는 것이다.
			System.out.println(conn);
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	//회원 로그인 메소드를 만들 것이다.
	public int login(String userID, String userPassword) {
		String query="select userPassword from user1 where userID=?";
		
		try {
			pstmt=conn.prepareStatement(query);
			pstmt.setString(1, userID);
			res=pstmt.executeQuery();
			if(res.next()) {
				if(res.getString(1).equals(userPassword)) {
					return 1; //로그인 성공
				}
				else {
					return 0; //비밀번호 불일치
				}
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return -2; //데이터베이스 오류
		
	}
	
	//회원 가입 메소드를 만들것이다.
	public int join(User1 user) {
		String query = "insert into user1 values (?,?,?,?,?)";
		
		try {
			pstmt = conn.prepareStatement(query);
			
			pstmt.setString(1, user.getUserID());
			pstmt.setString(2, user.getUserPassword());
			pstmt.setString(3, user.getUserName());
			pstmt.setString(4, user.getUserGender());
			pstmt.setString(5, user.getUserEmail());
			
			//성공할 경우 0이상의 값이 들어간다.
			return pstmt.executeUpdate();
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return -1; //데이터베이스 오류
	}
	
	
	
}




<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
	<!--  지시어 삽입 스크립트 문장이 실행될수 있도록 할것이다. -->
	<%@ page import="java.io.PrintWriter" %>
	<%@ page import="bbs.BbsDAO" %>
	<%@ page import="bbs.Bbs" %>
	<%@ page import="java.util.ArrayList" %>
	
	
<!DOCTYPE html>
<html>
<head>
<meta httq-equiv="Content-Type" content="text/html; charset="UTF-8">

<!--  반응형 웹을 위해서 meta date를 넣어주었다. 핸드폰과 사이트 둘다 봤을때 깔끔하게 보이게 하기 위해서이다. -->
<meta name="viewport" content="width=device-width" , initial-scale="1">

<!-- 디자인을 담당하는 css가 참조가 되었다. -->
<link rel="stylesheet" href="css/bootstrap.css">

<title>JSP 게시판 웹 사이트</title>
</head>
<body>

	
	<%
		//로그인된사람은 로그인정보를 담을수 있도록 만들것이다.
		String userID=null;
		if(session.getAttribute("userID") != null){
			userID = (String) session.getAttribute("userID");
		}
	
		//몇번째 페이지인지 알려주기 위해서이다.
		int pageNumber=1;//기본 페이지를 의미한다.
		if(request.getParameter("pageNumber") !=null){
			pageNumber=Integer.parseInt(request.getParameter("pageNumber"));
			
		}
		
		
		
	%>





	<!-- 네비게이션을 구현할 것인데 네비게이션이란  하나의 웹사이트에 전반적인 구성을 보여주는 역할을 한다.-->
	<nav class="navbar navbar-default">
		<div class="navbar-header">
			<!-- 헤더라는건 홈페이지의 로고같은걸 넣는것이다. -->
			<button type="button" class="navbar-toggle collapsed"
				data-toggle="collapse" data-target="#bs-example-navbar-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">JSP 게시판 웹 사이트</a>
		</div>

		<!--  위에 data-target이름과 똑같은걸 넣어줘야한다. -->
		<div class="collapse navbar-collapse"
			id="bs-example-navbar-collapse-1">

			<!--  하나의 리스트 같은걸 보여줄때 사용하는 것이다. -->
			<ul class="nav navbar-nav">
			
			
				<li><a href="main.jsp">메인</a></li>
				<!-- 하나의 원소를 넣는 것이다. -->
				<li class="active"><a href="bbs.jsp">게시판</a></li>
				<!-- 하나의 원소를 넣는 것이다. -->
			</ul>
			
			<!-- 로그인 되어있지 않은 경우만 나오게 할것이다.즉 로그인 되어있지 않은 사람들이 볼 수 있는 화면 -->
			<%
				if(userID ==null){
					%>	
				<ul class="nav navbar-nav navbar-right">
				<!--  오른쪽에 넣어줄 것이다. -->
				<li class="dropdown"><a href="#" class="dropdown-toggle"
					data-toggle="dropdown" role="button" aria-haspopup="true"
					aria-expanded="false">접속하기<span class="caret"></span></a> <!-- #을 쓴이유는 가리키는 링크가 더이상 없다는걸 알려주는 것이다. -->

					<!--  접속하기버튼을 누르면 아래 뜨도록 할것이다. -->
					<ul class="dropdown-menu">
						<li><a href="login.jsp">로그인</a></li>
						<li><a href="join.jsp">회원가입</a></li>
			</ul>
			</li>
			</ul>
				
				<% 
				}else{
					%>
					<!--  로그인 되어있는 사람들이 볼수 있는 화면 -->
						<ul class="nav navbar-nav navbar-right">
				<!--  오른쪽에 넣어줄 것이다. -->
				<li class="dropdown"><a href="#" class="dropdown-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"><!-- 이거 방금 추가함  -->
	<!--  회색 비슷하게 갈것이다. -->
	<table class="table table-striped" style="text-align:center; border:1px solid #dddddd">
	
	<!--  테이블의 제목부분을 말하는 것으로서 가장 윗줄을 말하는 것이다. -->
	<thead>
	
	<!-- tr은 테이블하나의 행을 말한다. th는 하나의 속성을 말한다.-->
	<tr>
		<th style="background-color : #eeeeee; text-align: center;">번호</th>
		<th style="background-color : #eeeeee; text-align: center;">제목</th>
		<th style="background-color : #eeeeee; text-align: center;">작성자</th>
		<th style="background-color : #eeeeee; text-align: center;">작성일</th>
	</tr>
	</thead>
	
	<tbody>
	
	
		<!-- 게시글을 뽑아올수 있도록 할것이다. -->
		<%
		BbsDAO bbsDAO = new BbsDAO();//하나의 인스턴스 만들기
		ArrayList<Bbs> list = bbsDAO.getList(pageNumber);
		for(int i=0; i<list.size(); i++){
		
		out.println(list.size());
		out.println(pageNumber);
		//11, 12 
		%>
		
		<tr>
		<!-- 게시글을 가져올수 있게끔 만들어보기 -->
			<td><%= list.get(i).getBbsID() %></td> <!-- 값을 갖고와서 그대로 보여준다. -->
			<td><a href="view.jsp?bbsID=<%= list.get(i).getBbsID() %>"><%= list.get(i).getBbsTitle() %></a></td> 
			<td><%= list.get(i).getUserID() %></td> 
			<td><%= list.get(i).getBbsDate().substring(0,11)+ list.get(i).getBbsDate().substring(11, 13)+"시"+list.get(i).getBbsDate().substring(14,16)+"분" %></td> 
			
			</tr>
			
			
			<%
		}
			%>
			
	</tbody>
	</table>
	
	<%
		 		if(pageNumber != 1){
		 	%>
				<a href="bbs.jsp?pageNumber=<%=pageNumber - 1 %>" class="btn btn-success btn-arraw-left">이전</a>
		 	<%		
		 		} if(bbsDAO.nextPage(pageNumber + 1)){
		 	%>
		 		<a href="bbs.jsp?pageNumber=<%=pageNumber + 1 %>" class="btn btn-success btn-arraw-left">다음</a>
		 	<%
		 		}
		 	%>
	
	<a href="write.jsp" class="btn btn-primary pull-right">글쓰기</a>
	
	</div>
	</div>
	

	<!--
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.js"></script>
2가지가 있으면 정상 작동 될것이다.
   -->
	<!-- jquery를 여기서 갖고올 것이다.애니메이션을 담당하게 될 것이다.특정 홈페이지에서 갖고오도록 할것이다. -->
	<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

	<!-- 부트스트랩에서 기본적으로 제공하는 자바스크립트파일도 넣어줄 것이다. js폴더안에 bootstrap.js를 쓸것이다. -->
	<script src="js/bootstrap.js"></script>
</body>
</html>




<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta httq-equiv="Content-Type" content="text/html; charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<script>
location.href = "main.jsp"
</script>
Hello World
</body>
</html>




<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta httq-equiv="Content-Type" content="text/html; charset="UTF-8">

<!--  반응형 웹을 위해서 meta date를 넣어주었다. 핸드폰과 사이트 둘다 봤을때 깔끔하게 보이게 하기 위해서이다. -->
<meta name="viewport" content="width=device-width" , initial-scale="1">

<!-- 디자인을 담당하는 css가 참조가 되었다. -->
<link rel="stylesheet" href="css/bootstrap.css">

<title>JSP 게시판 웹 사이트</title>
</head>
<body>
	<!-- 네비게이션을 구현할 것인데 네비게이션이란  하나의 웹사이트에 전반적인 구성을 보여주는 역할을 한다.-->
	<nav class="navbar navbar-default">
		<div class="navbar-header">
			<!-- 헤더라는건 홈페이지의 로고같은걸 넣는것이다. -->
			<button type="button" class="navbar-toggle collapsed"
				data-toggle="collapse" data-target="#bs-example-navbar-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">JSP 게시판 웹 사이트</a>
		</div>

		<!--  위에 data-target이름과 똑같은걸 넣어줘야한다. -->
		<div class="collapse navbar-collapse"
			id="bs-example-navbar-collapse-1">

			<!--  하나의 리스트 같은걸 보여줄때 사용하는 것이다. -->
			<ul class="nav navbar-nav">
				<li><a href="main.jsp">메인</a></li>
				<!-- 하나의 원소를 넣는 것이다. -->
				<li><a href="main.jsp">게시판</a></li>
				<!-- 하나의 원소를 넣는 것이다. -->
			</ul>
			<ul class="nav navbar-nav navbar-right">
				<!--  오른쪽에 넣어줄 것이다. -->
				<li class="dropdown"><a href="#" class="dropdown-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>
		</div>
	</nav>

	<!--  로그인 양식을 만들어 볼것이다. -->
	<!--  마치하나의 컨테이너처럼 감싸주는걸 할것이다. -->
	<div class="container">
		<div class="col-lg-4"></div>
		<div class="col-lg-4"></div>
		<div class="jumbotron" style="padding-top: 20px;">

			<!-- post같은 경우 회원가입이나 로그인같이 숨기면서 보낼때 사용하는 것이다. -->
			<!--  joinAction페이지로 아래 내용것을 다 보낼것이다. -->
			<form method="post" action="joinAction.jsp">
				<h3 style="text-align: center;">회원가입 화면</h3>

				<!-- 회원가입이니 여기부분을 추가시킬 것이다. -->
				<div class="form-group">
					<!-- placeholder은 어떠한것도 입력되지 않았을때 나오게 할수 있는 것이다.아이디 길이 20으로 제한  -->
					<input type="text" class="form-control" placeholder="아이디"
						name="userID" maxlength="20">
				</div>

				<div class="form-group">
					<!-- placeholder은 어떠한것도 입력되지 않았을때 나오게 할수 있는 것이다.패스워드 길이 20으로 제한  -->
					<input type="password" class="form-control" placeholder="비밀번호"
						name="userPassword" maxlength="20">
				</div>

				<!--  이름을 넣는 것이다. -->
				<div class="form-group">
					<!-- placeholder은 어떠한것도 입력되지 않았을때 나오게 할수 있는 것이다.이름 길이 20으로 제한  -->
					<input type="text" class="form-control" placeholder="이름"
						name="userName" maxlength="20">
				</div>

				<!--  성별을 넣는 것이다. -->
				<div class="form-group" style="text-align: center;">
					<!--  성별을 넣을 것이다. -->
					<div class="btn-group" data-toggle="buttons">

						<!--  label 태그는 양식 입력창 을 설명하는 이름표이다 -->
						<label class="btn btn-primary active"> <input type="radio"
							name="userGender" autocomplete="off" value="남자" checked>남자
						</label> <label class="btn btn-primary"> <input type="radio"
							name="userGender" autocomplete="off" value="여자" checked>여자
						</label>
					</div>
				</div>
				
				<!--  이메일 만드는 것이다. type가 email형식이라 @를 넣어줘야한다.-->
				<div class="form-group">
					<input type="email" class="form-control" placeholder="이메일" name="userEmail" maxlength="20">
				</div>

				<input type="submit" class="btn btn-primary form-control"
					value="회원가입">


			</form>
		</div>
		<!--
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.js"></script>
2가지가 있으면 정상 작동 될것이다.
   -->
		<!-- jquery를 여기서 갖고올 것이다.애니메이션을 담당하게 될 것이다.특정 홈페이지에서 갖고오도록 할것이다. -->
		<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

		<!-- 부트스트랩에서 기본적으로 제공하는 자바스크립트파일도 넣어줄 것이다. js폴더안에 bootstrap.js를 쓸것이다. -->
		<script src="js/bootstrap.js"></script>
</body>
</html>




<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!--  지시어 기능이다. -->
<%@ page import="user.User1DAO"%>
<%@ page import="java.io.PrintWriter"%>
<%
	request.setCharacterEncoding("UTF-8");
%>

<!-- 로그인페이지에서 userID를 받아서 한명의 사용자에 userID에 넣어주는 것이다 이페이지에 넘어오는게 그대로 담겨질 것이다. -->
<!-- loginAction에서 값을 2개만 받아오면 되었지만 이건 가입하는거니 5개의 값을 갖고와야 한다. -->
<jsp:useBean id="user" class="user.User1" scope="page" />
<jsp:setProperty name="user" property="userID" />
<jsp:setProperty name="user" property="userPassword" />
<jsp:setProperty name="user" property="userName" />
<jsp:setProperty name="user" property="userGender" />
<jsp:setProperty name="user" property="userEmail" />





<!DOCTYPE html>
<html>
<head>
<meta httq-equiv="Content-Type" content="text/html; charset="UTF-8">


<title>JSP 게시판 웹 사이트</title>
</head>
<body>

	<!--  자바 코드를 삽입하기 위한 것이다.  -->

	<%
		//로그인된사람은 회원가입에 접속할 수 없게끔 만든것이다.
		String userID = null;
		if (session.getAttribute("userID") != null) {

			//userID가 세션된 값을 담을 수 있게 만든다.
			userID = (String) session.getAttribute("userID");
		}

		//로그인 한사람은 또 로그인 할 수 없도록 막을 것이다.
		if (userID != null) {
			PrintWriter script = response.getWriter();
			script.println("<script>");

			//-1일경우 아이디가 존재하지 않는다.
			script.println("alert('이미 로그인이 되어있습니다.')");

			//이전페이지로 돌려보내는것이다. 즉 로그인페이지로 돌려버리는 것이다.
			script.println("location.href='main.jsp'");
			script.println("</script>");
		}

		//입력이 안되었을 경우를 말하는 것이다.
		if (user.getUserID() == null || user.getUserPassword() == null || user.getUserName() == null
				|| user.getUserGender() == null || user.getUserEmail() == null) {
			PrintWriter script = response.getWriter();

			script.println("<script>");

			//입력이 안되었다고 출력하는 것이다.
			script.println("alert('입력이 안된 사항이 있습니다.')");

			//이전페이지로 돌려보내는것이다. 즉 로그인페이지로 돌려버리는 것이다.
			script.println("history.back()");
			script.println("</script>");
		} else {
			//로그인 페이지에서 값을 넣을경우 여기다가 저장을 하는 것이다.얻어오는건 getUserID랑 getUserpassword를 갖고올 것이다.
			User1DAO userDAO = new User1DAO();
			int result = userDAO.join(user); //user라는 인스턴스가 join함수를 쓰도록 할것이다.

			if (result == -1) {
				PrintWriter script = response.getWriter();
				script.println("<script>");

				//동일한 아이디를 거르는 것이다. 왜냐하면 ID는 primary key이기 때문이다.
				script.println("alert('아이디가 미리 존재합니다.')");

				//이전페이지로 돌려보내는것이다. 즉 로그인페이지로 돌려버리는 것이다.
				script.println("history.back()");
				script.println("</script>");
			} else {//회원가입이 이루어진 경우이다.
					//세션은 현재 접속한 회원에게 주는 고유한 ID이다.
				session.setAttribute("userID", user.getUserID());
				PrintWriter script = response.getWriter();
				script.println("<script>");

				script.println("location.href='main.jsp'");

				//이전페이지로 돌려보내는것이다. 즉 로그인페이지로 돌려버리는 것이다.
				script.println("</script>");
			}

		}
	%>


</body>
</html>




<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta httq-equiv="Content-Type" content="text/html; charset="UTF-8">

<!--  반응형 웹을 위해서 meta date를 넣어주었다. 핸드폰과 사이트 둘다 봤을때 깔끔하게 보이게 하기 위해서이다. -->
<meta name="viewport" content="width=device-width" , initial-scale="1">

<!-- 디자인을 담당하는 css가 참조가 되었다. -->
<link rel="stylesheet" href="css/bootstrap.css">

<title>JSP 게시판 웹 사이트</title>
</head>
<body>
	<!-- 네비게이션을 구현할 것인데 네비게이션이란  하나의 웹사이트에 전반적인 구성을 보여주는 역할을 한다.-->
	<nav class="navbar navbar-default">
		<div class="navbar-header">
			<!-- 헤더라는건 홈페이지의 로고같은걸 넣는것이다. -->
			<button type="button" class="navbar-toggle collapsed"
				data-toggle="collapse" data-target="#bs-example-navbar-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">JSP 게시판 웹 사이트</a>
		</div>

		<!--  위에 data-target이름과 똑같은걸 넣어줘야한다. -->
		<div class="collapse navbar-collapse"
			id="bs-example-navbar-collapse-1">

			<!--  하나의 리스트 같은걸 보여줄때 사용하는 것이다. -->
			<ul class="nav navbar-nav">
				<li><a href="main.jsp">메인</a></li>
				<!-- 하나의 원소를 넣는 것이다. -->
				<li><a href="main.jsp">게시판</a></li>
				<!-- 하나의 원소를 넣는 것이다. -->
			</ul>
			<ul class="nav navbar-nav navbar-right">
				<!--  오른쪽에 넣어줄 것이다. -->
				<li class="dropdown"><a href="#" class="dropdown-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>
		</div>
	</nav>
	
	<!--  로그인 양식을 만들어 볼것이다. -->
	<!--  마치하나의 컨테이너처럼 감싸주는걸 할것이다. -->
	<div class="container">
	<div class="col-lg-4"></div>
	<div class="col-lg-4"></div>
	<div class="jumbotron" style="padding-top: 20px;">
	
	<!-- post같은 경우 회원가입이나 로그인같이 숨기면서 보낼때 사용하는 것이다. -->
	<form method="post" action="loginAction.jsp">
		<h3 style="text-align: center;">로그인 화면</h3>
		<div class="form-group">
		<!-- placeholder은 어떠한것도 입력되지 않았을때 나오게 할수 있는 것이다.아이디 길이 20으로 제한  -->
		<input type="text" class="form-control" placeholder="아이디" name="userID" maxlength="20">
		</div>
		
		<div class="form-group">
		<!-- placeholder은 어떠한것도 입력되지 않았을때 나오게 할수 있는 것이다.패스워드 길이 20으로 제한  -->
		<input type="password" class="form-control" placeholder="비밀번호" name="userPassword" maxlength="20">
		</div>
		
		<input type="submit" class="btn btn-primary form-control" value="로그인">
		
		
	</form>
	</div>
	<!--
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.js"></script>
2가지가 있으면 정상 작동 될것이다.
   -->
	<!-- jquery를 여기서 갖고올 것이다.애니메이션을 담당하게 될 것이다.특정 홈페이지에서 갖고오도록 할것이다. -->
	<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

	<!-- 부트스트랩에서 기본적으로 제공하는 자바스크립트파일도 넣어줄 것이다. js폴더안에 bootstrap.js를 쓸것이다. -->
	<script src="js/bootstrap.js"></script>
</body>
</html>




<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
	<!--  지시어 기능이다. -->
	<%@ page import="user.User1DAO" %>
	<%@ page import="java.io.PrintWriter" %>
	<% request.setCharacterEncoding("UTF-8"); %>
	
	<!-- 로그인페이지에서 userID를 받아서 한명의 사용자에 userID에 넣어주는 것이다 이페이지에 넘어오는게 그대로 담겨질 것이다. -->
	<jsp:useBean id="user" class="user.User1" scope="page" />
	<jsp:setProperty name="user" property="userID" />
	<jsp:setProperty name="user" property="userPassword" />
	
	
	
	
<!DOCTYPE html>
<html>
<head>
<meta httq-equiv="Content-Type" content="text/html; charset="UTF-8">


<title>JSP 게시판 웹 사이트</title>
</head>
<body>

<!--  자바 코드를 삽입하기 위한 것이다.  -->

<%

	String userID=null;
	if(session.getAttribute("userID")!= null){
		
		//userID가 세션된 값을 담을 수 있게 만든다.
		userID = (String) session.getAttribute("userID");
	}
	
	//로그인 한사람은 또 로그인 할 수 없도록 막을 것이다.
	if(userID !=null){
		PrintWriter script = response.getWriter();
		script.println("<script>");
		
		//-1일경우 아이디가 존재하지 않는다.
		script.println("alert('이미 로그인이 되어있습1니다.')");
		
		//이전페이지로 돌려보내는것이다. 즉 로그인페이지로 돌려버리는 것이다.
		script.println("location.href='main.jsp'");
		script.println("</script>");
	}


//로그인 페이지에서 값을 넣을경우 여기다가 저장을 하는 것이다.얻어오는건 getUserID랑 getUserpassword를 갖고올 것이다.
	User1DAO userDAO = new User1DAO();
	int result=userDAO.login(user.getUserID(), user.getUserPassword());
	
	if(result==1){
		
		//세션은 현재 접속한 회원에게 주는 고유한 ID이다.
		session.setAttribute("userID", user.getUserID());
		
		PrintWriter script = response.getWriter();
		script.println("<script>");
		//로그인 성공시 이페이지 넘어가게끔 할것이다.
		script.println("location.href='main.jsp'");
		script.println("</script>");
	}
		else if(result==0){
			PrintWriter script = response.getWriter();
			script.println("<script>");
			
			//0일경우 비밀번호가 틀린 경우이다.
			script.println("alert('비밀번호가 틀립니다.')");
			
			//이전페이지로 돌려보내는것이다. 즉 로그인페이지로 돌려버리는 것이다.
			script.println("history.back()");
			script.println("</script>");
	}
		else if(result==-1){//아이디가 없는 경우이다.
			PrintWriter script = response.getWriter();
			script.println("<script>");
			
			//-1일경우 아이디가 존재하지 않는다.
			script.println("alert('존재하지 않는 아이디입니다.')");
			
			//이전페이지로 돌려보내는것이다. 즉 로그인페이지로 돌려버리는 것이다.
			script.println("history.back()");
			script.println("</script>");
	}
		else if(result==-2){//이거인경우엔 user1DAO에 리턴값을 -2 해놓았기때문이다.
			PrintWriter script = response.getWriter();
			script.println("<script>");
			
			//로그인 성공시 이페이지 넘어가게끔 할것이다.
			script.println("alert('데이터베이스 오류가 발생했습니다.')");
			
			//이전페이지로 돌려보내는것이다. 즉 로그인페이지로 돌려버리는 것이다.
			script.println("history.back()");
			script.println("</script>");
	}
%>


</body>
</html>




<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>


<!DOCTYPE html>
<html>
<head>
<meta httq-equiv="Content-Type" content="text/html; charset="UTF-8">


<title>JSP 게시판 웹 사이트</title>
</head>
<body>

	<!--  자바 코드를 삽입하기 위한 것이다.  -->

	<%
		//로그아웃 할경우 세션의 값을 없앨 것이다.
		session.invalidate();
	%>
	<!-- main.jsp으로 가면 끝이다. -->
	<script>
		location.href = 'main.jsp';
	</script>


</body>
</html>




<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
	<!--  지시어 삽입 스크립트 문장이 실행될수 있도록 할것이다. -->
	<%@ page import="java.io.PrintWriter" %>
	
<!DOCTYPE html>
<html>
<head>
<meta httq-equiv="Content-Type" content="text/html; charset="UTF-8">

<!--  반응형 웹을 위해서 meta date를 넣어주었다. 핸드폰과 사이트 둘다 봤을때 깔끔하게 보이게 하기 위해서이다. -->
<meta name="viewport" content="width=device-width" , initial-scale="1">

<!-- 디자인을 담당하는 css가 참조가 되었다. -->
<link rel="stylesheet" href="css/bootstrap.css">

<title>JSP 게시판 웹 사이트</title>
</head>
<body>

	
	<%
		//로그인된사람은 로그인정보를 담을수 있도록 만들것이다.
		String userID=null;
		if(session.getAttribute("userID") != null){
			userID = (String) session.getAttribute("userID");
		}
	
	%>


	<!-- 네비게이션을 구현할 것인데 네비게이션이란  하나의 웹사이트에 전반적인 구성을 보여주는 역할을 한다.-->
	<nav class="navbar navbar-default">
		<div class="navbar-header">
			<!-- 헤더라는건 홈페이지의 로고같은걸 넣는것이다. -->
			<button type="button" class="navbar-toggle collapsed"
				data-toggle="collapse" data-target="#bs-example-navbar-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">JSP 게시판 웹 사이트</a>
		</div>

		<!--  위에 data-target이름과 똑같은걸 넣어줘야한다. -->
		<div class="collapse navbar-collapse"
			id="bs-example-navbar-collapse-1">

			<!--  하나의 리스트 같은걸 보여줄때 사용하는 것이다. -->
			<ul class="nav navbar-nav">
			
			<!-- 메인페이지에 class=active를 넣을 것이다.현재 접속한 페이지가 메인페이지라고 알려주면 된다. -->
				<li class="active"><a href="main.jsp">메인</a></li>
				<!-- 하나의 원소를 넣는 것이다. -->
				<li><a href="bbs.jsp">게시판</a></li>
				<!-- 하나의 원소를 넣는 것이다. -->
			</ul>
			
			<!-- 로그인 되어있지 않은 경우만 나오게 할것이다.즉 로그인 되어있지 않은 사람들이 볼 수 있는 화면 -->
			<%
				if(userID ==null){
					%>	
				<ul class="nav navbar-nav navbar-right">
				<!--  오른쪽에 넣어줄 것이다. -->
				<li class="dropdown"><a href="#" class="dropdown-toggle"
					data-toggle="dropdown" role="button" aria-haspopup="true"
					aria-expanded="false">접속하기<span class="caret"></span></a> <!-- #을 쓴이유는 가리키는 링크가 더이상 없다는걸 알려주는 것이다. -->

					<!--  접속하기버튼을 누르면 아래 뜨도록 할것이다. -->
					<ul class="dropdown-menu">
						<li><a href="login.jsp">로그인</a></li>
						<li><a href="join.jsp">회원가입</a></li>
			</ul>
			</li>
			</ul>
				
				<% 
				}else{
					%>
					<!--  로그인 되어있는 사람들이 볼수 있는 화면 -->
						<ul class="nav navbar-nav navbar-right">
				<!--  오른쪽에 넣어줄 것이다. -->
				<li class="dropdown"><a href="#" class="dropdown-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>
	

	<!--
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.js"></script>
2가지가 있으면 정상 작동 될것이다.
   -->
	<!-- jquery를 여기서 갖고올 것이다.애니메이션을 담당하게 될 것이다.특정 홈페이지에서 갖고오도록 할것이다. -->
	<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

	<!-- 부트스트랩에서 기본적으로 제공하는 자바스크립트파일도 넣어줄 것이다. js폴더안에 bootstrap.js를 쓸것이다. -->
	<script src="js/bootstrap.js"></script>
</body>
</html>




<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!--  지시어 삽입 스크립트 문장이 실행될수 있도록 할것이다. -->
<%@ page import="java.io.PrintWriter"%>

<!DOCTYPE html>
<html>
<head>
<meta httq-equiv="Content-Type" content="text/html; charset="UTF-8">

<!--  반응형 웹을 위해서 meta date를 넣어주었다. 핸드폰과 사이트 둘다 봤을때 깔끔하게 보이게 하기 위해서이다. -->
<meta name="viewport" content="width=device-width" , initial-scale="1">

<!-- 디자인을 담당하는 css가 참조가 되었다. -->
<link rel="stylesheet" href="css/bootstrap.css">

<title>JSP 게시판 웹 사이트</title>
</head>
<body>


	<%
		//로그인된사람은 로그인정보를 담을수 있도록 만들것이다.
		String userID = null;
		if (session.getAttribute("userID") != null) {
			userID = (String) session.getAttribute("userID");
		}
	%>





	<!-- 네비게이션을 구현할 것인데 네비게이션이란  하나의 웹사이트에 전반적인 구성을 보여주는 역할을 한다.-->
	<nav class="navbar navbar-default">
		<div class="navbar-header">
			<!-- 헤더라는건 홈페이지의 로고같은걸 넣는것이다. -->
			<button type="button" class="navbar-toggle collapsed"
				data-toggle="collapse" data-target="#bs-example-navbar-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">JSP 게시판 웹 사이트</a>
		</div>

		<!--  위에 data-target이름과 똑같은걸 넣어줘야한다. -->
		<div class="collapse navbar-collapse"
			id="bs-example-navbar-collapse-1">

			<!--  하나의 리스트 같은걸 보여줄때 사용하는 것이다. -->
			<ul class="nav navbar-nav">


				<li><a href="main.jsp">메인</a></li>
				<!-- 하나의 원소를 넣는 것이다. -->
				<li class="active"><a href="bbs.jsp">게시판</a></li>
				<!-- 하나의 원소를 넣는 것이다. -->
			</ul>

			<!-- 로그인 되어있지 않은 경우만 나오게 할것이다.즉 로그인 되어있지 않은 사람들이 볼 수 있는 화면 -->
			<%
				if (userID == null) {
			%>
			<ul class="nav navbar-nav navbar-right">
				<!--  오른쪽에 넣어줄 것이다. -->
				<li class="dropdown"><a href="#" class="dropdown-toggle"
					data-toggle="dropdown" role="button" aria-haspopup="true"
					aria-expanded="false">접속하기<span class="caret"></span></a> <!-- #을 쓴이유는 가리키는 링크가 더이상 없다는걸 알려주는 것이다. -->

					<!--  접속하기버튼을 누르면 아래 뜨도록 할것이다. -->
					<ul class="dropdown-menu">
						<li><a href="login.jsp">로그인</a></li>
						<li><a href="join.jsp">회원가입</a></li>
					</ul></li>
			</ul>

			<%
				} else {
			%>
			<!--  로그인 되어있는 사람들이 볼수 있는 화면 -->
			<ul class="nav navbar-nav navbar-right">
				<!--  오른쪽에 넣어줄 것이다. -->
				<li class="dropdown"><a href="#" class="dropdown-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는 하나의 속성을 말한다.-->
						<tr>

							<!-- 2개의 열만 들어갈수 있도록 해보겠다. -->
							<th colspan="2"
								style="background-color: #eeeeee; text-align: center;">게시판
								글쓰기 양식</th>

						</tr>
					</thead>

					<tbody>
						<tr>
							<!-- 한개의 예시 데이터를 넣어볼 것이다. -->
							<td><input type="text" class="form-control"
								placeholder="글 제목" name="bbsTitle" maxlength="50"></td>
						</tr>
						<tr>
							<!--  장문의 글을 작성할때 textarea를 쓴다. 크기가 커지지 않게 350으로 고정하겠다.-->
							<td><textarea class="form-control" placeholder="글 내용"
									name="bbsContent" maxlength="2048" style="height: 350px"></textarea></td>
						</tr>
					</tbody>

				</table>
				<input type="submit" class="btn btn-primary pull-right" value="글쓰기">
			</form>
		</div>
	</div>


	<!--
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.js"></script>
2가지가 있으면 정상 작동 될것이다.
   -->
	<!-- jquery를 여기서 갖고올 것이다.애니메이션을 담당하게 될 것이다.특정 홈페이지에서 갖고오도록 할것이다. -->
	<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>

	<!-- 부트스트랩에서 기본적으로 제공하는 자바스크립트파일도 넣어줄 것이다. js폴더안에 bootstrap.js를 쓸것이다. -->
	<script src="js/bootstrap.js"></script>
</body>
</html>




<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!--  지시어 기능이다. -->
<%@ page import="bbs.BbsDAO"%>
<%@ page import="java.io.PrintWriter"%>
<%
	request.setCharacterEncoding("UTF-8");
%>

<!-- 로그인페이지에서 userID를 받아서 한명의 사용자에 userID에 넣어주는 것이다 이페이지에 넘어오는게 그대로 담겨질 것이다. -->

<jsp:useBean id="bbs" class="bbs.Bbs" scope="page" />
<jsp:setProperty name="bbs" property="bbsTitle" />
<jsp:setProperty name="bbs" property="bbsContent" />







<!DOCTYPE html>
<html>
<head>
<meta httq-equiv="Content-Type" content="text/html; charset="UTF-8">


<title>JSP 게시판 웹 사이트</title>
</head>
<body>

	<!--  자바 코드를 삽입하기 위한 것이다.  -->

	<%
		//로그인된사람은 회원가입에 접속할 수 없게끔 만든것이다.
		String userID = null;
		if (session.getAttribute("userID") != null) { //유저아이디이름으로 세션이 존재하는 회원들은

			//userID가 세션된 값을 담을 수 있게 만든다.
			userID = (String) session.getAttribute("userID"); //유저아이디에 해당 세션값을 넣어준다.
		}

		//로그인 한사람은 또 로그인 할 수 없도록 막을 것이다.
		if (userID == null) {
			PrintWriter script = response.getWriter();
			script.println("<script>");
			script.println("alert('로그인을 하세요')");
			//이전페이지로 돌려보내는것이다. 즉 로그인페이지로 돌려버리는 것이다.
			script.println("location.href='login.jsp'");
			script.println("</script>");
		}else{
			//입력이 안되었을 경우를 말하는 것이다.
			if (bbs.getBbsTitle() == null || bbs.getBbsContent()==null) {
				PrintWriter script = response.getWriter();

				script.println("<script>");

				//입력이 안되었다고 출력하는 것이다.
				script.println("alert('입력이 안된 사항이 있습니다.')");

				//이전페이지로 돌려보내는것이다. 즉 로그인페이지로 돌려버리는 것이다.
				script.println("history.back()");
				script.println("</script>");
			} else {
				//로그인 페이지에서 값을 넣을경우 여기다가 저장을 하는 것이다.얻어오는건 getUserID랑 getUserpassword를 갖고올 것이다.
				BbsDAO bbsDAO = new BbsDAO();
				int result = bbsDAO.write(bbs.getBbsTitle(),userID,bbs.getBbsContent()); 
				//int result = bbsDAO.write(bbs.getBbsTitle(),userID,bbs.getBbsContent()); 였다.
				if (result == -1) {
					PrintWriter script = response.getWriter();
					script.println("<script>");

					
					script.println("alert('글쓰기에 실패했습니다.')");

					//이전페이지로 돌려보내는것이다. 즉 로그인페이지로 돌려버리는 것이다.
					script.println("history.back()");
					script.println("</script>");
				} else {//회원가입이 이루어진 경우이다.
						//세션은 현재 접속한 회원에게 주는 고유한 ID이다.
					
					PrintWriter script = response.getWriter();
					script.println("<script>");

					script.println("location.href='bbs.jsp'");

					script.println("</script>");
				}

			}
		}

		
	%>


</body>
</html>












'IT일반과목 > JSP' 카테고리의 다른 글

20180902 집공부14 (프로젝트 게시판기능)  (0) 2018.09.02
20180902 집공부13 (프로젝트1)  (0) 2018.09.02
20180831 집공부11  (0) 2018.08.31
20180831 집공부10  (0) 2018.08.31
20180829 집공부9  (0) 2018.08.29