java jdk 설치 Oracle Java Technologies | OracleJava Is the Language of Possibilities Java is powering the innovation behind our digital world. Harness this potential with Java resources for student coders, hobbyists, developers, and IT leaders.www.oracle.com위의 페이지에 접속해 설치하고자 하는 운영체제와 원하는 버전의 java jdk를 다운로드해 설치하면 된다. 환경 변수 설정1. jdk 설치 경로 복사java를 설치할때 경로를 수정하지 않았다면 C:\Program Files\Java\[자바버전]으로 설치가..
WebAuthenticationDetails webAuthenticationDetails = ((WebAuthenticationDetails) authentication.getDetails()); String ipAddr = webAuthenticationDetails.getRemoteAddress(); Spring Security에서는 WebAuthenticationDetails의 getRemoteAddress()를 이용해 클라이언트의 ip를 알아낼 수 있다. 하지만 getRemoteAddress만으로는 실제 클라이언트의 헤더값 ip정보를 정확히 알아낼 수 없다. 그렇기에 클라이언트의 정확한 ip를 알아내기 위해서는 HttpServletRequest가 담긴 메소드 파라미터를 사용해야 한다. 1. Sec..
인텔리제이에서 콘솔 창에 한글 깨짐이 발생할 경우에 해결방법은 여러 가지가 있다. 1. [File] - [Settings] - [File Encodings] Global Encoding과 Project Encoding, 그리고 Default encoding for properties files를 확인하고 UTF-8로 바꾸어준다. 2. [File] - [Settings] - [Editor] - [General] - [Console] Default Encoding이 Utf-8로 설정이 안되있으면 바꿔준다. 3. [Help] -> [Edit Custom VM Options..] 해당 메뉴를 클릭하면 인텔리제이 옵션 설정파일이 열리는데 아래 구문을 추가해 준다. -Dfile.encoding=UTF-8 -Dcon..
Map을 이용한 json 객체 반환 @ResponseBody @RequestMapping(value = "/jsondata") public LinkedHashMap getJson(HttpServletRequest request, HttpServletResponse response, Model model) throws IOException { LinkedHashMap resultMap = new LinkedHashMap(); resultMap.put("title", "인포메이크"); resultMap.put("link", "https://letsplaycoding.tistory.com"); resultMap.put("description", "티스토리 블로그"); ArrayList itemArray = n..
문자열에 포함된 html 태그를 지우고 싶을 때에는 정규표현식을 많이 이용한다. 정규표현식이란 문자열 데이터에서 원하는 조건을 패턴의 형식으로 찾아내는 것을 말한다. 정규식은 전화번호, 주민등록번호, 이메일처럼 특정한 패턴이 있는 경우에 특히 많이 이용하게 된다. 정규식을 이용한 문자열 html 제거 기본 앱 '메시지'에 RCS 규격 추가…애플 기기간 '아이메시지'는 유지 아이폰에 기본 탑재된 문자메시지 전송 앱 '메시지'에 한 세대 전 규격인 SMS/MMS만 고집하던 애플이 구글과 유럽연합(EU) 압박에 결국 백기를 들었다. html 태그가 들어있는 샘플 코드이다. 태그 안에 텍스트와 태그가 골고루 들어 있다. contents.replaceAll("]*)?(\\s)*(/)?>", ""); 정규식을 만들..
java에서 xml을 파싱 할 때 Xpath를 이용하면 Dom 트리의 노드를 쉽게 검색이 가능하다. 파싱을 해보기 위해 임의의 xml을 하나 생성했다. 안에 이 반복되고 그 안에 과 각각 들어 있다. XPath를 이용한 xml 파싱 방법 public LinkedList xmlLoarder() throws Exception { log.info("xmlLoarder start"); DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); domFactory.setNamespaceAware(true); DocumentBuilder builder = domFactory.newDocumentBuilder(); String file_path..
자바에서 파일 다운로드를 구현하다 보면 문제가 발생할 때가 있다. 그건 바로 다운로드는 되지만 파일명의 특수문자가 깨진다거나 한글파일명은 다운로드가 안 되는 경우이다. 그래서 오늘은 파일다운로드 할때 어떤 브라우저를 사용하더라도 최대한 다운로드가 실패하지 않게 구현하는 방법을 알아보자. 사용자페이지 ${파일명} ${파일명2} ${파일명3} 파일명을 A 태그로 감싸고 data값에 파일명과 파일경로를 써 주었다. 다운로드 클릭 이벤트가 일어나면 A tag에 있는 data 속성값을 가져와서 변수에 담는다. 미리 만들어둔 download form에 넣고 submit()을 실행한다. 파일 다운로드 컨트롤러 @RequestMapping(value = "/file/download") public void downlo..
java에서 html을 엑셀로 출력하는 방법은 여러 가지가 있다.(poi 등등) 오늘은 그중에서 header만 간단히 변경해 엑셀이나 한글, 워드로 출력하는 방법을 알아보자. 출력해 볼 HTML office print 제목 내용 ${list.title} ${list.content} 출력할 내용은 db에서 불러왔고 jstl을 이용해 테이블 형식으로 만들었다. 더 예쁘게 스타일을 줄 수 있지만 일단 선 구분을 하기 위해 table에 border 값 1만 추가했다. 문서 상단에 다운로드 선언하기 jsp 상단에 헤더값을 선언한다. filename은 출력되는 파일이름이니 본인의 입맛에 맞게 변경하면 된다. 한글이 깨진다면 charset값을 변경해 주자. charset=utf-8, charset=euc-kr (js..
회사에서 응모하기 페이지를 만들라는 지령이 떨어졌다. 응모를 하기 위해서 필요한 건 개개인마다 다른 응모코드. 응모코드는 자바랜덤함수를 통해 구해보기로 했다. Math.random() 함수는 0이상 1미만의 값으로 난수를 반환한다. 이는 사용자가 지정한 값을 통해 원하는범위내의 값으로 변형이 가능하다. boolean flag = false; String reception = ""; Map map = new HashMap(); while (!flag) { Random rnd =new Random(); StringBuffer buf =new StringBuffer(); for(int i=0;i < 10;i++){ if(rnd.nextBoolean()){ buf.append((char)((int)(rnd.ne..
url에서 도메인과 패스를 분리해야 하는 과제가 생겼다. 어떻게 할지 고민하다가 pattern 클래스를 이용해 구해보기로 했다. 일단 분리하기 전에 url의 구조부터 알아보자. https://letsplaycoding.tistory.com/manage?utm_source=tistory#nice 프로토콜(protocal) : https 원활한 통신을 위해 모두가 지키기로한 약속이다. 도메인(domain) : letsplaycoding.tistory.com 임의로 지정한 사이트의 이름이다. 패스(path) : /manage 파일의 경로를 의미한다.컴퓨터로 따지면 폴더내에 폴더를 만들수 있는 개념이다. 파라미터(parameter) : ?utm_source=tistory 파라미터는 보통 쿼리 스트링으로도 불리며..