19.05.23 고급 서블릿 파라미터 활용 (model 2 동영상 8강)

Back-End/JSP 2019. 5. 23. 11:38

-(Bean 클래스를 활용) 서블릿 파라미터 처리-


use bean은 서블릿에서 사용불가 (자바코드이기 때문에)


requset.getParameter를 사용하지 않고 


빈클래스를 만들어 jsp로 자료를 한번에 넘기기




-예제 및 출력 결과-


Memberjoin2.jsp (회원가입 페이지)

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
    <center>
        <h2>회원 가입 양식</h2>
        <form action="MProc2" method="post">
            <!--서블릿 이름 (맵핑할) 클래스 이름이 아님-->
            <table width="400" border="1" bordercolor="gray">
                <tr height="40">
                    <td width="150" align="center">아이디</td>
                    <td width="250"><input type="text" name="id"></td>
                </tr>
 
                <tr height="40">
                    <td width="150" align="center">패스워드</td>
                    <td width="250"><input type="password" name="password"></td>
                </tr>
 
                <tr height="40">
                    <td width="150" align="center">이메일</td>
                    <td width="250"><input type="email" name="email"></td>
                </tr>
 
                <tr height="40">
                    <td width="150" align="center">전화번호</td>
                    <td width="250"><input type="tel" name="tel"></td>
                </tr>
 
                <tr height="40">
                    <td width="150" align="center">주소</td>
                    <td width="250"><input type="text" name="address"></td>
                </tr>
 
                <tr height="40">
                    <td width="40" align="center" colspan="2"><input type="submit"
                        value="회원가입"></td>
                </tr>
 
            </table>
        </form>
    </center>
</body>
</html>
cs



MemberJoinProc2.java (회원가입한 회원의 빈 클래스를 사용해서 처리하는 서블릿 페이지)

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package control;
 
import java.io.IOException;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import model.MemberBean;
 
/**
 * Servlet implementation class MemberJoinProc2
 */
@WebServlet("/MProc2"// Memberjoin2 jsp파일에서 MProc2를 호출하고 있으므로 url도 그거에 맞게끔 변경 (맵핑 한다)
public class MemberJoinProc2 extends HttpServlet {
 
    // doGet와 doPost는 값을 2개 밖에 받지못한다 . (request, response 두개만 받을수 있다. 개수가 넘어갈시에는
    // 넘겨지지 않음)
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        reqPro(request, response);
    }
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        reqPro(request, response);
    }
 
    protected void reqPro(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        // 유즈빈은 자바코드이므로 사용이 불가하다 그러므로 멤버빈 클래스를 활용한다.
 
        // 멤버빈을 사용하기 위해 멤버빈 객체를 생성
        MemberBean bean = new MemberBean();
 
        // 값들을 하나씩 받아와 빈 클래스에 저장함
        bean.setId(request.getParameter("id"));
        bean.setPassword(request.getParameter("password"));
        bean.setEmail(request.getParameter("email"));
        bean.setTel(request.getParameter("tel"));
        bean.setAddress(request.getParameter("address"));
 
        // request 객체에 bean 클래스를 추가
        request.setAttribute("bean", bean);
 
        RequestDispatcher dis = request.getRequestDispatcher("MemberView.jsp");
        dis.forward(request, response);
 
    }
}
 
cs



MemberBean.java (회원가입 빈 클래스)

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package model;
 
public class MemberBean {
 
    private String id;
    private String password;
    private String email;
    private String tel;
    private String address;
 
    public String getId() {
        return id;
    }
 
    public void setId(String id) {
        this.id = id;
    }
 
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
    public String getEmail() {
        return email;
    }
 
    public void setEmail(String email) {
        this.email = email;
    }
 
    public String getTel() {
        return tel;
    }
 
    public void setTel(String tel) {
        this.tel = tel;
    }
 
    public String getAddress() {
        return address;
    }
 
    public void setAddress(String address) {
        this.address = address;
    }
 
}
 
cs



MemberView.jsp (빈클래스에서 자료를 넘겨받아서 출력하는 페이지)

1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>당신의 아이디는 ${bean.id } 당신의 패스워드는 ${bean.password }
 
 
</body>
</html>
cs




:

19.05.23 고급 서블릿 활용 (model 2 7강)

Back-End/JSP 2019. 5. 23. 10:27

-예제 및 출력 결과-


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package control;
 
import java.io.IOException;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 * Servlet implementation class HelloWorld
 */
