반응형

서블릿으로 회원 정보 테이블 조회 #1을 연결하여 진행하겠습니다.

 

새로만든 pro07프로젝트에서

회원조회와 관련된 자바클래스 파일인 MemberDao, MemberServlet, MemberVO 클래스를 생성해 보겠습니다.

이제부터 코딩을 해보겠습니당!

package sec01.ex01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class MemberDAO {
private static final String driver = "oracle.jdbc.driver.OracleDriver";
private static final String url = "jdbc:oracle:thin:@localhost:1521:XE";
private static final String user = "scott";
private static final String pwd = "scott";
private Connection con;
private Statement stmt;

public List listMembers() {
List list = new ArrayList();
try {
connDB(); // 네 가지의 정보로 데이터베이스에 연결합니다.
String query = "select * from t_member";
System.out.println(query);
ResultSet rs = stmt.executeQuery(query);  // SQL문으로 회원 정보를 조회합니다.
System.out.println(rs);
while(rs.next()) {
String id = rs.getString("id");
String pwd = rs.getString("pwd");
String name = rs.getString("name");
String email = rs.getString("email");
Date joinDate = rs.getDate("joinDate");
System.out.println("안뇽");
MemberVO vo = new MemberVO();
vo.setId(id);
vo.setPwd(pwd);
vo.setName(name);
vo.setEmail(email);
vo.setJoinDate(joinDate);

list.add(vo);
}
rs.close();
stmt.close();
con.close();
}catch(Exception e) {
e.printStackTrace();
}
return list; // 조회한 레코드의 개수만큼 MemberVO 객체를 저장한 ArrayList를 반환합니다.
}
private void connDB() {
try {
Class.forName(driver);
System.out.println("Oracle 드라이버 로딩 성공");
con = DriverManager.getConnection(url, user, pwd);
System.out.println("Connection 생성 성공");
stmt = con.createStatement();
System.out.println("Statement 생성 성공");

} catch (Exception e) {
e.printStackTrace();
}
}
}

package sec01.ex01;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/member")
public class MemberServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
MemberDAO dao = new MemberDAO(); //SQL문으로 조회할 MemberDAO 객체를 생성합니다.
List list = dao.listMembers();   // listMembers()메서드로 회원 정보를 조회합니다.

out.print("");
out.print("

"); out.print(""); for (int i =0; i <list.size(); i++) { MemberVO vo = (MemberVO) list.get(i); // 조회한 회원 정보를 for문과  태그를 이용해 리스트로 출력합니다. String id = vo.getId(); String pwd = vo.getPwd(); String name = vo.getName(); String email = vo.getEmail(); Date joinDate = vo.getJoinDate(); out.print(""); } out.print("

");


}
}

 

package sec01.ex01;

import java.util.Date;

public class MemberVO {

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 getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getJoinDate() {
return joinDate;
}
public void setJoinDate(Date joinDate) {
this.joinDate = joinDate;
}

private String id;
private String pwd;
private String name;
private String email;
private Date joinDate;


}

아래의 주소로 접속하시면

이러한 이러한 결과물이 나타나게 됩니다.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

sqlDeveloper 실행후 왼쪽에 +를 눌러서

새로 만들기 클릭

이렇게 했을때 혹시

로그인이 안되면 scott 계정이 lock 걸려있을 경우가 있습니다.

 

https://windorsky.tistory.com/entry/ORACLE-SCOTT-%EA%B3%84%EC%A0%95-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EA%B8%B0

 

ORACLE SCOTT 계정 사용하기/ 활성화하기

실행창 (윈도우키 + R)을 눌러줍니다 열기에 cmd를 입력하고 확인을 눌러주면 이런 창이 나타나게 되는데 SQLPLUS 를 입력해주면 이러한 창이 뜨게 됩니다 여기서 시스템 계정으로 로그인해 줍니다 show user..

windorsky.tistory.com

이거 보고 따라하시면 해결 됩니다.

그 후 아무것도 없는 창이 하나 뜨면

이렇게 코딩해주시면 됩니다

첫번째는 t_member라는 table을 만드는 것이고

그 다음은 회원 정보를 t_member에 넣어주는 거에요

테이블 만드시고 ctrl+enter 

정보 입력 하실때마다 ctrl+enter 

commit; ctrl+enter

해주셔야 적용이 됩니다

; 를 기준으로 실행됩니당.

그 후 select * from t_member; (t_member 테이블에 있는 모든 정보를 보여줘~)

하시면 우리가 입력한 정보가 출력이 되는 걸 알 수 있습니다.

 

 

이후에 이클립스에서

새로운 프로젝트를 만들겠습니다

저는 pro07로 만들겠습니다

생성후

 

이클립스 WebContent/WEB-INF/lib에 ojdbc6.jar 를 복사해서 넣어줍니다.

아래의 사이트에서 다운 받을 수 있습니다.

 

https://www.oracle.com/database/technologies/jdbcdriver-ucp-downloads.html

 

Oracle Database 11g Release 2 JDBC Driver Downloads

