//구글광고

이클립스 jsp 개발중 tomcat 서버에서 Multiple Contexts have a path of 오류 발생



원인 : project 이름의 중복


상황별 해결 방법
1. 기존에 잘 개발하던 중에 tomcat 서버를 새로 설정한 뒤 발생한 경우

  최초 실행을 하면, server.xml 에 Context 값이 생성된다.
  그 후에 기존 설정 값을 추가 하여야 한다.

  <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">


        <!-- SingleSignOn valve, share authentication between web applications

             Documentation at: /docs/config/valve.html -->

        <!--

        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />

        -->


        <!-- Access log processes all example.

             Documentation at: /docs/config/valve.html

             Note: The pattern used is equivalent to using pattern="common" -->

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." suffix=".txt"/>


     !!! 여기에 Context 값들이 적혀있으면 지우고 한번 run 해주자 !!!

      

   </Host> 



그러면 server.xml 에 context 값이 추가 될 것이다.
이제 백업해준 설정값을 추가해서 변경해주면 해결 된다.

 






jsp 오라클 vo 쉽게 만드는 스크립트


jsp 개발시 테이블명을 입력하면 오라클 vo를 쉽게 만들어주는 스크립트.


mkTblToVo.sql




컬럼 열개씩 되는 테이블을 vo 생성하다가 빡쳐서 만들어본 스크립트다.

퍼가기 없기, 계속 패치할꺼니까 여기 URL 만 적어서 가져가기, 요청사항은 댓글에 달아놓기

특히 드래그, 복사 안되는 블로그에 퍼가면 매우 화낼꺼임


사용법


1) 오라클 sqlplus 로 테이블 소유자 유저로 접속한다.


2) @mktbltovo 명령어로 스크립트를 실행한다.



3) 실행하면 ENTER TABLE_NAME UPPERCASE -> 라는 프롬프트가 나온다

이때 대문자로 vo를 만들 테이블 명을 입력하면 된다.


그럼 상단에 이 부분을 복제한다


 private int ACT_ID;

private String SESSION_ID;

private String SESSION_CREATETIME;

private String CLIENT_IP;

private String POSTURL;

private String ACTION;

private String LOGIN_ID;




그럼 이렇게 vo class 에 붙여넣고 getter, setter 만들어 주면 아주 쉽다.



우클릭해서 source -> Generate Getters and Setters... 선택해주고,




메소드 만들 컬럼 선택해서 ok 버튼누르면




이렇게 깔끔하게 vo를 생성할 수 있다.





그리고 보너스로 DAO 만들때 insert 구문 하면 물음표 갯수 때문에 매우 귀찮타

아래의 값은 그걸 위해 나오는 내용이다.



그 내용중에 위에 빨간색 사각형에 마지막 컴마 지우고,


아래의 set구문에 숫자를 원하는걸로 편집해서 쓰면 깔끔하다.



추가적으로 요청할 내용이 있으면 댓글로 문의주면 추가 패치할 예정이다.






JSP : 세션변수로 java bean(VO) 값 주고 받는법



1. vo 선언



package com.data.vo;


public class businessVO {


private int BM_ID;

public int getBM_ID() {

return BM_ID;

}

public void setBM_ID(int bM_ID) {

BM_ID = bM_ID;



별도의 패키지에 vo(java bean)을 선언한다.

getter , setter 로 접근을 하니...

getter, setter 함수를 생성한다.



2. vo 를 세션변수에 저장하기

...

import  com.data.vo.businessVO ;   // vo를 임포트 한다


...



businessVO bminfo = new businessVO(); // vo 인스턴스 생성


bminfo.setBM_ID(1); // bminfo.BM_ID 에 1 값저장

session.setAttribute("bminfo", bminfo);  // 세션에 bminfo 라는 변수로 vo  값 저장


...

...




3. 세션변수에서 vo 값 인출


businessVO vo = (businessVO) session.getAttribute("bminfo"); // 세션에서 넘어올땐 데이터타입이 object 형임으로 (businessVO) 타입으로 형변환

int bm_id =  vo.getBM_ID();  // int 형 변수에 get 메소드를 이용하여 입력






셀렉트 테그(Select tag - 콤보박스 ) 에서 값 선택시

선택값을 인자로 javascript 함수 호출하기


검색화면 개발할때 날짜별 등등 옵션 선택할때 javascript 함수로 자동으로 호출할 필요가 있다.


흔히 윈도우에서 말하는 콤보박스 값을 ( 웹에선 Select tag ) 선택할때마다 선택인자를 javascript 함수로 인자를 넘겨준다.
실시간 검색할땐 ajax 를 이용하여 서버에서 값을 받아와서 구현하면 될것이다.


<!DOCTYPE html>

<html>

<body>

  <select id="salesTypeList"  onchange="myFunction(this.value)">

   <option value="direct" >직판</option>

               <option value="partner" >파트너</option>

               <option value="etc" >기타</option>

  </select>

<p>셀렉트 테그의 값을 선택하면 해당 value 를 인자로 함수를 호출하는 예제.</p>


<script>

function myFunction(str) {

    alert("영업방식: "+ str + " 을 선택하였습니다." );

}

</script>


</body>

</html>


 



실행하면,


셀렉트 상자가 나오고 해당 값을 선택하면 함수가 호출되어 아래의 메세지 박스가 나타난다.





UTF-8 방식의 한글 JSP 개발 환경 세팅하기(Elipse + Tomcat )


1. jdk 설치

다운로드 해서 설치한다.


2. JAVA 환경변수 설정

윈도우 고급 시스템설정에서 환경변수에 아래항목 적용한다.

 변수명

값 

 PATH

jdk설치경로\bin 

 CLASSPATH

jdk설치경로\lib\tools.jar 

JAVA_HOME 

 jdk설치경로



3. Tomcat 설치

Tomcat 은 그냥 받아서 압축을 풀어주면 된다


4. Tomcat 환경설정하기

윈도우 고급 시스템설정에서 환경변수에 아래항목 적용한다.

 변수명

값 

 CATALINA_HOME

설치경로(예시c:\apache-tomcat-8.0.9) 



5. Eclipse 설치

웹프로젝트용 Eclipse IDE for Java EE Developers 를 다운받아 압축해제.

6. Eclipse 설정

1) 웹페이지 한글 깨짐 방지 설정(UTF-8)
   [Window]메뉴 [Preference] 창에서 [General] – [Workspace] 클릭
   [Text file encoding] 의 [Other] – [ UTF-8] 선택후 [Apply] 버튼클릭



2) 소스코드 라인부여설정

  [Window]메뉴 [Preference] 창에서 [General] - [Editors] – [Text Editors] 선택

  [Show line numbers] 체크후 [Apply ] 버튼 클릭




