반응형

Java 87

Dispatcher방식과 Redirect 방식

Dispatcher방식과 Redirect 방식 서블릿에서 특정 URL이나 페이지로 이동하게 하는 두 가지 방식이 있는데, 두 방식의 차이점에 대해 알아보자. 1. Dispatcher방식 -->forward() forward()[전달하기]는 클라이언트가 요청하면서 전송한 데이터를 그대로 유지한다. (1) 예제 RequestDispatcher dispatcher = request.getRequestDispatcher("dispatcher.jsp"); request.setAttribute("request","requestValue"); dispatcher.forward(request, response); dispatcher.jsp request 속성 값 : 포워딩이 되더라도 주소가 변경되지 않는다. (같은 r..

Java 2020.12.04

RequestDispatcher란?

RequestDispatcher란 RequestDispatcher는 클라이언트로부터 최초에 들어온 요청을 JSP/Servlet 내에서 원하는 자원으로 요청을 넘기는(보내는) 역할을 수행하거나, 특정 자원에 처리를 요청하고 처리 결과를 얻어오는 기능을 수행하는 클래스입니다. 즉 /a.jsp 로 들어온 요청을 /a.jsp 내에서 RequestDispatcher를 사용하여 b.jsp로 요청을 보낼 수 있습니다. 또는 a.jsp에서 b.jsp로 처리를 요청하고 b.jsp에서 처리한 결과 내용을 a.jsp의 결과에 포함시킬 수 있습니다. 요청을 보내는 방법으로는 RequestDispatcher#forward()와 RequestDispatcher#include() 두 가지 방법이 있습니다. 앞으로 이 두가지 방법에..

Java 2020.12.04

.contains() .startwith()

.startwith() 과 .contains()는 boolean 타입으로 해당 String 변수를 포함하고 있는지 확인하는 .contains() 메소드와 해당 String 변수로 시작하는지 확인하는 .startwith() 메소드가 있다. startwith()은 startwith(String)과, startwith(String, beginIndex) 두 가지의 형태가 있으며, 시작하는 인덱스 번호를 입력할 수 있다. public class StartWith { public static void main(String[] args) { String str1 = "redirect:.java"; System.out.println(str1.contains("java")); System.out.println(str1..

Java 2020.12.04

hashCode()와 equals()

equals() 두 객체의 내용이 같은지 확인하는 메소드 package bb.bb.bb; public class HashCode { public static void main(String[] args) { String str1 = new String(); str1 = "same"; String str2 = new String(); str2 = "same"; String str3 = new String("same"); System.out.println(str1.equals(str2)); System.out.println(str1 == str2); System.out.println(str1 == str3); } } hashCode() 객체의 주소값을 이용하여 객체 고유의 해시코드를 리턴하는 함수이다. has..

Java 2020.12.04

hashCode()와 equals()

equals() 두 객체의 내용이 같은지 확인하는 메소드 package bb.bb.bb; public class HashCode { public static void main(String[] args) { String str1 = new String(); str1 = "same"; String str2 = new String(); str2 = "same"; String str3 = new String("same"); System.out.println(str1.equals(str2)); System.out.println(str1 == str2); System.out.println(str1 == str3); } } hashCode() 객체의 주소값을 이용하여 객체 고유의 해시코드를 리턴하는 함수이다. has..

Java 2020.12.04

15.3.1 HashSet

HashSet은 Set 인터페이스의 구현 클래스이다. HashSet을 생성하기 위해서는 다음과 같이 기본 생성자를 호출하면 된다. Set set = new HashSet(); 타입 파라미터 E에는 컬렉션에 저장할 객체 타입을 지정하면 된다. 예를 들어 String 객체를 저장하는 HashSet은 다음과 같이 생성할 수 있다. Set set = new HashSet(); HashSet은 객체들은 순서 없이 저장하고 동일한 객체는 중복 저장하지 않는다. HashSet이 판단하는 동일한 객체란 꼭 같은 인스턴스를 뜻하지는 않는다. HashSet은 객체를 저장하기 전에 먼저 객체의 hashCode() 메소드를 호출해서 해시코드를 얻어낸다. 그리고 이미 저장되어 있는 객체들의 해시코드와 비교하낟. 만약 동일한 해..

equals와 hashCode의 관계

[ equals와 hashCode의 관계 ] 동일한 객체는 동일한 메모리 주소를 갖는다는 것을 의미하므로, 동일한 객체는 동일한 해시코드를 가져야 한다. 그렇기 때문에 만약 우리가 equals() 메소드를 오버라이드 한다면, hashCode() 메소드도 오버라이드 되어야 한다. 이러한 equals와 hashCode의 관계를 정의하면 다음과 같다. Java 프로그램을 실행하는 동안 equals에 사용된 정보가 수정되지 않았다면, hashCode는 항상 동일한 정수값을 반환해야 한다. (Java의 프로그램을 실행할 때 마다 달라지는 것은 상관이 없다.) 두 객체가 equals()에 의해 동일하다면, 두 객체의 hashCode() 값도 일치해야 한다. 두 객체가 equals()에 의해 동일하지 않다면, 두 객..

Java 2020.12.04

15.3 Set 컬렉션

Set 컬렉션 List 컬렉션은 저장 순서를 유지하지만, Set 컬렉션은 저장 순서가 유지되지 않는다. 또한 객체를 중복해서 저장할 수 없고, 하나의 null만 저장할 수 있다. Set 컬렉션은 수학의 집합에 비유될 수 있다. 집합은 순서와 상관이 없고 중복이 허용되지 않기 때문이다. Set 컬렉션은 또한 구슬 주머니와도 같다. 동일한 구슬을 두 개 넣을 수 없고, 들어갈(저장할) 때의 순서와 나올(찾을) 때의 순서가 다를 수도 있기 때문이다. Set 컬렉션에는 HashSet, LinkedHashSet, TreeSet 등이 있는데, 다음은 Set 컬렉션에서 공통적으로 사용 가능한 Set 인터페이스의 메소드들이다. 인덱스로 관리하지 않기 때문에 인덱스를 매개값으로 갖는 메소드들이 없다. 기능 메소드 설명 ..

15.2.2 Vector

Vector는 ArrayList와 동일한 내부 구조를 가지고 있다. Vector를 생성하기 위해서는 저장할 객체 타입을 타입 파라미터로 표기하고 기본 생성자를 호출하면 된다. List list = new Vector(); ArrayList와 다른 점은 Vector는 동기화된(Synchronized) 메소드로 구성되어 있기 때문에 멀티스레드가 동시에 이 메소드들을 실행할 수 없고, 하나의 스레드가 실행을 완료해야만 다른 스레드를 실행할 수 있다. 그래서 멀티 스레드 환경에서 안전하게 객체를 추가, 삭제할 수 있다. 이것을 스레드가 안전(Thread Safe) 하다라고 말한다. - 다음은 Vector를 이용해서 Board 객체를 추가, 삭제, 검색하는 예제이다. VectorExample.java : Boar..

반응형