728x90
반응형

잘 되던  프로젝트가 갑자기 에러가 있다고 표시됩니다.

그런데 프로젝트 이름에만 에러 표시가 되고, 어떤 파일에서 에러가 발생했는지 찾을 수가 없네요.

각 폴더를 다 들어가봐도 에러 표시가 된 부분이 없습니다.

"File::Refresh(F5)", "Source::Clean Up" 기능도 해봤는데 계속 에러가 표시되네요.

 

->> 해당프로잭트 클릭 하신후 상단매뉴에 Project 클릭 -> Java Build Path 클릭

Libraries 에 들록되어 있는 빌드패스를 캡쳐하든 적든 백업해두신후 전부 Remove 하신후헤
기존것처럼 다시 등록 하신후 OK를 하시면 다시 컴파일이 됩니다. 가끔 이클립스가...꼬일때가 있습니다.
또한가지  Project 클릭 -> Java Compiler 클릭 최상단에 체크  옆에 Confiquer Workspace Settings...
라는걸클릭해보시면 현재 프로잭트가 어떤 컴파일 버전을 가지고 컴파일되는지 알수있고 체크박스로 지정시 컴파일러를 별도로 설정할수 있습니다(시스템에 설치된 자바와 실제개발할때 jdk버전이 다른경우에 쓰임).

 

728x90
반응형

'Web Programming > java-jsp' 카테고리의 다른 글

assertThat(), is()  (0) 2014.03.18
부모창 컨트롤하기  (0) 2014.03.12
jsp 한글깨짐!!!!!!!!!!!!!!!!  (0) 2014.02.17
PORT 접근 TEST[telnet ip port]  (0) 2014.02.17
java/jsp/json 간단예제  (0) 2014.02.17
728x90
반응형

제일 상단에

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

 

pageEncoding이 UTF-8로 제대로 되어있는지 확인 해보세요 ㅎ

 

페이지마자 인코딩이 달라서 그런거일수 있고요 ㅎ  WAS를 어떤걸 쓰시는지모르겠는데

 

톰켓 server.xml에

 

<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443"/>

 

이부분 사이에  URIEncoding="UTF-8" 추가하시면 get방식으로 넘어가는 한글은 왠만해선 안깨질듯 하네요  ㅎ

 

ex)

<Connector URIEncoding="UTF-8" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443"/>

 

728x90
반응형

'Web Programming > java-jsp' 카테고리의 다른 글

부모창 컨트롤하기  (0) 2014.03.12
잘 되던 프로젝트가 갑자기 에러가!!  (0) 2014.02.24
PORT 접근 TEST[telnet ip port]  (0) 2014.02.17
java/jsp/json 간단예제  (0) 2014.02.17
<%! %>  (0) 2014.02.17
728x90
반응형
▶ 방화벽에서 막힌 경우

연결 중입니다. 잠시 기다리십시오...


▶ 프로세서가 안떠있는 경우

연결 중입니다. 잠시 기다리십시오...
원격 호스트가 시도된 connect 조작을 거부했습니다.

▶정상 접속인 경우

연결 중입니다. 잠시 기다리십시오...
호스트에에 연결됩니다.
이탈(Escape) 문자는 '^]'입니다.
[출처] telnet ip port (해당 포트로 접속이 가능한지 테스트)|작성자 그레고리

 

728x90
반응형
728x90
반응형

http://zero-gravity.tistory.com/197

 

이 두 라이브러리를 활용했다.

   javax-json-api-1.0.jar 파일의 경우 java 1.7 버전 이상에는 기본적으로 포함되어 있으므로 따로 다운로드 받지 않아도 된다.

   jettison 다운로드 경로 → http://jettison.codehaus.org/Download



↓ 데이터를 JSON 형태로 빌드하기.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
  
import javax.json.Json;
import javax.json.JsonArrayBuilder;
import javax.json.JsonBuilderFactory;
import javax.json.JsonObjectBuilder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  
import kr.co.techinmotion.web.IAction;
  
public class JsonBuildAction implements IAction {
  
    private boolean redirect = false;
      
    @Override
    public String process(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
          
        // key와 value로 구성되어있는 HashMap 생성.
        Map<STRING, String> m = new HashMap<STRING, String>();
          
        // Map 타입의 m을 BuilderFactory에 넣어준다. (JsonBuilderFactory는 Json을 만들기 위한 뼈대라고 보면 됨)
        JsonBuilderFactory factory = Json.createBuilderFactory(m);
          
        // createObjectBuilder는 하나씩 넣을 때, createArrayBuilder는 배열로 넣을 때.
        JsonObjectBuilder ob_1 = factory.createObjectBuilder();
        JsonObjectBuilder ob_2 = factory.createObjectBuilder();
        JsonObjectBuilder ob_3 = factory.createObjectBuilder();
        JsonArrayBuilder ab = factory.createArrayBuilder();
          
        // 첫번째 JsonObjectBuilder에 이름과 나이를 추가.
        ob_1.add("이름", "홍길동");
        ob_1.add("나이", "모름");
          
        // 두번째 JsonObjectBuilder에 홍길동의 위치(위도와 경로)를 추가.
        ob_2.add("위도", "36.3713874817");
        ob_2.add("경도", "127.645332336");
          
        // 세번째 JsonObjectBuilder에 홍길동의 위치(위도와 경로)를 추가.
        ob_3.add("위도", "50.153273512");
        ob_3.add("경도", "110.99976542");
          
        // 두번째와 세번째 JsonObjectBuilder를 ArrayBuilder에 넣어준다.
        ab.add(ob_2);
        ab.add(ob_3);
          
        // 첫번째 JsonObjectBuilder에 ArrayBuilder를 추가.
        ob_1.add("위치", ab);
          
        // 최종적으로 ob_1 JsonObjectBuilder를 build.
        String jsonStr = ob_1.build().toString();
          
        request.setAttribute("jsonStr", jsonStr);
          
        return "/WEB-INF/jsonTest.jsp";
    }
  
    @Override
    public boolean isRedirect() {
        return redirect;
    }
  
}



↓ 빌드한 JSON을 텍스트로 JSP에 뿌리기.

1
2
3
4
5
<FORM method=post action=jsonDismantle.ok>
    <TEXTAREA rows=5 cols=100 name=jsonText>        ${requestScope.jsonStr }
    </TEXTAREA><BR>
    <INPUT value=전송 type=submit>
</FORM>




그럼 위와 같이 나온다.




긁어서 http://jsonlint.com 에서 확인해보면 정확하게 만들어졌음을 알 수 있다.


전송을 클릭해서 다시 이 JSON 형태의 텍스트를 분해해보자.



↓ JSON 형태의 텍스트를 받아서 분해.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import java.io.IOException;
import java.util.ArrayList;
  
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
  
import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
  
import kr.co.techinmotion.web.IAction;
  
public class JsonDismantleAction implements IAction {
  
    private boolean redirect = false;
      
    @Override
    public String process(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
          
        String jsonText = request.getParameter("jsonText");
          
        String name = null;
        String age = null;
          
        ArrayList<STRING> locationArray = new ArrayList<STRING>();
          
          
        try {
            JSONObject jo = new JSONObject(jsonText);
            name = jo.getString("이름");
            age = jo.getString("나이");
              
            JSONArray array = jo.getJSONArray("위치");
            for(int i=0; i < array.length(); i++){
                JSONObject jsonObject = array.getJSONObject(i);
                String lat = jsonObject.getString("위도");
                String lon = jsonObject.getString("경도");
                locationArray.add(i, "위도 : " + lat + ", 경도 : " + lon);
            }
              
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          
        request.setAttribute("name", name);
        request.setAttribute("age", age);
        request.setAttribute("locationArray", locationArray);
          
        return "/WEB-INF/jsonResult.jsp";
    }
  
    @Override
    public boolean isRedirect() {
        return redirect;
    }
  
}



↓ 분해한 데이터를 JSP에 출력하기

1
2
3
4
5
6
7
8
이름은? : ${name } <BR>
나이는? : ${age } <BR><BR>
  
<C:IF test="${!empty locationArray}">
    <C:FOREACH var="lo" items="${locationArray}">
        위치는? ---> ${lo} <BR>
    </C:FOREACH>
</C:IF>





출력하면 위와 같이 나온다.



   굉장히 간단하다.


   이런 게 있는줄도 모르고 무식하게 일일히 String으로 붙여가면서 하는 사람도 있을 듯. 예전의 나처럼. ㅡㅡ;;;


   이해한다.. 존재 자체도 모르니 필사적으로 찾아보지 않으면 그렇게 되는 거다...


   이제 이런 걸 써먹자.

 

728x90
반응형

'Web Programming > java-jsp' 카테고리의 다른 글

jsp 한글깨짐!!!!!!!!!!!!!!!!  (0) 2014.02.17
PORT 접근 TEST[telnet ip port]  (0) 2014.02.17
<%! %>  (0) 2014.02.17
[Java] 객체 사용후 null 할당! 해야하나 말아야 하나?  (0) 2014.02.17
오라클 nvl, decode  (0) 2014.02.03
728x90
반응형
<%
이것으로 감싸여져 있는 부분은 JSP 코드중에 JAVA 구현부분 입니다.
이부분은 서버에서 실행이됩니다.
%>

<script>
이부분으로 감싸여져 있는 부분은 스크립트 부분입니다.
사용자에게 html 로 전송된 이후에 실행되는 부분으로 html 의 일부분입니다.
</script>

두개는 좀 다른 의미로 자바는 프로그램적인 부분이고 스크립트는 마크업 랭기쥐의 일부분으로

사용자 환경에서 실행되는 명령어에 해당합니다.

자바 부분도 함수 정의가 가능합니다.

<%!

%>

느낌표가 앞에 붙는다는것이 다르며 이또한 서버에서만 실행되어 집니다.

<scipt></scipt> 를 <%%> 로 바꾸시면 오류가 날수밖에 없습니다.

<%%> 속에 들어가는 구분은 java 문법의 구문을 다르며 <scipt></scipt>속에 들어가는 구문은

javascript 문법구문을 따르게 되어있습니다.

두개의 명령어와 문법 표현 방식은 전혀 다른것이라고 보시면 되구요.

실행되는 시점도 전혀 다릅니다.

사용자는 <%%> 이부분을 제외한 부분만을 보여지게 되며 <%%> 부분으로 둘러쌓여있는 부분은

서버에서 동적으로 반복 또는 문구를 출력하여 html 문서를 동적으로 완성하여 사용자에게 전송 하는것 입니다.

 

728x90
반응형

+ Recent posts