jsp에서는 xlsx 는 지원 안됨.

<!-------------------------------------------- MS - WORD -------------------------------------------->
<%@ page language="java" contentType="application/vnd.ms-excel;charset=utf-8" pageEncoding="utf-8"%>
 
    response.setHeader("Content-Disposition", "attachment; filename=test.xls"); 
    response.setHeader("Content-Description", "JSP Generated Data");
 
    // 저장 여부 묻지 않고 바로 저장
    response.setContentType("application/vnd.ms-excel");
 
 
<!-------------------------------------------- MS - EXCEL -------------------------------------------->
<%@ page language="java" contentType="application/vnd.word;charset=utf-8" pageEncoding="utf-8"%>
 
    response.setHeader("Content-Disposition", "attachment; filename=test.doc"); 
    response.setHeader("Content-Description", "JSP Generated Data");
 
    // 저장 여부 묻지 않고 바로 저장
    response.setContentType("application/vnd.ms-word");
 
 
<!-------------------------------------------- 한글 -------------------------------------------->
<%@ page language="java" contentType="application/hwp;charset=utf-8" pageEncoding="utf-8"%>
 
    response.setHeader("Content-Disposition", "attachment; filename=test.hwp"); 
    response.setHeader("Content-Description", "JSP Generated Data");
 
    // 저장 여부 묻지 않고 바로 저장
    response.setContentType("application/hwp");

 

'JSP' 카테고리의 다른 글

JSTL 의 eq , empty , ne 명령  (0) 2019.11.13

tr마다 동일 데이터 값이 있을 경우 아래, 위 셀병합. 

<tr class="link dataRow" >
	<td class="t1">홍길동</td>
	<td class="t2">테스트</td>
	<td class="t3">테스트2</td>
	<td class="t4">테스트3</td>
	<td class="t5_abcd_01">5</td>
	<td class="t6_abcd_02">3</td>
</tr>
$(document).ready(function(){
	genRowspan("t1");
	genRowspan("t2");
	genRowspanT5T6("t3_");
	genRowspanT5T6("t4_");
	genRowspanT5T6("t5_");
	genRowspanT5T6("t6_");
});

function genRowspan(className){
	$("."+className).each(function(){
		var rows = $("."+className+":contains('"+$(this).text()+"')");
		if(rows.length > 1){
			rows.eq(0).attr("rowspan", rows.length);//중복되는 첫번째 td에 rowspan값 세팅
			rows.not(":eq(0)").remove();//중복되는 td를 삭제
		}
	});
}

function genRowspanT5T6(preClassName){
	var rows = $("td[class^="+preClassName+"]");
	
	rows.each(function(index, item){
		var csName = $(item).attr("class");
		var dupRows = $("."+csName);
		
		if(dupRows.length > 1){
			dupRows.eq(0).attr("rowspan", dupRows.length); //중복되는 첫번째 td에 rowspan값 세팅
			dupRows.not(":eq(0)").remove(); //중복되는 td를 삭제
		}
	})
}

https://zero-gravity.tistory.com/311여기를 참조함.

 

[jQuery] 유동적인 테이블 셀병합 - rowspan

