프로그래밍/Java_JSP 게시판 만들기

자바_JSP 게시판 만들기(2) content, Login기능

개발계발게발 2021. 6. 25. 17:14
반응형

게시판 content 출력

 

detail.jsp

<%@page import="com.knowhoon.dao.BoardDAO"%>
<%@page import="com.knowhoon.dto.BoardDTO"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
	pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
table{
	border: 1px gray solid;
	border-bottom: 3px gray solid;
	border-right: 3px gray solid;
	

	border-collapse: collapse;
	/* 	테이블 공백 제거 */

}
#title{
	background-color: gray;
}
</style>
<meta charset="EUC-KR">
<title>detail</title>
</head>
<body>
	<h1>detail</h1>
	<%
	// 파라미터로 들어오는 값을 변수에 저장하기
	String bno = request.getParameter("bno");
	//int?
	int strInt = Integer.parseInt(bno);
	//detail은 bno에 해당하는 레코드
	//하나를 화면에 출력해야 한다.
	//데이터베이스에게 질의
	//jsp -> java -> db -> java - > jsp
	//DAO를 활용해서 보내기
	//DAO에 detail(int) 이라는 메소드 만들어주기
	
	//객체 생성해서 값 받아오기
	BoardDAO dao = new BoardDAO();
	BoardDTO dto = dao.detail(strInt);
	
	%>


	전송된 bno =
	<%=strInt%><br>
	<br> 1. getP~ = ?물음표 뒤에 오는 이름=값을 잡는다. detail.jsp?no=12 이름을 no, 값
	12 여러개값이 동시에 올 때 dtail.jsp?no=12&num=100

	<hr>
	<table style="width: 600px;">
		<tr id="title">
			<td colspan="2" style="border-bottom: 1px solid gray; height: 35px;">
			제목 : <%=dto.getBtitle() %></td>
		</tr>
		<tr>
			<td><%=dto.getName() %>(<%=dto.getId() %>)</td>
			<td><%=dto.getBdate() %></td>
		</tr>
		<tr>
			<td><%=dto.getBcount() %></td>
			<td><%=dto.getBdate() %></td>
		</tr>
		<tr>
			<td colspan="2" style="height: 100px; border-top: 1px solid gray;">

			<%=dto.getBcontent() %></td>
		</tr>


	</table>

	<button><a href="./board.jsp">리스트로</a></button>
	<button onclick="location.href='./board.jsp'">리스트로</button>
	
	<input type="button" value="리스트로">

</body>
</html>

 

login.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
	pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>login</title>
<style type="text/css">
#loginbox {
	margin: 0 auto;
	min-height: 300px;
	width: 260px;
	background-color: #c0c0c0;
	text-align: center;
	padding: 10px;
}

#loginbox input {
	height: 20px;
	width:150px;
	margin-bottom: 5px;
	font-size: 10pt;
	color: red;
	font-weight: bold;
	font-fammily: 고딕체;
	text-align: center;
}
#loginbox button{

	width: 120px;
	height: 30px;
	margin-bottom: 5px;
}
#loginbox input[type="password"]{
	font-size:x-small;
	color: black;
}
</style>
</head>
<body>
	<h1>login</h1>

	<div id="loginbox">
		<img alt="" src="./login2.png"> 
		<form action="./loginAction.jsp" method="post">
			<input type="text" name="id" maxlength="15" placeholder="아이디를 입력하세요">
			<input type="password" name="pw" maxlength="20" placeholder="비밀번호를 입력하세요"><br>
			<button type="submit">LOGIN</button>
			<button type="reset">RESET</button>
		</form>

	</div>
</body>
</html>

 

LoginDTO.java

package com.knowhoon.dto;
//회원가입할때 email/id/pw/name만 받는다.
//no, id, pw, name, email
public class LoginDTO {
	private int no;
	private String id, pw, name, email;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPw() {
		return pw;
	}