7. Eclipse 에서 Tomcat 연동설정하기


1)웹서버 등록하기

  이클립스에서 [File] – [New] – [Others] 메뉴선택

  [New]창의 [Wizard]에서 [Server] - [Server] 선택후 [Next] 선택



[New Server] 창의 [Define a New Server ] 화면에서 [Select the server type] 에서 

[Apache]의 [Tomcat v8.0 Server(현재설치한 톰캣버전)] 선택한후 [Next] 클릭



8. eclipse에서 tomcat 서비스용으로 war파일 내보내기(WAR export)

eclipse 에서 생성한 프로젝트를 war로 export한다

프로젝트에서 오른쪽클릭 [export] – [WAR file] 선택

[Export] 창에서 [Destination]의 [Browse] 버튼을 눌러 ‘tomcat홈\webapps’로 

내보낸다. 



9. Eclipse 의 page template 설정

모바일웹과 한글 깨짐 방지를 위해 새로 작성하는 jsp파일마다 UTF-8 로 매번 페이지 설정하는 번거로움을 

없애기 위해 Eclipse page template 을 통해 등록해둔다.


[Window] – [Preferences] 메뉴 선택.

[Prefrences] 창에서 [Web] – [JSP Files] 선택 후, [Encoding] 값을 

[ISO10646/Unicode(UTF-8)] 로 지정한 후 [Apply] 버튼 클릭




[JSP Files] – [Editor] – [Templates] 선택후 [New] 버튼 클릭

[Name]에 적절한 이름을 적고 (예:New JSP File(HTML5)) 

[Context]에서 [New JSP]를 선택한 뒤 [ Pattern] 에 아래내용 추가



<%@ page language="java" contentType="text/html; charset=${encoding}"

 pageEncoding="${encoding}"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="${encoding}">

<title>Insert title here</title>

</head>

<body>

${cursor}

</body>

</html> 




10. Tomcat 기반에서 한글처리

1) 서버에서 웹 브라우저에 응답되는 페이지의 한글처리
모든 웹페이지에 필수로 기재해줌(템플릿처리해둠)

<%@ page contentType=”text/html;charset=utf-8”%>

2) 웹브라우저에서 서버로 넘어오는 파라미터의 한글처리(Post방식)
폼에서 파라미터를 넘겨받는 페이지에는 반드시 처리해줌

<% request.setCharacterEncoding(“utf-8”);%>

3) 웹브라우저에서 서버로 넘어오는 파라미터의 한글처리(Get방식)
위의 작업을 해줘도 메소드가 get방식으로 넘어오면 한글이 깨짐
 Server.xml 파일에 한글인코딩을 지정해줘야함
(ajax로 처리할때도 필요 )

-이클립스상에서 운영되는 tomcat 에서 Get방식 한글처리추가하기

이클립스의 [Project Explorer] 뷰에서 [Servers] – [Tomcat v8.0 ~ ] 에 있는 server.xml 파일을 더블클릭한다.
 [Source] 탭을 클릭하여 <connector> 태그에 URIEncoding=”UTF-8” 추가

<Connector connectionTimeout=”20000” port=”8080” protocol=”HTTP/1.1” redirectPort=”8443” URIEncoding=”UTF-8” /> 



- 운영중인 Tomcat 상에서 한글처리방식 추가

Tomcat홈 [conf] 폴더의 server.xml 파일에 <connect> 태그를 찾아서 URIEncoding=”UTF-8" 추가해준다.

<Connector connectionTimeout=”20000” port=”8080” protocol=”HTTP/1.1” redirectPort=”8443” URIEncoding=”UTF-8” /> 






+ Recent posts