@WebServlet("/HelloWorld"// /HelloWorld라고 주소 url에 표시해주어야 이 서블릿 클래스가 실행됩니다.
                            // 만약 코드를 (" ") 안쪽에 주소를 변경하면 실행되지 않는다. (인위적으로 변경시 실행가능)
                            // 이것을 url 매핑이라 한다. (url과 서블릿이 동일해야 실행된다.)
 
public class HelloWorld extends HttpServlet {
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        reqPro(request, response);
    }
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        reqPro(request, response);
    }
 
    // Get방식과 Post방식을 둘다 처리해주는 메소드를 만들면 편하다.
    // 일괄처리 즉, doget 이던 dopost 이던 아래 reqpro 메소드가 실행되게 해줌
    protected void reqPro(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        // 화면에 Helloworld 라고 출력을 하고 싶어요.. jsp 쪽으로 넘겨질 데이터를 설정
        String msg = "Hello World~~ 안녕하세요.";
        Integer data = 12;
 
        // jsp 쪽으로 데이터를 request에 부착하여 넘겨줌
        // setAttribute는 오브젝트 타입이므로 모든 객체를 다 집어넣을 수 있다.
        request.setAttribute("msg", msg);
        request.setAttribute("data", data);
 
        // 서블릿에서 jsp를 호출하면서 데이터를 같이 넘겨주는 객체 RequestDispatcher(인터페이스) 를 선언
        RequestDispatcher rd = request.getRequestDispatcher("HelloWorld.jsp"); // jsp 파일명을 기술
        // jsp로 (request, response) 데이터를 이동
        rd.forward(request, response);
 
    }
 
}
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
 
    <center>
        <h2>결과 보기</h2>
 
        인사말 : ${msg }
        <p>숫자 : ${data }
    </center>
</body>
</html>
 
cs


HelloWorld URL과 매핑된 값이 출력된다.



:

19.05.22 서블릿 이해

Back-End/JSP 2019. 5. 22. 23:46



  

  서블릿의 이해


  1. 홈페이지 (클라이언트)에서 자료를 요구함


  2. 사용자의 요청을 받아들여서 Controller (Servlet) 에서 처리함


  3. DAO클래스가 DB서버로 접근해서 모든 DB데이터를 가져온다.


  4. Servlet쪽에 받은  자료를 넘겨준다.


  5. Servlet쪽에서는 결과를 JSP에 보내준다.


  6. JSP 에서는 다시 홈페이지 (클라이언트에) 자료를 출력해준다.





-MVC 패턴 (Model View Controller)-


사용자 인터페이스로부터 개발하는 부분을 완전히 분리해놓은 형태.

개발, 테스트, 유지를 독립적으로 수행 할 수 있게 해주기도 한다.




-서블릿 사용 이유-


JSP 페이지에서 자바코드를 분리하기 위함




-서블릿 작성, 맵핑하는 두 가지 방법-


1. 프로그램 실행 시 web.xml을 가장 먼저 읽어들이므로 web.xml 코드에 URL과 서블릿을 맵핑(대응)시키는 방법

   ( ex. URL에 hello.do가 들어오면 서블릿클래스인 HellowWorld가 실행되게끔)


2. 어노테이션을 이용한 방법 ( 최신버전에서만 사용 가능 )



  

  1. 이클립스에서 서블릿코드 생성


  2. 서블릿(Servlet) 코드 작성


  3. URL과 서블릿 맵핑(Mapping)하기


  4. 실행 후 웹브라우저에서 결과 확인 


:

JavaScript 숫자와 문자 -2

Front-End/javascript 2019. 5. 22. 22:13



문자열 사용 출력상태 확인(" ") , (' ')



1
2
3
4
5
6
7
8
alert('coding everybody'); //정상 출력
undefined
 
