728x90
1. Login View (login.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JAVA developers</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src = "https://code.jquery.com/jquery-3.5.1.min.js"></script>
<link rel="stylesheet" href="RoginPageJava.css">
<script src="https://kit.fontawesome.com/51db22a717.js" crossorigin="anonymous"></script>
<link href="https://fonts.googleapis.com/css2?family=Alata&display=swap" rel="stylesheet">
<script src="http://lab.alexcican.com/set_cookies/cookie.js" type="text/javascript" ></script>
</head>
<body>
<form action="loginAf.jsp" method = "post">
<div class="page-container">
<div class="login-form-container shadow">
<div class="login-form-right-side">
<div class="top-logo-wrap">
</div>
<h1><b>Welcome to the <br>Backend Developers Site</b></h1>
<h4>HomePage</h4>
</div>
<div class="login-form-left-side">
<div class="login-top-wrap">
<span>๊ณ์ ์ ๋ง๋ค์ด๋ณด์ธ์!</span>
<button type = "button" class="create-account-btn shadow-light" onclick = "account()">ํ์๊ฐ์
</button>
</div>
<div class="login-input-container">
<h3 class="heading text__web-h5 grid-panel-web__title" data-testid="panel-title">
๋ก๊ทธ์ธ</h3>
<div class="login-input-wrap input-id">
<i class="far fa-envelope"></i>
<input placeholder="์์ด๋" id = "_id" name ="id" class = "idname" type="text">
</div>
<div class="login-input-wrap input-password">
<i class="fas fa-key"></i>
<!-- ๋น๋ฒ ๊ฐฏ์ ์ ํ -->
<input placeholder="ํจ์ค์๋" id = "_pass" name ="pwd" class = "idname" maxlength = "10" type="password">
</div>
<br>
<div class="login-top-wrap">
<input type="checkbox" class="checkbox" id = "chk_save_id"><span> Remember your id</span>
<input type="checkbox" class="checkbox"><span> Keep login</span>
</div>
</div>
<div class="login-btn-wrap">
<button class="btn btn-lg btn-primary btn-block" type="submit"
>๋ก๊ทธ์ธ</button>
<a href="#" >๋น๋ฐ๋ฒํธ์ฐพ๊ธฐ</a>
</div>
</div>
</div>
</div>
</form>
<script type="text/javascript">
/* function rogbtn(){
/* if($("#idname").val() == ""){
alert("๊ณ์ ์ด๋ฆ์ ์
๋ ฅํด์ฃผ์ธ์!");
} */
function account() {
location.href = "regi.jsp";
}
let user_id = $.cookie("user_id");
if(user_id != null){
//์ ์ฅ๋ ์์ด๋๊ฐ ์๋ค๋ฉด
//alert("์ฟ ํค์์");
//ํ์ธ์ฉ
$("#_id").val(user_id);
$("#chk_save_id").attr("checked","checked");
}
$("#chk_save_id").click(function() {
if( $("#chk_save_id").is(":checked")){ //์ฒดํฌ๋์์๋
alert("์ฒดํฌ๋จ");
if($("#_id").val().trim() == ""){
alert("์์ด๋๋ฅผ ์
๋ ฅํด์ฃผ์ธ์");
$("#chk_save_id").prop("checked",false); // ์์ด๋๊ฐ ์์ผ๋ฉด ์ฒดํฌ์์
}else{
$.cookie("user_id",$("#_id").val().trim(), {expires:7, path:'./'});
}
}else{
$.removeCookie("user_id", {path:'./'})
}
});
</script>
</body>
</html>
2.๋ก๊ทธ์ธ ํ View (loginAf.jsp)
1. ์ธ์ ์ด์ฉ login ์ ๋ณด๋ฅผ ์ ์ฅ
2. ๋ก๊ทธ์ธ ์ฑ๊ณต์ alert์ฐฝ์ ํตํด ์ฌ์ฉ์์ด๋ฆ๊ณผ ํจ๊ป '์๋ ํ์ธ์ ~ ๋ ๋ฐ๊ฐ์ต๋๋ค'๋ ์ฐฝ์ด ๋ธ.
3. MemberDao๋ฅผ ๋ถ๋ฌ์จํ MemberDto๋ฅผ ๋ถ๋ฌ์ dao์ ์๋ login ํจ์๋ฅผ ์คํํด์ sql์ด ์กฐ๊ฑด์ ๋ง๋์ง ํ์ธํ๋๋กํ๋ค.
public MemberDto login(MemberDto dto) {
String sql = " SELECT ID, NAME, EMAIL, AUTH "
+ " FROM MEMBER "
+ " WHERE ID=? AND PWD=? ";
dto๊ฐ null๊ฐ์ผ๋ก ๋์ฌ๊ฒฝ์ฐ ํด๋น ์์ด๋์ ๋ก๊ทธ์ธ์ด SELECT๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ฌ๋ก๊ทธ์ธ ์๋ง.
<%@page import="dto.MemberDto"%>
<%@page import="dao.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
MemberDao dao = MemberDao.getInstance();
MemberDto dto = dao.login(new MemberDto(id, pwd, null, null, 0));
if(dto != null && !dto.getId().equals("")){
//session ์ ๋ก๊ทธ์ธ์ ๋ณด ์ ์ฅ
session.setAttribute("login", dto);
//session.setMaxInactiveInterval(30*60*60);
%>
<script type="text/javascript">
alert("์๋
ํ์ธ์ <%=dto.getId() %>๋ ๋ฐ๊ฐ์ต๋๋ค.");
location.href = "bbslist.jsp";
</script>
<%
}else{
%>
<script type="text/javascript">
alert("id๋ password๋ฅผ ํ์ธํ์ญ์์ค");
location.href = "login.jsp";
</script>
<%
}
%>
</body>
</html>
db.DBConnection
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
public static void initConnection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
//Class.forName() ์ ์ด์ฉํด์ ๋๋ผ์ด๋ฒ ๋ก๋
System.out.println("Driver Loading Success");
} catch (ClassNotFoundException e) {
System.out.println("Driver๊ฐ ์์ต๋๋ค");
}
}
public static Connection getConnection() {
//static ๋ถ์ฌ์ค์ด์ ๋ ์ธ์ ์ด๋์๋ ๋ถ๋ฌ ์ฌ ์ ์๊ฒ ํ๋ค
Connection conn = null;
try {
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.2:1521:xe", "hr","hr");
//์ฃผ์๋ DB ์ฐํด๋ฆญ Properties์์ ๊ฐ์ ธ์จ๋ค.
System.out.println("Oracle Connection Success");
} catch (SQLException e) {
System.out.println("DB๋ฅผ ์ฐ๊ฒฐํ์ง ๋ชปํ์ต๋๋ค");
}
return conn;
}
}
db.DBClose
package db;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBClose {
public static void close(Connection conn, Statement stmt, ResultSet rs) {
try {
if(conn != null) {
conn.close();
}
if(stmt != null) {
stmt.close();
}
if(rs != null) {
rs.close();
}
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3. ๋ก๊ทธ์ธ ํ์ธ Dao
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import db.DBClose;
import db.DBConnection;
import dto.MemberDto;
public class MemberDao {
private static MemberDao dao = new MemberDao();
private MemberDao() {
DBConnection.initConnection();
}
public static MemberDao getInstance() {
return dao;
}
public boolean addMember(MemberDto dto) {
String sql = " INSERT INTO MEMBER(ID, PWD, NAME, EMAIL, AUTH) "
+ " VALUES(?, ?, ?, ?, 3) ";
Connection conn = null;
PreparedStatement psmt = null;
int count = 0;
try {
conn = DBConnection.getConnection();
System.out.println("1/3 addMember success");
psmt = conn.prepareStatement(sql);
System.out.println("2/3 addMember success");
psmt.setString(1, dto.getId());
psmt.setString(2, dto.getPwd());
psmt.setString(3, dto.getName());
psmt.setString(4, dto.getEmail());
count = psmt.executeUpdate();
System.out.println("3/3 addMember success");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("addMember fail");
} finally {
DBClose.close(conn, psmt, null);
}
return count>0?true:false;
}
public boolean getId(String id) {
String sql = " SELECT ID "
+ " FROM MEMBER "
+ " WHERE ID=? ";
/* String sql = " SELECT COUNT(*) "
+ " FROM MEMBER "
+ " WHERE ID=? ";
*/
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null;
// String findid = null;
boolean findid = false;
try {
conn = DBConnection.getConnection();
System.out.println("1/3 getId success");
psmt = conn.prepareStatement(sql);
psmt.setString(1, id.trim());
System.out.println("2/3 getId success");
rs = psmt.executeQuery();
System.out.println("3/3 getId success");
if(rs.next()) {
findid = true;
}
} catch (SQLException e) {
System.out.println("getId fail");
e.printStackTrace();
} finally {
DBClose.close(conn, psmt, rs);
}
return findid;
}
MemerDao login ํจ์ (MemerDao)
public MemberDto login(MemberDto dto) {
String sql = " SELECT ID, NAME, EMAIL, AUTH "
+ " FROM MEMBER "
+ " WHERE ID=? AND PWD=? ";
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null;
MemberDto mem = null;
try {
conn = DBConnection.getConnection();
psmt = conn.prepareStatement(sql);
System.out.println("1/6 login suc");
psmt.setString(1, dto.getId());
psmt.setString(2, dto.getPwd());
System.out.println("2/6 login suc");
rs = psmt.executeQuery();
if(rs.next()) {
String id = rs.getString(1);
String name = rs.getString(2);
String email = rs.getString(3);
int auth = rs.getInt(4);
mem = new MemberDto(id, null, name, email, auth);
}
System.out.println("3/6 login suc");
} catch (Exception e) {
System.out.println("login fail");
e.printStackTrace();
} finally {
DBClose.close(conn, psmt, rs);
}
return mem;
}
4. ํ์๊ฐ์ (regi.jsp)
<%@ 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>
<style type="text/css">
.center{
margin: auto;
width: 60%;
border: 3px solid #0000ff;
padding: 10px;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<h2>ํ์๊ฐ์
</h2>
<div class="center">
<form action="regiAf.jsp" method="post">
<table border="1">
<tr>
<td>์์ด๋</td>
<td>
<input type="text" name="id" id="_id" size="20"><br>
<!-- idํ์ธ(ajax) p, button-->
<p id="idcheck" style="font-size: 8px"></p>
<input type="button" id="btn" value="idํ์ธ">
</td>
</tr>
<tr>
<td>ํจ์ค์๋</td>
<td>
<input type="text" name="pwd" id="_pwd" size="20">
</td>
</tr>
<tr>
<td>์ด๋ฆ</td>
<td>
<input type="text" name="name" size="20">
</td>
</tr>
<tr>
<td>์ด๋ฉ์ผ</td>
<td>
<input type="text" name="email" size="20">
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="ํ์๊ฐ์
">
</td>
</tr>
</table>
</form>
</div>
<script type="text/javascript">
$(function () {
$("#btn").click(function () {
$.ajax({
type: "post",
url: "idcheck.jsp",
// data: "id=" + $("#_id").val(),
data: { "id":$("#_id").val() },
success:function( data ){
// alert('success');
alert(data.trim());
if(data.trim() == "YES"){
$("#idcheck").css("color", "#0000ff");
$("#idcheck").html('์ฌ์ฉํ ์ ์๋ id์
๋๋ค');
}else{
$("#idcheck").css("color", "#ff0000");
$("#idcheck").html('์ฌ์ฉํ ์ ์๋ id์
๋๋ค');
$("#_id").val("");
}
},
error:function(){
alert('error');
}
});
});
});
</script>
</body>
</html>
idcheck.jsp
<%@page import="dao.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String id = request.getParameter("id");
System.out.println("id:" + id);
MemberDao dao = MemberDao.getInstance();
boolean b = dao.getId(id);
if(b == true){ // id์์
out.println("NO");
}else{ // id์์
out.println("YES");
}
%>
5. ํ์๊ฐ์ (regiAf.jsp)
<%@page import="dto.MemberDto"%>
<%@page import="dao.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
%>
<!-- DB์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ -->
<%
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
String name = request.getParameter("name");
String email = request.getParameter("email");
System.out.println(id + " " + pwd + " " + name + " " + email);
%>
<!-- ์ด๋ -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>regiAf.jsp</title>
</head>
<body>
<%
MemberDao dao = MemberDao.getInstance();
MemberDto dto = new MemberDto(id, pwd, name, email, 0);
boolean isS = dao.addMember(dto);
if(isS){
%>
<script type="text/javascript">
alert("์ฑ๊ณต์ ์ผ๋ก ๊ฐ์
๋์์ต๋๋ค");
location.href = "login.jsp";
</script>
<%
}else{
%>
<script type="text/javascript">
alert("๋ค์ ๊ธฐ์
ํด ์ฃผ์ญ์์ค");
location.href = "regi.jsp";
</script>
<%
}
%>
</body>
</html>
6. ๋ก๊ทธ์ธ ์ฑ๊ณต์ ๊ฒ์ํ ๋ฆฌ์คํธ๋ก ์ด๋ VIEW (bbslist.jsp)
<%@page import="dto.BbsDto"%>
<%@page import="java.util.List"%>
<%@page import="dao.BbsDao"%>
<%@page import="dto.MemberDto"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
Object ologin = session.getAttribute("login");
MemberDto mem = null;
if(ologin == null){
%>
<script>
alert('๋ก๊ทธ์ธ ํด ์ฃผ์ญ์์ค');
location.href = "login.jsp";
</script>
<%
}
mem = (MemberDto)ologin;
%>
<%!
// ๋๊ธ์ depth์ image๋ฅผ ์ถ๊ฐํ๋ ํจ์
// depth = 1 ' '->
// depth = 2 ' '->
public String arrow(int depth){
String rs = "<img src='./image/arrow.png' width='20px' heiht='20px'>";
String nbsp = " "; // ์ฌ๋ฐฑ
String ts = "";
for(int i = 0;i < depth; i++){
ts += nbsp;
}
return depth==0 ? "":ts + rs;
}
%>
<%
// dao๋ถํฐ list
BbsDao dao = BbsDao.getInstance();
List<BbsDto> list = dao.getBbslist();
System.out.println("dao๋ถํฐ list");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>bbslist(Bulletin Board System) = ์ ์ ๊ฒ์ํ</title>
</head>
<body>
<h4 align="right" style="background-color: #f0f0f0">ํ์ํฉ๋๋ค <%=mem.getId() %>๋</h4>
<h1>๊ฒ์ํ</h1>
<div align="center">
<table border="1">
<col width="70"><col width="600"><col width="150">
<tr>
<th>๋ฒํธ</th><th>์ ๋ชฉ</th><th>์์ฑ์</th>
</tr>
<%
if(list == null || list.size() == 0){
%>
<tr>
<td colspan="3">์์ฑ๋ ๊ธ์ด ์์ต๋๋ค</td>
</tr>
<%
}else{
for(int i = 0;i < list.size(); i++){
BbsDto bbs = list.get(i);
%>
<tr>
<th><%=i + 1 %></th>
<td>
<%=arrow(bbs.getDepth()) %> <!-- ์ฌ๋ฐฑ + ์ด๋ฏธ์ง -->
<a href="bbsdetail.jsp?seq=<%=bbs.getSeq() %>">
<%=bbs.getTitle() %>
</a>
</td>
<td><%=bbs.getId() %></td>
</tr>
<%
}
}
%>
</table>
<br><br>
<a href="bbswrite.jsp">๊ธ์ฐ๊ธฐ</a>
</div>
</body>
</html>
7. ๊ฒ์ํ ๊ธ์ฐ๊ธฐ VIEW (bbswrite.jsp)
<%@page import="dto.MemberDto"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>bbswrite.jsp</title>
</head>
<body>
<%
MemberDto mem = (MemberDto)session.getAttribute("login");
if(mem == null){
response.sendRedirect("login.jsp");
%>
<script type="text/javascript">
location.href = "";
</script>
<%
}
%>
<a href="logout.jsp">๋ก๊ทธ ์์</a>
<h1>๊ธ์ฐ๊ธฐ</h1>
<div align="center">
<form action="bbswriteAf.jsp" method="post">
<table border="1">
<col width="200"><col width="400">
<tr>
<th>์์ด๋</th>
<td>
<%-- <input type="text" name="id" size="50px" value="<%=mem.getId() %>"> --%>
<input type="text" name="id" size="50px" value=${login.id } readonly="readonly">
</td>
</tr>
<tr>
<th>์ ๋ชฉ</th>
<td>
<input type="text" name="title" size="50px">
</td>
</tr>
<tr>
<th>๋ด์ฉ</th>
<td>
<textarea rows="20" cols="50px" name="content"></textarea>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="๊ธ์ฐ๊ธฐ">
</td>
</tr>
</table>
</form>
</div>
<a href="bbslist.jsp">๊ธ๋ชฉ๋ก</a>
</body>
</html>
'๐ ์๋ฐ ์๋ฒ ํ์ด์ง JSP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JSP - JSTL ํ๊ทธ (JSP Standard Tag Library) (0) | 2021.03.23 |
---|---|
JSP - EL ํ๊ทธ (Expression Language Tag) (0) | 2021.03.23 |
JSP - ํ์ด์ง ์๋ก๊ณ ์นจํ๋ฉด ํ ์ด๋ธ(<tr>) ์์ฑ + (0) | 2021.03.15 |
JSP - 2. ์ค๋ฌธ์ง ์์ฑํ์ฌ JSP ํ์ด์ง๋ก ๋ฐ์ดํฐ ๋๊ธฐ๊ธฐ (0) | 2021.03.15 |
JSP - 1. ๋ด์ฅ๊ฐ์ฒด (Parameter) ๋ก ๋ฐ์ดํฐ ๋ฐ์ ์ ์ก (0) | 2021.03.15 |
๋๊ธ