위와 같이 소속에 같은 데이터가 있을 경우 하나의 셀로 병합해주는 코드다. $(document).ready(function(e){ genRowspan("td 클래스명"); }); function genRowspan(className){ $("." + className).each(functio..

zero-gravity.tistory.com

'자바스크립트 > Javascript 참고자료' 카테고리의 다른 글

[javascript] 화살표함수와 ()=> this  (0) 2019.12.16
정규표현식 정리  (0) 2019.11.21
[ES6] for ~ of의 활용  (0) 2018.12.27
[ES6] ES6 , let과 const  (0) 2018.12.27
[ES6] spread operator와 from 메소드  (0) 2018.12.27
  1. 중복 선택 : Ctrl + D
  2. 전체 선택 : Alt + F3
  3. 다중선택 : Ctrl + Alt + up,down
  4. 마우스 다중 선택 : Ctrl + 마우스선택
  5. 단어 단위 이동 : Ctrl + left / right
  6. 단어 단위 드래그 : Ctrl + Shift + left / right
  7. 한 줄 복사 : Ctrl + Shift + D
  8. 한 줄 삭제 : Shift + Delete
  9. 줄 단위 이동 : Ctrl + Shift + Up / Down
  10. 대문자로 : Ctrl + k + U
  11. 소문자로 : Ctrl + k + L
  12. 전체선택 : Ctrl + A
  13. 라인선택 : Ctrl + Shift + L
  14. line by line 매칭
  15. 프로젝트 등록
  16. 파일 찾기 : Ctrl + P
  17. 라인으로 이동 : Ctrl + G
  18. Syntax 변경
  19. 랜덤 문자 생성(Lorem)
  20. 접기 : Ctrl + Shift + [
  21. 펼치기 : Ctrl + Shift + ]
  22. 검색 : Ctrl + F
  23. 전체 검색 : Ctrl + Shift + F
  24. 전체 저장
  25. 이전탭 / 다음탭 : Ctrl + PageUp/PageDown
  26. 끝으로 이동 : end
  27. 처음으로 이동 : home
  28. new process : Ctrl + Shift + N
  29. new file : Ctrl + N
  30. 닫기 : Ctrl + W
  31. 화면 분할 : alt + shift + 1 ~ 9
  32. last tab open : ctrl + shift + t
  33. 탭 위치 변경
  34. 현 위치 enter : ctrl + enter

테이블 정보 상세보기

F4 : Table, View, Proc, Funct, Package DESC(테이블명 위에 커서를 두고 F4)

 

자동완성

Ctrl+. : Table Completion (매칭되는 테이블목록 출력)

Ctrl+T : Columns Dropdown (해당테이블의 컬럼목록 표시)

 

SQL문 실행

F5 : SQL Editor내의 모든 SQL문 실행

Ctrl+Enter : 현재 커서의 SQL문 실행

F9 : SQL문 실행 후 Grid에 출력

 

히스토리(과거 수행SQL문 조회)

F8 : 과거에 실행한SQL HISTORY 목록

Alt+Up : History UP

Alt+Down : History DOWN

 

텍스트 대/소문자 변환

CTRL+L : 텍스트를 소문자로

CTRL+U : 텍스트를 대문자로

 

주석처리

Ctrl+B : 주석처리

Ctrl+Shift+B : 주석해제

 

편집 창 전환(이동)

F6 : SQL Editor와 결과창간의 이동

F2 : SQL Editor창 전체화면 전환

Shift+F2 : Grid Output창 전체화면 전환

 

기타 단축키

F7 : 화면을 모두 CLEAR

Ctrl+Shift+F : 쿼리문을 보기좋게 정렬

Ctrl+F9 : SQL Validate (SQL문을 수행하지 않음)

F1

Toad 도움말 파일의 SQL Editor 부분이 표시됩니다.

F2

전체 화면 Editor Editor/Results 패널 표시 장치 사이를 전환합니다.

<SHIFT>F2

전체 화면 그리드를 전환합니다.

F3

다음으로 일치하는 것을 찾습니다.

<SHIFT>F3

이전에 일치하는 것을 찾습니다.

F4

팝업 창의 테이블, , 프로시저, 함수, 또는 패키지를 설명합니다.

F5

스크립트로 실행합니다.

F6

커서를 Editor Results 패널 사이로 전환합니다.

F7

모든 텍스트를 지웁니다.

F8

이전 SQL 문을 재호출합니다(SQL Statement Recall 창을 불러옵니다).

F9

실행문을 실행합니다.

<CTRL>F9

실행(구문 분석) 없이 실행문을 검사합니다.

<SHIFT>F9

커서 위치에서 현재 실행문을 실행합니다.

F10

오른쪽 클릭 메뉴를 표시합니다.

F11

Script 같은  실행(=F5)

F12

편집기 내용을 지정된 외부 편집기로 전달합니다.

<CTRL>A

모든 텍스트를 선택합니다.

<CTRL>C

복사

<CTRL>D

프로시저 인수를 표시합니다.

<CTRL>E

현재 실행문에서 Explain Plan 실행합니다.

<CTRL>F

텍스트를 찾습니다(Find Text 창을 불러옵니다).

<CTRL>G

라인으로 이동합니다(Goto Line 창을 불러옵니다).

<CTRL>L

텍스트를 소문자로 변환합니다.

<CTRL>M

Make Code Statement

<CTRL>N

이름이 지정된 SQL 문을 재호출합니다(SQL Statement Recall 창을 불러옵니다).

<CTRL>O

텍스트 파일을 엽니다.

<CTRL>P

Strip Code Statement(쓸데없는 태그들을 정리해 줍니다. 유용함)

<CTRL>R

검색  바꾸기(Find and Replace Text 창을 불러옵니다)

<CTRL>S

파일을 저장합니다.

<SHIFT><CTRL>S

파일을 다른 이름으로 저장합니다.

<CTRL>T

 드롭다운을 표시합니다.

<CTRL>U

텍스트를 대문자로 변환합니다.

<CTRL>V

붙여넣기

<CTRL>X

잘라내기

<SHIFT><CTRL>Z

마지막으로 취소한 작업을 재실행합니다.

<ALT><UP>

이전 실행문을 표시합니다.

<ALT><DOWN>

다음 실행문을 표시합니다(<ALT><UP> 사용한  사용)

<ALT><PgUp>

이전 탭으로 이동

<ALT><PgDn>

다음 탭으로 이동

<CTRL><ALT><PgUp>

이전 결과 패널 탭으로 이동

<CTRL><ALT><PgDn>

다음 결과 패널 탭으로 이동

<CTRL><HOME>

데이터 그리드에서는  위의 레코드셋으로 이동하며, 결과 그리드에서는 커서가 위치한행의  번째 열로 이동하고, 편집기에서는 텍스트의  번째 열과  번째 행으로 이동합니다.

<CTRL><END>

데이터 그리드에서는 레코드셋의  끝으로 이동하며, 편집기에서는 텍스트의 마지막 열과 마지막 행으로 이동합니다.  단원의 "주의" 참조하십시오.

<CTRL><SPACE>

코드 완성 템플릿을 활성화합니다.

<CTRL><TAB>

MDI Child 창의 콜렉션을 순환합니다.

<CTRL><ENTER>

커서 이치에서 현재 SQL 문을 실행합니다.

<CTRL>. (마침표)

테이블 이름을 자동으로 완성합니다.



출처: https://unions5.tistory.com/39 [시시콜콜한 세상사]

'오라클' 카테고리의 다른 글

[오라클] 세션 LOCK 킬  (0) 2021.02.25
관리툴 DBeaver 설치하기  (0) 2020.01.20
[오라클]사용자 만들고 권한 부여  (0) 2019.11.29

Ex) eq (==)

1. <c:if test="${ null eq test_column }"> // null

2. <c:if test="${ 0 eq test_column }"> // 숫자

3. <c:if test="${ '0' eq test_column }"> // 문자

 

Ex) empty

