일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 상자 그림
- 명목형 데이터
- 상관 분석
- ARIMA 모델링
- Z-점수 기반 이상치 탐지
- 시계열 특성을 고려한 이상치 탐지
- R과 Python
- 날짜 시간 데이터 전처리
- Q-Q 플롯
- 상위포지션
- 시계열 상관 분석
- 범주형 데이터
- 데이터 수집 및 전처리
- Python
- 계절성 모델
- 다변량 분석
- 선형 판별 분석 LDA
- 데이터의 차원 축소
- 시계열 모델링
- custom vision
- 순서형 데이터
- ARMA 모델링
- 주성분 줄이기
- 지수평활법
- 데이터 분석 프로세스
- 다중상관분석
- 군집화 시각화 방법
- 최소-최대 정규화
- 주성분 분석
- 데이터 종류에 따른 분석 방법
Archives
- Today
- Total
me made it !
[JSP] 20230317 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="<%=request.getContextPath()%>/member/memberJoin.do">회원가입하기</a>
<a href="<%=request.getContextPath()%>/board/boardList.do">게시판목록</a>
<%if (session.getAttribute("midx")!=null){
int midx = (int)session.getAttribute("midx");
out.println("회원번호;"+midx);
String memberName = (String) session.getAttribute("memberName");
out.println("회원이름: "+ memberName);
%>
<a href="<%=request.getContextPath()%>/member/memberLogOut.do">회원로그아웃</a>
<%
}else {
%>
<a href="<%=request.getContextPath()%>/member/memberLogin.do">회원로그인</a>
<%}%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원로그인</title>
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//자동실행영역
});
function check(){
//alert("각 값이 있는지 체크하는 구문을 만들어보세요");
if ($("#memberId").val() == ""){
alert("아이디를 입력하세요");
$("#memberId").focus();
return;
}else if ($("#memberPwd").val() == ""){
alert("비밀번호를 입력하세요");
$("#memberPwd").focus();
return;
}
var fm = document.frm;
//이 경로로 데이터를 감추어서 전송한다
fm.action ="<%=request.getContextPath()%>/member/memberLoginAction.do";
fm.method = "post";
fm.submit(); //전송
return;
}
function idCheck(){
// alert("아이디 체크창입니다.");
let memberId = $("#memberId").val();
$.ajax({
url: "<%=request.getContextPath()%>/member/memberIdCheck.do",
method: "POST",
data: {"memberId": memberId },
dataType: "json",
success : function(data){
if (data.value =="0"){
alert("사용 가능한 아이디입니다.");
$("#memberIdCheck").val("Y");
}else{
alert("사용 불가능한 아이디 입니다");
}
},
error : function(request,status,error){
alert("다시 시도 하시기 바랍니다.");
}
});
return;
}
</script>
</head>
<body>
회원로그인 페이지
<form name="frm" id="frm">
<table style="border:1px solid #CCC;width:500px">
<tr>
<td>아이디</td>
<td>
<input type="text" name="memberId" id="memberId">
</td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type="password" name="memberPwd" id="memberPwd"></td>
</tr>
<tr>
<td></td>
<td><input type="button" name="btn" id="btn" value="확인" onclick="check();"></td>
</tr>
</table>
</form>
</body>
</html>
package example1230.service;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import example1230.dbconn.Dbconn;
import example1230.domain.MemberVo;
public class MemberDao{
//멤버변수 전역
private Connection conn;
public MemberDao(){ //MemberDao 생성할 때 Dbconn 객체도 생성시킴 => conn객체 생성
Dbconn dbconn = new Dbconn();
this.conn = dbconn.getConnection();
}
public int memberInsert(String memberId, String memberPwd, String memberName , String memberPhone , String memberEmail , String memberGender , String memberAddr , String memberBirth){
int value = 0;
PreparedStatement pstmt= null;
String sql ="INSERT INTO member1230(midx,memberId,memberPwd,memberName,memberPhone,memberEmail,memberGender,memberAddr,memberBirth,ip)"+
"VALUES(midx_seq.nextval,?,?,?,?,?,?,?,?,null)";
// 구문 쿼리클래스
try{
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,memberId);
pstmt.setString(2,memberPwd);
pstmt.setString(3,memberName);
pstmt.setString(4,memberPhone);
pstmt.setString(5,memberEmail);
pstmt.setString(6,memberGender);
pstmt.setString(7,memberAddr);
pstmt.setString(8,memberBirth);
pstmt.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
pstmt.close();
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
return value;
}
@SuppressWarnings("finally")
public ArrayList<MemberVo> memberSelectAll() {
ArrayList<MemberVo> alist = new ArrayList<MemberVo>();
String sql = "select midx, memberid, membername, delyn, writeday from member1230 order by midx desc";
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()) { //커서의 다음 값이 존재하면 참
MemberVo mv = new MemberVo(); //MemberVo 객체 생성해서
mv.setMidx(rs.getInt("midx")); //rs 값들을 옮겨담는다
mv.setMemberid(rs.getString("memberid"));
mv.setMembername(rs.getString("membername"));
mv.setDelyn(rs.getString("delyn"));
mv.setWriteday(rs.getString("writeday"));
alist.add(mv); //alist 클래스 안에 MemberVo 객체를 하나씩 추가한다
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return alist;
}
}
public int memberIdCheck(String memberId){
int value = 0;
String sql ="select count(*) as cnt from member1230 where memberid = ?";
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, memberId);
rs = pstmt.executeQuery();
if(rs.next()) { //커서가 이동을 해서 다음 값이 존재하면 참 -> 진행할 수 있다.
value = rs.getInt("cnt");
}
}catch(SQLException e) {
e.printStackTrace();
}finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return value;
}
public MemberVo memberLogin(String memberId, String memberPwd) {
System.out.println("memberid: "+memberId);
System.out.println("memberpwd: "+memberPwd);
MemberVo mv = null;
String sql = "select * from member1230 where delyn ='n' and memberid=? and memberpwd=?";
PreparedStatement pstmt=null;
ResultSet rs= null;
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,memberId);
pstmt.setString(2,memberPwd);
rs = pstmt.executeQuery(); //컬럼 값을 담기 위한 메소드
if(rs.next()) {
mv = new MemberVo();
mv.setMidx(rs.getInt("midx"));
mv.setMembername(rs.getString("memberName"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return mv;
}
}
memberController
else if (str.equals("/member/memberLogin.do")) {
System.out.println("memberLogin.do");
RequestDispatcher rd = request.getRequestDispatcher("/member/memberLogin.jsp");
rd.forward(request, response);
}else if(str.equals("/member/memberLoginAction.do")) {
String memberId =request.getParameter("memberId");
String memberPwd = request.getParameter("memberPwd");
//처리하는 메소드
MemberDao md= new MemberDao();
MemberVo mv = md.memberLogin(memberId, memberPwd);
if (mv == null) {
response.sendRedirect(request.getContextPath() + "/member/memberLogin.do");
}else {
int midx = mv.getMidx();
String memberName = mv.getMembername();
HttpSession session = request.getSession();
session.setAttribute("midx", midx);
session.setAttribute("memberName", memberName);
response.sendRedirect(request.getContextPath() + "/");
}
}else if(str.equals("/member/memberLogOut.do")) {
HttpSession session = request.getSession();
session.removeAttribute("midx");
session.removeAttribute("memberName");
session.invalidate();
response.sendRedirect(request.getContextPath() + "/");
}
97줄에 "/" 라고만 써도 되는 이유
반응형
'TIL > JSP' 카테고리의 다른 글
[JSP] 20230320 JSP 게시판 글에 답글 달기 (0) | 2023.03.20 |
---|---|
[JSP] 20230317 JSP 로그인 하고 게시판에 글쓰기 (0) | 2023.03.17 |
[JSP] 20230317 JSP 게시판 삭제 기능 구현하기 (0) | 2023.03.17 |
[JSP] 20230316 JSP 게시판 글 내용 수정하기 (0) | 2023.03.16 |
[JSP] 20230316 JSP 게시판 조회수 설정하기 (0) | 2023.03.16 |