본문 바로가기
🎵JSP

[JSP] JSP안에 있는 내장 객체(request)

by 김말자 2023. 2. 8.
728x90
728x90
BIG

테이블 생성

create table member(
id varchar2(20) primary key,
pwd varchar2(20) not null,
name nvarchar2(10) not null,
mobile varchar2(20),
regDate date default sysdate
);


insert into member values('sugyungeeJJang','1234','홍길동',null,sysdate);
insert into member values('sumineeJJang','1234','이수민',null,sysdate);
insert into member values('hyejineeJJang','1234','장혜진','010-0000-8887',sysdate);
insert into member values('dddd','1234','홍길동',null,sysdate);

commit;

select * from member;

--로그인

 

 

 

로그인 화면 만들기

<%@ 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>
	<form action="dbLogin.jsp" method="post">
		<table>
			<tr>
				<%!String id = null;
	String pwd = null;%>
				<td>아이디:</td>
				<td><input type=text value="<%=id%>" name="id"></td>>
			</tr>
			<td>암 호:</td>
			<td><input type=password value="<%=pwd%>" name="pwd"></td>>
			</tr>
			<tr>
				<td colspan=2 align="center"><input type=submit></td>
			</tr>
		</table>



	</form>
</body>
</html>

 

 

 

VO

package member;

import java.sql.Date;

public class MemberVO {
	private String id;
	private String pwd,name, mobile;
	private Date regDate;
	
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getMobile() {
		return mobile;
	}
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	public Date getRegDate() {
		return regDate;
	}
	public void setRegDate(Date regDate) {
		this.regDate = regDate;
	}
	public MemberVO() {
		super();
		// TODO Auto-generated constructor stub
	}
	public MemberVO(String id, String pwd, String name, String mobile, Date regDate) {
		super();
		this.id = id;
		this.pwd = pwd;
		this.name = name;
		this.mobile = mobile;
		this.regDate = regDate;
	}
	
	
	@Override
	public String toString() {
		return "MemberVO [id=" + id + ", pwd=" + pwd + ", name=" + name + ", mobile=" + mobile + ", regDate=" + regDate
				+ "]";
	}
	
	
	
	
	
}

 

 

로그인할 수 있는 DAO

package member;

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

public class MemberDAO {
	//객체생성
	static {
		try {
			Class.forName("oracle.jdbc.OracleDriver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();System.exit(0);		}
	}
	
	private static MemberDAO dao = null;
	public MemberDAO() {
		
	}
	
	public static MemberDAO getInstance() {
		if(dao == null) {
		dao = new MemberDAO();
		}
		return dao;
	}
	
	private Connection getConnection() {
		Connection conn = null;
		String url =  "jdbc:oracle:thin:@localhost:1521:xe";;
		try {
			conn=DriverManager.getConnection(url,"JAVADB","1234");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;
	}
	
	public void close(Connection conn, PreparedStatement pstmt) {

			try {
				if(pstmt!=null) pstmt.close();
				if(conn!=null) conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();System.exit(0);
			}
		
	}
	public void close(ResultSet rs,Connection conn, PreparedStatement pstmt) {
		
		try {
			if(rs!=null) rs.close();
			if(pstmt!=null) pstmt.close();
			if(conn!=null) conn.close();
		} catch (SQLException e) {
			e.printStackTrace();System.exit(0);
			
		}
	
}
	//로그인 select method;

	public MemberVO login(String id, String pwd) {
		Connection conn = this.getConnection();
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		String sql = null;
		MemberVO vo = null;
		
		sql = "select * from member where id=? and pwd = ?";
		
		try {
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, id);
			pstmt.setString(2, pwd);
			rs = pstmt.executeQuery();
			
			if(rs.next())
				vo = new MemberVO(rs.getString("id"), rs.getString("pwd"),
						rs.getString("name"), rs.getString("mobile"),
						rs.getDate("regdate"));
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			this.close(rs, conn, pstmt);
			
		} return vo;
	}	
}

 

로그인 성공 돌리기

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import ="member.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>하이하이</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
// 이전페이지에서 넘긴 데이터는 getparameter로 넘김(결과값 String)
MemberDAO dao= MemberDAO.getInstance();
MemberVO vo = dao.login(id, pwd);
if(vo==null){
//	out.print("아이디 또는 비밀번호가 일치하지 않습니다.");
	response.sendRedirect("loginForm2.jsp");
	//다시 돌아감 loginForm2.jsp로
}
else{//로그인성공
	response.sendRedirect("memberMain.jsp?id="+id);
//이러면 아이디를 전송이 가능하다.
}
%>
</body>
</html>

방법2

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import ="member.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>하이하이</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
// 이전페이지에서 넘긴 데이터는 getparameter로 넘김(결과값 String)
MemberDAO dao= MemberDAO.getInstance();
MemberVO vo = dao.login(id, pwd);
if(vo==null){
//	out.print("아이디 또는 비밀번호가 일치하지 않습니다.");
	response.sendRedirect("loginForm2.jsp");
	//다시 돌아감 loginForm2.jsp로
}
else{//로그인성공
	//response.sendRedirect("memberMain.jsp?id="+id);
//이러면 아이디를 전송이 가능하다.
RequestDispatcher rd=request.getRequestDispatcher("memberMain.jsp");
//안에 가야할 곳을 입력해야함
rd.forward(request, response);//넘겨주기 
	

}
%>
</body>
</html>

방법3

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="member.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
MemberDAO dao=MemberDAO.getInstance();
//이전 페이지에서 get,post 방식으로 전송한 데이터는 getPrameter사용> String
String id=request.getParameter("id");
String pwd=request.getParameter("pwd");

MemberVO vo=dao.login(id, pwd);
if(vo==null){//로그인 실패 : 아이디나 비번 틀린경우
   response.sendRedirect("loginForm2.jsp");
}else{//로그인 성공
//   response.sendRedirect("memberMian.jsp");//null
//   response.sendRedirect("memberMian.jsp?id="+id);
   request.setAttribute("vo", vo);
   RequestDispatcher rd=request.getRequestDispatcher("memberMain.jsp");
   rd.forward(request, response);
}


%>
</body>
</html>

 

로그인후 화면

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>메인 화면</title>
</head>
<body>
<%
	String id =request.getParameter("id");
%>
<%=id %>님 환영합니다.<br>
즐거운시간되세요
</body>
</html>

방법3 메인

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="member.MemberVO" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>메인 화면</title>
</head>
<body>
<%
	String id =request.getParameter("id");
	MemberVO vo = (MemberVO)request.getAttribute("vo");
	request.getAttribute("vo");
	//getPara는 string을 돌려주고
	//getAttri는 object를 돌려주기때문에
	//다운 캐스팅을 해줘야함
%>
<%=vo.getName() %>님 환영합니다.<br>
즐거운시간되세요
</body>
</html>

728x90
반응형
BIG

댓글