= <c:if test="${ empty test_columnMap }"> // list, map 객체 등

= <c:if test="${ !empty test_columnMap }"> // 비어 있지 않은 경우

 

Ex) ne (!=)

1. <c:if test="${ null ne test_column }"> // null

2. <c:if test="${ 0 ne test_column }"> // 숫자

3. <c:if test="${ '0' ne test_column }"> // 문자

'JSP' 카테고리의 다른 글

JSP에서 엑셀 다운로드 기능 구현  (0) 2019.11.19

자바 코드를 작성하다 보면

클래스명 / 변수명 / 메서드명 등등 이름을 지을 때 생각을 많이 하게 됩니다.
명명 규칙도 규칙이지만 어떠한 단어를 써야 내가 나중에 메서드명을 보았을 때
아! 이 메서드는 어떠한 것이구나 이 변수는 어떠한 것이구나 하고 생각이 듭니다..

그런데 본인은 영어 실력이 별로여서 맨날 옆에 파파고를 끼고 코딩을 합니다
그래서 메서드명을 지을 때 단어만큼이나 중요한 명명 규칙을 한번 소개해 보도록 하겠습니다.

주로 쓰는 반의어는 아래 표로 정리하였습니다.

 

주로 쓰는 반의어는 아래 표로 정리하였습니다.

get / set
add / remove
create / destroy
start / stop
insert delete
increment / decrement
old / new
begin / end
girst / last
up / down
min / max
next / previous
open /close
show /hide
suspend /resume
parent / child

받다/ 받다
추가/제거
창조/파괴하다
시동/정지
삽입/삭제
증가/감소
구/신
시작/끝
긴/마지막
위/아래
최소/최대
다음/이전
열다/ 닫다
보이다/ 숨기다
일시 정지/재개하다
부모/아이

 

0. 공통 명명 규칙

