Sevlet, HttpServletRequest 기능 알게된 것
- Sevlet, HttpServletRequest
서블릿 객체자체는 싱글톤으로 서블릿 컨테이너에 등록되고, 객체마다 매핑된 url로 요청이 들어오면, 서블릿 컨테이너는 요청 하나하나마다 개발자에 의해 구현된 아래의 메소드를 실행시킨다.
protected void service(HttpServletRequest request, HttpServletResponse response){
//비지니스 로직 구현
}
HttpServletRequest 객체에는 서블릿에 의해 파싱된 HTTP 요청 메세지 데이터가 들어있다. 이 객체를 통해 개발자는 요청 메세지를 이용하여 비지니스 로직을 구현한다.
이외에도 HTTP 요청의 생성과 종료시까지 유지되는 임시 저장소의 기능도 한다.(setAttribute,getAttribute)
또한 세션 관리 기능 또한 제공한다.
- 톰캣은 서블릿 컨테이너이다.
아파치 톰캣(Apache Tomcat)은 오래된 오픈소스 자바 서블릿 컨테이너이고, 자바 서블릿(Java Servlet), 자바서버 페이지(JavaServer Pages, JSP), 웹소켓 API 등 핵심적인 자바 엔터프라이즈 규격을 구현한다.
참고 - https://www.oss.kr/info_techtip/show/22c3ca04-a799-4bfa-bff3-6c23dba6d52a
최초의 자바 서블릿 컨테이너 '아파치 톰캣'을 아십니까? - 공개SW 포털
12월 25일 ⓒ CIO Matthew Tyson | InfoWorld 아파치 톰캣(Apache Tomcat)은 오래된 오픈소스 자바 서블릿 컨테이너이고, 자바 서블릿(Java S...
www.oss.kr
톰캣 = 그냥 서버 엔진 정도의 생각만 갖고 있었는데, 자바 서블릿 컨테이너로 개발되었다는 것을 알게 되었다.
프로그래머스 코딩테스트 연습문제 - 문자열 내마음대로 정렬하기
https://programmers.co.kr/learn/courses/30/lessons/12915
코딩테스트 연습 - 문자열 내 마음대로 정렬하기
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱
programmers.co.kr
이 문제도 Stream을 쓸수 있을 것 같아서 풀었는데, sort하는 비교과정이 너무 복잡해서 괜히 썼나 싶은 생각이 들었다.
import java.util.*;
class Solution {
public String[] solution(String[] strings, int n) {
return Arrays.stream(strings)
.sorted((s1,s2)->{
if(s1.charAt(n) > s2.charAt(n))return 1;
else if(s1.charAt(n) < s2.charAt(n)) return -1;
else{
if(s1.compareTo(s2) > 0) return 1;
else if(s1.compareTo(s2) < 0) return -1;
else return 0;
}
})
.toArray(String[]::new);
}
}
어떻게하면 효율적으로 줄일 수 있을까 생각 하던 중 아래와 같이 짤게 줄인 코드를 보게 되었다.
import java.util.Arrays;
import java.util.Comparator;
class Solution {
public String[] solution(String[] strings, int n) {
Arrays.sort(strings);
Arrays.sort(strings,Comparator.comparing(s-> s.charAt(n)));
return strings;
}
}
두번 정렬을 해주기는 하지만 그래도 엄청나게 Arrays.sort() 와 람다를 통해 엄청나게 간단하게 정렬을 해줄 수 있는 것을 확인할 수 있다.
내일 서블릿이랑 HTTP 공부 끝내고 시간 남으면 Arrays.sort 정리와 Comparator, Comparable 정리를 같이 꼭 해봐야겠다.
'TIL' 카테고리의 다른 글
[2022-1-21]Servlet, jsp + HTTP 메서드 종류 (0) | 2022.01.22 |
---|---|
[2022-1-20]HttpServletResponse 과 HTTP공부 (0) | 2022.01.20 |
[2022-01-18] 스프링MVC 멀티쓰레드개념, 프로그래머스 TIL (0) | 2022.01.18 |
[2022-1-17] 네트워크, 스프링 MVC 공부 (0) | 2022.01.18 |
[2022-1-16] 스프링 공부 스프링 핵심 원리 - 기본편 완강!! (0) | 2022.01.17 |