Oracle Database 11.2.0.4 JDBC Driver & UCP Downloads Oracle Database 11g Release 2 (11.2.0.4) JDBC Drivers & UCP Downloads Zipped JDBC Driver and Companion JARs Download Release Notes (6,761,477 bytes) - (SHA1 Checksum: 1ce3d1055b94ee1c6148d74a440c937d0a2d

www.oracle.com

 

다음 챕터에서는 이클립스 내 파일 생성과 코드 입력을 해 보겠습니다.

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

실행창 (윈도우키 + R)을 눌러줍니다

열기에 cmd를 입력하고 확인을 눌러주면

이런 창이 나타나게 되는데

SQLPLUS 를 입력해주면 이러한 창이 뜨게 됩니다

여기서 시스템 계정으로 로그인해 줍니다

show user를 입력하시면 현재 접속해 있는 계정을 나타냅니다

이 후에 아래와 같이 따라서 쳐주면 됩니다.

alter user 계정명 identified by 비밀번호 account unlock;

lock이었던 scott 계정을 unlock으로 변경이 됩니다.

그 후 connect 계정/비밀번호;

를 하면 연결이되고

show user 를 통해서 현재 어떠한 계정으로 들어와있는지 확인할 수 있습니다.

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

1. 첫 화면을 표시 해줄 gugu.html을 만들어 봅니다.

2. gugu.html에서 보내주면 처리할 서블릿인 GuguTest 클래스를 만들어 줍니다.

 

요렇게 작성해 줍니다.

실행해 볼까요?

프로젝트를 RUN 하시고 주소창에 위와 같이 적어줍니다.

그러면 위의 화면이 나오게 되는데 원하는 구구단을 입력후 출력을 눌러보세요.

알록달록한 구구단이 출력되었습니다.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

문제: 방금 전 만든 예제를 이용해 로그인시 ADMIN ID로 로그인하면 회원관리와 회원 삭제 기능을 보여주도록 작성하시오.

 

 

 

sec04.ex01 패키지 내에 LoginTest2 클래스를 만들어 주었습니다

WebContent / test01 / login.html은 전 예제에서 만든 것이고 내부에 action만 바꿔주었습니다.

 

LoginTest2 
login.html

login.html에서는 전 예제에서 action=에 loginTest2 로 숫자를 추가해주었습니다.

주소창에 localhost:8080/pro06/test01/login.html을 입력하면 아래와 같은 화면이 나타나게 됩니다.

(aaaa는 제가 입력해놓은거에요..)

우리가 코딩을 한 것처럼 admin으로 접속을 하게 되면(비번은 상관없어요)

요렇게 화면이 나타나게 됩니다.

참고로 회원정보 수정하기와 회원정보 삭제하기는 표시만 해놓은거지 눌러도 아무 변화가 없습니다.!

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

우선 LoginTest 클래스와 loginTest.html 을 만들어 주겠습니다

LoginTest는 sec04.ex01패키지 내에 만들어 주겠습니다.

login.html은 WebContent에 폴더 test01 생성후 만들어 주었습니다.

프로젝트 실행해 주시고

주소창에 아래와 같이 입력해주세요 localhost:8080/pro06/test01/login.html

아이디와 비밀번호 입력시 뜨는 화면

 

아이디가 없을 시 뜨는 화면

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

앞에서는 <form>태그에서 바로 서블릿으로 데이터를 전송했지만 전송 전에 로그인하면 id와 비밀번호 입력 유무 체크하기처럼 전송 데이터에 대해 유효성 검사를 하는 경우가 많습니다. 이런 기능은 자바스크립트로 구현하므로 자바스크립트로 서블릿에 요청하는 방법을 알아보겠습니다.

 

우선 LoginServlet5클래스와 login2.html을 만들어보겠습니다.

실습 위치

login2.html을 작성하겠습니다.

<hidden>태그를 이용해 화면에는 보이지 않게 하면서 값을 서블릿으로 전송합니다.

 

비밀번호를 넣지 않았을 때 발생하는 alert창

 

로그인 이후 창

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

웹 프로그램에서는 GET방식과 POST방식을 혼합해서 많이 사용합니다.

이럴때마다 일일이 구분한다면 많이 불편하게 됩니다.

그래서 doGet()이나 doPost()메서드로 처리한 후 다시 doHandle()을 호출해서 기능을 구현해 보겠습니다.

 

웹컨텐츠에 login.html 파일 생성

login.html

 

그 후 sec03.ex 패키지에서

NEW - > SERVLET -> 클래스명은 LoginServlet4 -> NEXT -> NEXT 를 하시면

이렇게 체크하여 주고 Finish 하시면 됩니다

하지만 초보자 입장에서는 이렇게 만드는 것 보다는

직접 따라 쳐주시길 권장합니다

NEW- > CLASS (LoginServlet4)

실행후 웹브라우저 창에서 아래와 같이 login.html 까지 쳐주셔야 합니다.

POST방식
get방식

login.html에서 method를 get으로 바꿔보고 해보세요 또는 post로 바꿔보고 해보세요.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,