alert("coding everybody"); //정상 출력
undefined
 
 
alert("coding everybody');
VM186:1 Uncaught SyntaxError: Invalid or unexpected token
//문법 에러가 발생함
//큰 따움표가 닫혀있지 않기 때문
cs

 

 

값의 타입을 확인하는 법 

 

typeof를 사용

 

  
  typeof 1


  "number" //1은 숫자 타입


  typeof "1"


  "string" //"1"은 문자타입

 

 

 

indexOf 타입

 

""안에 있는 문자에서 ("")안에 있는 문자의 순서 (숫자) 를 출력함

 

1
2
3
4
5
6
"code".indexOf("o")
1
"code".indexOf("d")
2
"code".indexOf("c")
0
cs

 

아래 책은 제가 공부할때 활용했던 책으로 추천드리는 책이니 한번씩 읽어보시는것을 추천드립니다!! ㅎㅎ

토비의 스프링 3.1 세트:스프링의 이해와 원리 + 스프링의 기술과, 에이콘출판

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

'Front-End > javascript' 카테고리의 다른 글

javascript 주석, 줄바꿈, 여백  (0) 2019.05.23
JavaScript 변수  (0) 2019.05.23
JavaScript 숫자와 문자 -1  (0) 2019.05.22
sublimetext 설치  (0) 2019.05.22
JavaScript 실행 및 실습  (0) 2019.05.21
:

JavaScript 숫자와 문자 -1

Front-End/javascript 2019. 5. 22. 20:49

-Sublime Text 사용 자바 스크립트 작성법-

 

 

Sublime Text 실행

 

 

Add Folder to Project 클릭

 

 

 

사용할 폴더 선택

 

 

 

 

왼쪽으로 창에서 폴더 및 파일 생성

 

 

 

 

 

 

기본적인 문법을 쉽게 작성하고 싶을때는 

html을 입력하고 Tab를 누르면 아래와 같이 코드가 자동 생성된다.

 

1
2
3
4
5
6
7
8
9
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
 
</body>
</html>
cs

 

 

마찬가지로 script를 입력하고 Tab를 누르면 아래와 같이 코드가 자동 생성된다.

 

1
<script type="text/javascript"></script>
cs
 
 
웹에서 경고창을 출력 하는 코드
 


  alert(6/2);        //웹에서 3이라는 경고창 출력

 

 

 

바로 콘솔창에서 출력 하는 코드

 



  console.log(6/2);        //콘솔창에서 3이 출력

 

 

숫자를 제곱하고 싶을때
 
  
  Math.pow ( 3, 2 );      //콘솔창에서 9가 출력

 

숫자를 반올림 할때
 
  
  Math.round (10.6);  //콘솔창에서 11이 출력

 
가장 가까운 위의 정수가 출력
 


  Math.ceil (10.2);    //콘솔창에서 11이 출력

 

 
가장 가까운 아래쪽 정수가 출력
 


  Math.floor (10.2);      //콘솔창에서 10이 출력

 

 
()안에 있는 수의 제곱근이 출력
 


  Math.sqrt (9)         //콘솔창에서 3이 출력

 

 
랜덤한 숫자를 출력
 


  Math.random();   //랜덤은 1보다 작은숫자가 랜덤으로 출력되기 때문에 앞에서 *를 붙여 범위를 지정해 사용할 수도 있다.
 //ex ) 100 * Math.random();이면 100보다 작은수가 랜덤으로 출력
 

 

 
 
 
 
 

 

아래 책은 제가 공부할때 활용했던 책으로 추천드리는 책이니 한번씩 읽어보시는것을 추천드립니다!! ㅎㅎ

토비의 스프링 3.1 세트:스프링의 이해와 원리 + 스프링의 기술과, 에이콘출판

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

'Front-End > javascript' 카테고리의 다른 글

JavaScript 변수  (0) 2019.05.23
JavaScript 숫자와 문자 -2  (0) 2019.05.22
sublimetext 설치  (0) 2019.05.22
JavaScript 실행 및 실습  (0) 2019.05.21
JavaScript 학습일정  (0) 2019.05.16
:

sublimetext 설치

Front-End/javascript 2019. 5. 22. 20:26

 

 

sublimetext 설치법

 

http://w3devlabs.net/wp/?p=16794

 

 

 

 

 

sublimetext 설치 링크

 

https://www.sublimetext.com/3

아래 책은 제가 공부할때 활용했던 책으로 추천드리는 책이니 한번씩 읽어보시는것을 추천드립니다!! ㅎㅎ

토비의 스프링 3.1 세트:스프링의 이해와 원리 + 스프링의 기술과, 에이콘출판

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

'Front-End > javascript' 카테고리의 다른 글

JavaScript 숫자와 문자 -2  (0) 2019.05.22
JavaScript 숫자와 문자 -1  (0) 2019.05.22
JavaScript 실행 및 실습  (0) 2019.05.21
JavaScript 학습일정  (0) 2019.05.16
js(자바스크립트 파일) 만드는법  (0) 2019.05.07
:

프로젝트 관련 자료

팀프로젝트 2019. 5. 22. 13:45

-회원가입-


휴대폰 번호 인증받기

https://beam307.github.io/2017/12/08/sendSMS/ (스프링)




-회원수정-


패스워드 조건 (정규식 패턴)

https://dualist.tistory.com/204 (자바 스크립트)




-아이디, 비밀번호 찾기-



아이디 찾기 : 


이름과 휴대폰번호를 입력하고 DB에 저장된 동일한 사람의 이름과 휴대폰번호가 모두 일치하면 DB테이블에서 아이디를 반환해서 

화면에 출력되도록 한다.




비밀번호 찾기 :


아이디와 이메일을 입력하고 "이메일 인증 받기" 버튼을 누르면 인증번호가 이메일에 전송되서 그 인증번호를 입력하면 임시 비밀번호가 발급됨

https://m.blog.naver.com/PostView.nhn?blogId=heartflow89&logNo=221114309890&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F (스프링)




자동 로그인

이론 - https://isme2n.github.io/devlog/2017/06/13/security-remember-me/

구현 - http://www.joshi.co.kr/index.php?mid=SPRING&document_srl=305769







:

스프링 (백기선) 학습일정, 인강

Back-End/Spring 2019. 5. 22. 10:58

백기선


1. 스프링 프레임워크 입문


https://www.inflearn.com/course/spring



2. 예제로 배우는 스프링 입문


https://www.inflearn.com/course/spring_revised_edition










'Back-End > Spring' 카테고리의 다른 글

spring 로킹툴  (0) 2019.05.28
표준 프레임워크 오픈 커뮤니티  (0) 2019.05.28
스프링의 실행 과정, 스프링의 특징  (0) 2019.05.28
Spring 설치  (0) 2019.05.27
Spring Lagacy, Boot 학습 일정  (0) 2019.05.16
: