728x90
MemeberBean.java
package kr.co.bit.dto;
public class MemberBean {
private String name;
private String userid;
private String pwd;
private String email;
private String phone;
private int admin;
@Override
public String toString() {
return name+","+userid+"";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public int getAdmin() {
return admin;
}
public void setAdmin(int admin) {
this.admin = admin;
}
}
MemberDAO.java
package kr.co.bit.dao;
import kr.co.bit.dto.MemberBean;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class MemberDAO {
private MemberDAO() {
}
private static MemberDAO instance = new MemberDAO();
public static MemberDAO getInstance() {
return instance;
}
public Connection getConnection() throws Exception {
Connection conn = null;
Context init = new InitialContext();
DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/pool");
conn = ds.getConnection();
return conn;
}
public int userCheck(String id, String pwd) {
int result = -1;
String sql = "select pwd from member2 where userid=?";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
rs = pstmt.executeQuery();
if (rs.next()) { // 아이디가 일치하는 행이 있다면
if (rs.getString("pwd") != null && rs.getString("pwd").equals(pwd)) { // 비밀번호 확인
result = 1;
} else { // 아이디가 일치하지만 비밀번호가 불일치
result = 0;
}
} else { // 아이디가 존재하지 않으면
result = -1;
}
} catch (Exception e) {
e.printStackTrace(); // 예외 처리 추가
} finally {
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (Exception e) {
e.printStackTrace(); // 예외 처리 추가
}
}
return result;
}
// 아이디 기준으로 회원정보 가져오기
public MemberBean getMember(String userid) {
MemberBean bean = null;
String sql = "select * from member2 where userid=?";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, userid);
rs = pstmt.executeQuery();
if (rs.next()) {
bean = new MemberBean();
bean.setName(rs.getString("name"));
bean.setUserid(rs.getString("userid"));
bean.setPwd(rs.getString("pwd"));
bean.setEmail(rs.getString("email"));
bean.setPhone(rs.getString("phone"));
bean.setAdmin(rs.getInt("admin"));
}
} catch (Exception e) {
e.printStackTrace(); // 예외 처리 추가
} finally {
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (Exception e) {
e.printStackTrace(); // 예외 처리 추가
}
}
return bean;
}
public int checkID(String userid) {
int result = -1;
String sql = "SELECT count(*) as cnt FROM member2 WHERE userid=?";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, userid);
rs = pstmt.executeQuery();
if (rs.next()) {
result = -1;
}else{
result = 1;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return result;
}
}
JoinServlet.java
package kr.co.bit.controller;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet(value = "/join.do") //value는 JSP에서 호출할 이름입니다.
public class JoinServelt extends HttpServlet {
//필드변수를 입력하는 곳입니다.
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
RequestDispatcher dis = request.getRequestDispatcher("join.jsp");
dis.forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
doGet(request, response);
}
}
Login2.java
package kr.co.bit.controller;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.WebServlet;
import kr.co.bit.dao.MemberDAO;
import kr.co.bit.dto.MemberBean;
import java.io.IOException;
@WebServlet(value = "/Login2.do") //url 매핑작업
//name은 생략이 가능하다 // value는 JSP에서 호출할 이름입니다. // action을 적으면 됨
public class Login2 extends HttpServlet {
//필드변수를 입력하는 곳입니다.
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
request.setCharacterEncoding("UTF-8");
RequestDispatcher dis=request.getRequestDispatcher("login.jsp");
dis.forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
request.setCharacterEncoding("UTF-8"); //do post는 깨질 확률이 높아 하나 더 추가해서 깨짐 방지
String url="login.jsp";
String userid=request.getParameter("userid");
String pwd=request.getParameter("pwd");
MemberDAO mdao=MemberDAO.getInstance();
int result=mdao.userCheck(userid, pwd);
if(result==1) {
MemberBean mbean=mdao.getMember(userid);
HttpSession session=request.getSession();
session.setAttribute("loguser", mbean);
request.setAttribute("msg", "Success");
url="main.jsp";
}
//비번틀림
else if(result==0) {
request.setAttribute("msg", "Incorrect your password");
}
else if(result==-1) {
request.setAttribute("msg", "No exist ID");
}
RequestDispatcher dis=request.getRequestDispatcher(url);
dis.forward(request, response);
}
}
idCheckServlet.java
package kr.co.bit.controller;//Made By Siho
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.WebServlet;
import kr.co.bit.dao.MemberDAO;
import java.io.IOException;
@WebServlet(name = "idCheckServlet", value = "/idCheck.do")
public class idCheckServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
String userid = request.getParameter("userid");
MemberDAO mdao = MemberDAO.getInstance();
int result = mdao.checkID(userid);
// userid와 result를 request 객체에 저장합니다.
request.setAttribute("userid", userid);
request.setAttribute("result", result);
RequestDispatcher dis = request.getRequestDispatcher("idCheck.jsp");
dis.forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
doGet(request, response);
}
}
join.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script type="text/javascript" src="member.js"></script>
</head>
<body>
<h2>Sign Up</h2>
<form action="join.do" method="post" name="frm">
Name<input type="text" name="name"><br>
ID<input type="text" name="userid">
<input type="hidden" name="reid">
<input type="button" value="duplication" onclick="idCheck()"><br>
Password<input type="password" name="pwd"><br>
Check Password<input type="password" name="pwd_check"><br>
Email<input type="email" name="email"><br>
Phone<input type="tel" name="phone"><br>
Grade <input type="radio" name="admin" value="0" checked="checked">General</input>
<input type="radio" name="admin" value="1" >Admin</input><br>
<input type="submit" value="Done" onclick="return joinCheck()">
${msg }
</form>
</body>
</html>
login.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>
</head>
<body>
<a href="Login2.do">로그인 페이지</a>
</body>
</html>
idCheck.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>ID Duplication Check</title>
</head>
<body>
<h2>ID Duplication Check</h2>
<form action="idCheck.do" method="post" name="frm">
ID <input type="text" name="userid">
<input type="submit" value="duplication">
<c:if test="${result == 1 }">
<%-- <script type = "text/javascript">--%>
<%-- opener.document.frm.userid.value="";--%>
<%-- </script>--%>
${userid } is already used!
</c:if>
<c:if test="${result == -1 }">
${userid } can be used!
</c:if>
</form>
</body>
</html>
main.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:if test="${empty loguser}">
<jsp:forward page="Login2.do"></jsp:forward>
</c:if>
<head>
<script type="text/javascript" src="member.js"></script>
</head>
<body>
<form action="Logout.do">
${loguser.userid}
<input type="submit" value="Logout">
<input type="button" value="Modify" onclick="location.href='memberUpdate.do?userid=${loguser.userid}'">
</form>
</body>
</html>
member.js
function idCheck() {
if (document.frm.userid.value == "") {
alert("put your ID");
document.frm.userid.focus();
return;
}
let url = "idCheck.do?userid=" + document.frm.userid.value;
window.open(url,'팝업','width=500, height=700, scrollbars=yes, resizable=no');}
function check() {
var userid = document.frm.userid.value;
var pwd = document.frm.pwd.value;
if (userid == "") {
alert("put your ID");
return false;
}
if (pwd == "") {
alert("put your password");
return false;
}
return true;
}
728x90
'Frameworks > JSP' 카테고리의 다른 글
[JSP] 게시판 CRUD (0) | 2024.04.26 |
---|---|
[JSP] Servlet활용한 로그인 (0) | 2024.04.25 |
[JSP] 표현언어(Expression Language) (0) | 2024.04.24 |
[JSP] 회원정보관리(CRUD) (0) | 2024.04.23 |
[JSP] 자바 빈 / SQL에 DB넣기 (0) | 2024.04.23 |