대소문자가 구분되며 길이에 제한이 없다.
예약어를 사용해서는 안 된다.
숫자로 시작해서는 안 된다.
특수문자는 '_' 와 '$'만을 허용한다.
파스칼 표기법 (PascalCase)과 카멜 표기법(camelCase)를 사용한다.
      PascalCase : 모든 단어에서 첫 번째 문자는 대문자이며 나머지는 소문자이다.
      camelCase : 최초에 사용된 단어를 제외한 첫 번째 문자가 대문자이며 나머지는 소문자이다.
반의어는 반드시 대응하는 개념으로 사용해야 한다.

 

1. 패키지(Package) 명명 규칙

패키지명은 표준 패턴을 따라야 한다.
Ex) [com].[Company].[Project].[TopPackage].[LowerPackage]

패키지명은 가급적 한 단어의 명사를 사용한다.
Ex) 
좋은 예 : com.nexon.sudden.member.object
Ex)  나쁜 예 : sudden.memberObject

 

2. 클래스(Class) 명명 규칙

클래스명에는 파스칼을 사용한다.
Ex) public class HelloWorld {}

인터페이스에는 특별한 접두사나 접미사를 사용하지 않고 파스칼을 사용한다.
Ex) public interface Animal {}

인터페이스를 구현한 클래스에는 특별한 접두사나 접미사를 사용하지 않고 파스칼을 사용한다.
Ex) 
public class Tiger implements animal{}

추상 클래스에는 특별한 접두사 접미사를 사용하지 않고 파스칼을 사용한다.
Ex) public abstract class Animal {}

 

3. 메소드(Method) 명명 규칙

메소드명에는 파스칼 표기법을 사용한다.
Ex) public void SendMessage(String message) {}

속성에 접근하는 메소드명의 접두사는 'get','set'을 사용한다.
Ex) public void setDisplayName
Ex) public void getDisplayName

데이터를 조회하는 메소드명의 접두사는 find를 사용한다.
Ex) public void findData(String data){}

데이터를 입력하는 메소드명의 접두사는 input을 사용한다.
Ex) public void inputData(HashMap data){}

데이터를 변경하는 메소드명의 접두사는 modify를 사용한다.
Ex) public void modifyData(HashMap data){}

데이터를 삭제하는 메소드명의 접두사는 delete를 사용한다.
Ex) public void deleteData(String data){}

데이터를 초기화 하는 메소드명의 접두사는 initialize을 사용한다.
Ex) public void initData(String data){}

반환값의 타입이 boolean인 메소드는 접두사로 is를 사용한다.
Ex) public void isData(String Data){}

데이터를 불러오는 메소드명의 접두사는 load를 사용한다.
Ex) public void loadData(){}

데이터가 있는지 확인하는 메소드명의 접두사는 has를 사용한다.
Ex) public void hasData(){}

보다 지능적인 set이 요구될때 사용하는 메소드명의 접두사는 register를 사용한다.
Ex) public void registerAccount(){}

새로운 객체를 만든뒤 해당 객체를 리턴해주는 메소드명의 접두사는 create를 사용한다.
Ex) public void createAccount(){}

해당 객체를 다른 형태의 객체로 변환해주는 메소드명의 접두사는 to를 사용한다.
Ex) public void toString(){}

해당 객체가 복수인지 단일인지 구분하는 메서드명의 접미사는 s를 사용한다.
Ex) public void getMembers(){}

B를 기준으로 A를 하겠다는 메소드명의 전치사는 By를 사용한다.
Ex) public void getUserByName(String name){}

반환값의 타입이 boolean인 메소드는 접두사로 is를 사용한다.
Ex) public void isData(String Data){}

데이터를 불러오는 메소드명의 접두사는 load를 사용한다.
Ex) public void loadData(){}

데이터가 있는지 확인하는 메소드명의 접두사는 has를 사용한다.
Ex) public void hasData(){}

보다 지능적인 set이 요구될때 사용하는 메소드명의 접두사는 register를 사용한다.
Ex) public void registerAccount(){}

새로운 객체를 만든뒤 해당 객체를 리턴해주는 메소드명의 접두사는 create를 사용한다.
Ex) public void createAccount(){}

해당 객체를 다른 형태의 객체로 변환해주는 메소드명의 접두사는 to를 사용한다.
Ex) public void toString(){}

해당 객체가 복수인지 단일인지 구분하는 메서드명의 접미사는 s를 사용한다.
Ex) public void getMembers(){}

