JSP

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 7

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 강의링크 : https://www.slipp.net/wiki/pages/viewpage.action?pageId=25526405 지난 게시글에서, 개인정보수정을 서블릿을 통해 구현하고 form.jsp에 view 페이지를 통합해서 중복을 제거하는 과정을 진행했습니다. 하지만, 우리가 현재 만든 개인정보수정 폼은 보안적인 측면에서 큰 문제가 있는데요. 어떤게 문제일까요? 실제로 수정된 정보를 입력해서 로직을 처리하는 UpdateUserServlet에서 현재 로그인된 사용자가 맞는지 확인하는 단계가 이루어지지 않고 있습니다. 이는, 제대로 된 경로가 아닌 접근을 통해 이 서블릿으로 어떠한 사용자가 접근한다면 맘대로 다른 사용자의 정보를 수정할 수도 있는..

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 6

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 강의 링크 : https://www.slipp.net/wiki/pages/viewpage.action?pageId=25526852 저번 시간까지, Mysql을 이용해서 사용자의 정보를 데이터베이스에 저장하는 기능을 구현했습니다. 이제, 서버를 재시작해도 사용자의 정보가 없어지지 않고 저장되어 있어서 로그인을 하는 것이 가능해졌습니다. ※ 개인정보수정 폼 구현하기 아직 화면 상에서 구현되지 않은 것이 하나 있는데요. 바로 '개인정보수정'이죠? 이 부분을 만들어보도록 하겠습니다.기본적인 틀은 form.jsp와 비슷하기 때문에 복사해서 가져오고, 달라지는 부분만 수정하는 식으로 만들겠습니다. 회원가입에 해당하는 form.jsp는 모두 빈 칸으로 구성되어..

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 5

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 강의 링크 : https://www.slipp.net/wiki/pages/viewpage.action?pageId=25526852이번 시간부터는 드디어 데이터베이스를 연결해보는 과정이 이루어집니다! mysql을 이용해서 데이터를 저장시켜보도록 하겠습니다. 우선 mysql을 다운로드 받고 진행해보도록 합시다. 설치가 완료되면, cmd 창을 띄운 후 mysql에 접속해봅시다. mysql -uroot -p mysql의 root계정으로 들어가는 명령입니다. 만약 password를 지정했으면 입력하시고, 안했으면 그냥 enter치시면 접속이 될 겁니다. 이제 데이터베이스를 생성하기 위해 아래와 같이 입력해줍니다. CREATE DATABASE '만들 데이터베..

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 4

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 강의 링크 : https://www.slipp.net/wiki/pages/viewpage.action?pageId=25526852 지금까지, 홈페이지 상에서 회원가입과 로그인 구현을 진행했습니다. 이번 시간에는 조금 더 효율적인 코드를 구성해보는 것에 대해 포스팅하려고 합니다. 우리는 지금 jsp파일을 통해 로그인과 회원가입에서 작성한 사용자 데이터들을 받아 서버가 돌아가는 동안 DB에 저장하고 이를 활용하고 있습니다.이를 구현하기 위해서 jsp파일 안에 구문을 통해 자바 코드를 넣고 있는데요. 이는 장기적인 측면에서 좋은 구현 방법이 아닙니다. jsp로만 작성하면 발생할 수 있는 문제점은 여러가지가 있습니다. 우선, 여러 import 과정을 거치..

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - TDD

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - TDD 강의 링크 : https://www.slipp.net/wiki/pages/viewpage.action?pageId=25526852 강의를 이어서 진행하기에 앞서, 단위 테스트 과정에 대해 포스팅하고자 합니다. 우리는 프로젝트를 만들면서, 중간중간에 제대로 구현이 되고 있는지 한번씩 실행해보며 확인합니다. 하지만 처음부터 깔끔하고 완벽한 코드를 만드는 것은 매우 힘든 일입니다. 따라서 프로젝트의 실제 파일을 작성하기에 앞서, 테스트 파일을 통해 제대로 구현하는 지 실험해보는 과정을 거치게 됩니다. 이러한 테스트 과정을 흔히 TDD(Test Driven Development)라고 말합니다. 즉, 코드를 작성할 때부터 설계하라는 뜻입니다. 무..

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 3

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 강의 링크 : https://www.slipp.net/wiki/pages/viewpage.action?pageId=25526852 큰 홈페이지 틀을 만들었던 지난 시간에 이어서, 이번 시간에는 실제 로그인에 필요한 유저의 값들을 어떻게 저장하고 활용하는지 알아보도록 하겠습니다. 회원가입 창에서 볼 수 있듯이, 가입에 필요한 정보는 아이디, 비밀번호, 이름, 이메일 총 4가지입니다. 이 정보를 저장할 User 클래스와 데이터베이스 클래스를 만들도록 합시다.(추후에 유지보수를 위해서 각 클래스는 다른 패키지로 저장하는 것이 좋습니다.) 우선 완성된 코드들은 아래와 같습니다. User.java1234567891011121314151617181920212..

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 2

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 강의 링크 : https://www.slipp.net/wiki/pages/viewpage.action?pageId=25526852 수업에서 진행되는 홈페이지는, 부트스트랩으로 만들었습니다. 실제 강의에서 홈페이지를 만들어가는 과정은 나오지 않고, 기존 틀을 만들었다는 가정하에 이어서 진행되고 있습니다. 따라서 githup에 올려주신 코드를 통해 eclipse로 가져와 수업에 필요한 부분만 커밋한 후 옮겨오는 과정을 진행하고 나서 수업을 들었습니다. 우선, 메인 페이지와 회원가입 페이지에 대한 내용은 아래와 같습니다.( 부트스트랩 코드는 생략하도록 하겠습니다. ) 혹시 코드를 보시려면 제 github에 있는 코드를 확인하시면 됩니다. index.js..

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 1

    Servlet/JSP로 사용자 관리 시스템 구현하기 과정 링크 : https://www.slipp.net/wiki/pages/viewpage.action?pageId=25526852 회원가입 기능 구현의 예외처리까지 진행한 과정에 대해서 한번 더 복습하는 차원에서 정리해보겠습니다. 우선 포트8080에서 서버를 만들어야 합니다. 우리는 이로써 localhost:8080 주소를 통해 우리가 만들어갈 웹 사이트를 확인할 수 있습니다. WebServerLauncher.java 1234567891011121314151617181920package net.slipp; import java.io.File; import org.apache.catalina.connector.Connector;import org.apac..

    [JSP] 자바 빈(Bean)

    [JSP] 자바 빈(Bean) 빈(Bean)이란?반복적인 작업을 효율적으로 하기 위해 사용한다.빈(Bean)은 java언어의 데이터(속성)와 기능(메소드)으로 이루어진 클래스다.jsp 페이지를 만들어 액션태그를 통해 빈을 사용할 수 있으며, 빈은 내부 데이터를 처리한다. 빈은 프로젝트에서 class를 만들어 생성할 수 있다.1234567891011121314151617181920212223242526272829package com.javalex.ex; public class Student { private String name;private int age;private int grade;private int studentNum; public Student() { } public String getName..

    [JSP] 예외 페이지

    [JSP] 예외 페이지 예외 페이지의 필요성JAVA에서 예외처리 (try-catch)를 사용하듯이, JSP나 Servlet에서도 예외가 발생할 수 있다.예외적 상황이 발생했을 경우, 톰캣에서 제공되는 기본적인 예외 페이지가 보여지면 사용자 입장에서 불쾌감이나 거부감이 들 수 있다. 따라서 약간 딱딱한 에러 페이지보다 친근한 느낌이 느껴지는 페이지로 유도할 수 있는 장점이 있다. 예외 페이지 처리는 page 지시자를 이용한다. 에러가 발생하면, errorPage.jsp로 넘어간다는 뜻이다.errorPage.jsp에서는 page지시자와 Status 값을 지정해준다. 1234 cs isErrorPage의 기본값은 false이기 때문에 true로 설정해준다.에러 내용은 exception의 메시지를 통해 불러올 ..

    [JSP] 세션

    [JSP] 세션(session)세션이란?세션도 쿠키와 마찬가지로 서버와의 관계를 유지하기 위한 수단하지만, 세션은 쿠키와 달리 클라이언트의 특정 위치에 저장되는 것이 아니라 '서버 상에 객체로 존재'따라서 세션은 서버에서만 접근이 가능하기 때문에 보안이 좋고, 저장할 수 있는 데이터 한계 없음 클라이언트 요청 (웹 브라우저)session 자동 생성Session 속성 설정 (session 내부 객체의 메소드 이용) 세션을 이용한 간단한 로그인 페이지 만들기 login.html12345678910111213141516Insert title here 아이디 : 비밀번호 : Colored by Color Scriptercs 로그인하면, action을 통해 loginOk.jsp로 post형태로 전송된다. logi..

    [JSP] 쿠키

    [JSP] 쿠키 쿠키란?웹 브라우저에서 서버로 어떤 데이터를 요청하면, 서버측에서는 알맞은 로직을 수행한 후 데이터를 웹 브라우저에 응답한다. 그리고 서버는 웹브라우저와의 관계를 '종료'한다.웹 브라우저에 응답 후에 관계를 끊는 것은 'http 프로토콜'의 특징이다.연결이 끊겼을 때, 어떤 정보를 지속적으로 유지하기 위한 수단으로 '쿠키'를 사용한다.쿠키는 서버에서 생성 되고, 클라이언트 속에 특정 정보를 저장한다. 그리고 서버에 요청할 때마다 쿠키의 속성값을 참조하거나 변경할 수 있다. 쿠키 생성 (쿠키 클래스 이용)속성 설정 (id,pw,name 등 속성을 setter를 이용해서 전송)response 객체에 쿠키 탑재 (response.addCookie()를 이용) ※주의우리가 기존에 req와 res..

    [JSP] 액션 태그

    [JSP] 액션 태그 액션 태그란?jsp페이지 내에서 어떤 동작을 하도록 지시하는 태그forward, include, param 태그와 추가로 bean도 해당 1. forward 현재의 페이지에서 다른 특정페이지로 전환할 때 사용 12main.jsp 페이지 입니다.cs main.jsp에서 forward 태그를 사용하면, 출력화면은 sub.jsp가 된다.(하지만 url은 main.jsp로 나타남) 2. include 현재 페이지에 다른 페이지를 삽입할 때 사용 123include01.jsp 페이지 입니다. 다시 include01.jsp 페이지 입니다.cs include01.jsp에서 include 태그를 사용하면, 해당 위치에 include02.jsp 출력문이 삽입된다. 3. param forward 및 ..

    [JSP] JSP 기본 정리

    JSP 기본 정리JSP태그 종류지시자 : : 페이지 속성주석 : 선언 : : 변수, 메소드 선언표현식 : : 결과값 출력스크립트릿: : JAVA코드액션태그 : : 자바빈 연결 JSP 동작 원리클라이언트가 웹브라우저로 helloWorld.jsp를 요청하게 되면, JSP컨테이너가 JSP파일을 Servlet파일(.java)로 변환한다.​웹브라우저 요청 → JSP >> Servlet(.jsp >> .java ) → Servlet >> class(.java >> class) → 웹브라우저 응답 내부 객체 종류입출력 객체 : request, response, out서블릿 객체 : page, config세션 객체 : session예외 객체 : exception

    [JSP] Servlet 정리

    Servlet 동적 웹어플리케이션 컴포넌트.java 확장자클라이언트 요청에 동적으로 작동하고, 응답은 html 이용java thread 이용하여 동작MVC패턴에서 Controller로 이용 MVC 패턴 경로 1. 클라이언트가 요청하면, 컨트롤러(서블랫)는 어떤 작업을 수행할건지 Model에게 지시를 내린다.2. 모델 측에서 로직을 수행하면서 (DB 활용) 완료된 결과를 컨트롤러에게 다시 건내준다.3. 컨트롤러는 받은 정보를 뷰에게 전송해주고, 뷰는 JSP나 html을 이용해서 사용자가 볼 수 있도록 만들어준다. HTTPServlet - 서블릿을 생성할 때, 일반 클래스와는 다르게 슈퍼클래스에서는 이를 상속받아야 서블릿 클래스로 사용이 가능하다. URL 맵핑- 너무 길고, 보안에 노출되어 있는 경로를 간단..