	public void setPw(String pw) {
		this.pw = pw;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public int getNo() {
		return no;
	}

	public void setNo(int no) {
		this.no = no;
	}
		
}

 

LoginDAO.java

package com.knowhoon.dao;

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

import com.knowhoon.dto.LoginDTO;
import com.knowhoon.web.DBConnection;

public class LoginDAO {
	public LoginDTO loginAction(LoginDTO dto) {
		LoginDTO login = new LoginDTO();
//		DBConnection dbc = new DBConnection();
//		Connection conn = dbc.dbConn();
		Connection conn = new DBConnection().dbConn();
		ResultSet rs = null;
		PreparedStatement pstmt = null;
		
		String query = "SELECT * FROM login WHERE id=? AND pw=?";
	
		try {
			pstmt = conn.prepareStatement(query);
			pstmt.setString(1, dto.getId());	//물음표 위치에 어떤 값
			pstmt.setString(2, dto.getPw());	//적어주기 (위치, 값)
			rs = pstmt.executeQuery();
			if(rs.next()) {
				login.setNo(rs.getInt("no"));
				login.setName(rs.getString("name"));
				login.setId(rs.getString("id"));
				login.setPw(rs.getString("pw"));
				login.setEmail(rs.getString("email"));
				
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				if(rs != null) {rs.close(); }
				if(pstmt != null) {pstmt.close(); }
				if(conn != null) {conn.close(); }
			} catch (SQLException e) {
				e.printStackTrace();
			}			
		}		
		return login;		
	}	
}

 

login.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
	pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>login</title>
<style type="text/css">
#loginbox {
	margin: 0 auto;
	min-height: 300px;
	width: 260px;
	background-color: #c0c0c0;
	text-align: center;
	padding: 10px;
}

#loginbox input {
	height: 20px;
	width:150px;
	margin-bottom: 5px;
	font-size: 10pt;
	color: red;
	font-weight: bold;
	font-fammily: 고딕체;
	text-align: center;
}
#loginbox button{

	width: 120px;
	height: 30px;
	margin-bottom: 5px;
}
#loginbox input[type="password"]{
	font-size:x-small;
	color: black;
}
</style>
</head>
<body>
	<h1>login</h1>

	<div id="loginbox">
		<img alt="" src="./login2.png"> 
		<form action="./loginAction.jsp" method="post">
			<input type="text" name="id" maxlength="15" placeholder="아이디를 입력하세요">
			<input type="password" name="pw" maxlength="20" placeholder="비밀번호를 입력하세요"><br>
			<button type="submit">LOGIN</button>
			<button type="reset">RESET</button>
		</form>

	</div>
</body>
</html>

 

loginAction.jsp

<%@page import="com.knowhoon.dto.LoginDTO"%>
<%@page import="com.knowhoon.dao.LoginDAO"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Login Action</title>
</head>
<body>
	<h1>loginAction</h1>
	<%
	String id = request.getParameter("id");
	String pw = request.getParameter("pw");
	%>
	
	입력한 id는 <%=id %>입니다.<br>
	입력한 pw는 <%=pw %>입니다.<br>
	
	
	해야 할 일
	
	id/pw값을 자바로 보내기
	
	java는 db에 물어보기	loginDAO / loginDTO
	db는 결과값을 java에 리턴
	java는 받은 데이터를 판별하여 jsp에 찍는다.
	<hr>
	<%
	
	LoginDAO dao = new LoginDAO();
	LoginDTO dto = new LoginDTO();
	dto.setId(id);
	dto.setPw(pw);
	dto = dao.loginAction(dto);
	%>
	<h1>로그인 후 </h1>
	<%
	if(dto.getName() == null || dto.getName().equals(null)){
	//if(dto.getNO() == 0 && dto.getName() == null{
	%>
		로그인 해주세요
	<%
	}else{
	%>
			<%=dto.getName() %>님 환영합니다.
	<%	
	}
	%>
	
	

	
	<br><br><br>
	번호 : <%=dto.getNo() %><br>
	이름 : <%=dto.getName() %><br>
	ID : <%=dto.getId() %><br>
	PW : <%=dto.getPw() %><br>
	Email : <%=dto.getEmail() %>
	<hr>
</body>
</html>

 

반응형