B를 기준으로 A를 하겠다는 메소드명의 전치사는 By를 사용한다.
Ex) public void getUserByName(String name){}

 

4. 변수(Variable) 명명 규칙

변수와 메소드의 파라미터에는 카멜표기법을 사용한다.
변수에 약어를 사용하지 않고 모든 의미를 충분히 담는다.
한 글자로 된 이름을 사용하지 않는다.
선언된 지점에서 초기화하며, 가능한 사용범위를 최소화 한다. 숫자 0 레퍼런스 null

반복문에서 인덱스로 사용할 변수는 i,j,k 등으로 사용한다.
Ex) for(int i = 0; i < 10; i++){}

지역변수와 멤버변수(전역변수)는 변수명 앞에 밑줄(_)을 사용하여 구별한다.
boolean타입의 변수는 접두사로 is를 사용한다
 Ex) isCheck

 

 

출처 : https://m.blog.naver.com/reona7140/221306141987

1. 인덱스, 매핑 생성 (은전한닢 분석기 적용)

PUT msis
{
  "settings" : {
    "index":{
      "analysis":{
        "analyzer":{
          "korean":{
            "type":"custom",
            "tokenizer":"seunjeon_default_tokenizer"
          }
        },
        "tokenizer": {
          "seunjeon_default_tokenizer": {
            "type": "seunjeon_tokenizer",
            "user_words": ["낄끼빠빠,-100", "버카충", "abc마트"]
          }
        }
      }
    }
  },
  "mappings": {
    "company": {
      "properties": {
        "title": {
          "type": "text"
        },
        "contents": {
          "type": "text",
          "analyzer": "korean"
        }
      }
    }
  }
}

2. 테스트 데이터입력 (2건등록)

POST msis/company
{
	"title":"한국 프로야구", 
	"contents" : "해태타이거즈가 기아타이거즈가 되고, 빙그레이글스가 한화이글스가 되고요."
}

POST msis/company
{
	"title":"한국 프로야구", 
	"contents" : "한화이글스 올해는 꼴찌 예약 ㅠㅜ"
}

3. 검색

GET msis/company/_search 
{
  "query": {
    "match": {
      "contents": "한화"
    }
  }
}

 

기본적인 사용법을 적어봤다.

프로젝트 일정 상 이것저것 실험을 해 볼 수는 없고, 가장 stable하고 수정을 덜 하는 쪽으로 설치해 본다.

은전한닢 블로그를 보니 6.1.1.1이 최신 배포본이라 한다. 그래서 엘라스틱 사이트에서 6.1.1을 다운받았다.

(은전한닢은 한글 형태소 분석기. 6.4버전부터는 엘라스틱에 nori라고 기본 분석기가 탑재되었다고...)

 

1. ES다운

https://www.elastic.co/kr/downloads/past-releases/elasticsearch-6-1-1

불러오는 중입니다...

2. 은전한닢 플러그인 다운 (6.1.1.1)

https://oss.sonatype.org/service/local/repositories/releases/content/org/bitbucket/eunjeon/elasticsearch-analysis-seunjeon/6.1.1.1/elasticsearch-analysis-seunjeon-6.1.1.1.zip 


3. 엘라스틱 서버 기동

엘라스틱 압축을 풀고 bin폴더로 이동해서 elasticsearch.bat 을 떠블클릭한다. 실행이 잘 될 것이다. 

http://localhost:9200 접속해보자. 뭔지는 모르지만 JSON데이터가 보일 것이다.

 

4. 은전한닢 플러그인 설치

커맨드(cmd)창을 열고 bin폴더로 이동하여 아래와 같이 실행해 준다.

bin> "elasticsearch-plugin.bat" install file:///D:/elasticsearch/elasticsearch-analysis-seunjeon-6.1.1.1.zip

file:/// 요거 슬래시 3개를 해줘야 한다.

 

5. 테스트를 위해 키바나(kibana) 설치

https://www.elastic.co/kr/downloads/past-releases/kibana-6-1-1

 

Kibana 6.1.1 | Elastic

 

www.elastic.co

압축푸는데 시간이 좀 걸린다. bin폴더로 가서 kibana.bat 실행. es가 실행되어 있어야 한다.

http://localhost:5601 접속. dev_tools 가 내가 원하던 것. 

 

+ Recent posts