출처 : http://www.jakartaproject.com/article/jakarta/122463359124589

그냥

logger.debug("something wrong" + e.printStackTrace());    // 문법오류 

logger.debug("something wrong" + e.printStackTrace().toString());    // 마지막 에러만 표기 

그래서 아래와 같이 사용하면 콘솔에서 보는것과 같이 에러를 추적할수 있습니다. 

catch (Exception e) {
logger.error ("something wrong", e);
//  or
logger.debug ("something wrong", e);
...
}


 

JDBC 쿼리에 SQL 주석시 -- 한칸 띄우고 작성한다.

잘못된 매계변수 ORA 에러가 발생할 수 있다.

/**
* 두 날짜의 차이를 일자로 구한다.(조회 종료일 - 조회 시작일)
*
* @param val1 - 조회 시작일(날짜 ex.2002-01-01)
* @param val2 - 조회 종료일(날짜 ex.2002-01-01)
* @param fmt - 년/월/일 구분자(날짜 ex.2002-01-01)
* @return 기간에 해당하는 일자
*/
function gfnCalDateRange(val1, val2, fmt)
{
  var FORMAT = fmt;

  var from_dt = null;
  var to_dt = null;

  // FORMAT이 있는지 체크
  if (FORMAT == '' || val1.indexOf(FORMAT) < 0 || val2.indexOf(FORMAT) < 0)
  {
    // 월 - 1(자바스크립트는 월이 0부터 시작하기 때문에...)
    // Number()를 이용하여 08, 09월을 10진수로 인식하게 함.
    var fr_year_str = val1.substr(0, 4);
    var fr_mon_str = (Number(val1.substr(4, 2)) - 1) + "";
    var fr_date_str = val1.substr(6, 2);

    var to_year_str = val2.substr(0, 4);
    var to_mon_str = (Number(val2.substr(4, 2)) - 1) + "";
    var to_date_str = val2.substr(6, 2);

    from_dt = new Date(fr_year_str, fr_mon_str, fr_date_str);
    to_dt = new Date(to_year_str, to_mon_str, to_date_str);
  }
  else
  {
    // 년도, 월, 일로 분리
    var start_dt = val1.split(FORMAT);
    var end_dt = val2.split(FORMAT);

    // 월 - 1(자바스크립트는 월이 0부터 시작하기 때문에...)
    // Number()를 이용하여 08, 09월을 10진수로 인식하게 함.
    start_dt[1] = (Number(start_dt[1]) - 1) + "";
    end_dt[1] = (Number(end_dt[1]) - 1) + "";

    from_dt = new Date(start_dt[0], start_dt[1], start_dt[2]);
    to_dt = new Date(end_dt[0], end_dt[1], end_dt[2]);
  }

  return MATH.ceil((to_dt.getTime() - from_dt.getTime()) / 1000 / 60 / 60 / 24);
}

출처 : http://blog.naver.com/addibuddi?Redirect=Log&logNo=12259012

-- TYPE 을 생성
create or replace type split_tbl as table of varchar2(32767);

/
show errors;
/*
테이블 형식으로 조회 됩니다.
*/
CREATE OR REPLACE FUNCTION split
(
    p_list varchar2,
    p_del varchar2 := ','
)
RETURN split_tbl PIPELINED
IS
    l_idx    pls_integer;
    l_list   VARCHAR2(32767) := p_list;
    l_value  VARCHAR2(32767);
BEGIN
    LOOP
        l_idx := INSTR(l_list, p_del);
        IF l_idx > 0 then
            PIPE ROW(SUBSTR(l_list, 1, l_idx-1));
            l_list := SUBSTR(l_list, l_idx + LENGTH(p_del));       
        ELSE
            IF LENGTH(l_list) > 0 THEN
                PIPE ROW(l_list);
            END IF;
            EXIT;
        END IF;
    END LOOP;
    RETURN;
END split;
/
show errors;


With this function, I can run a query like this:

SQL> select * from table(split('one,two,three,')); 또는 select * from table(split('one,two,three'));

one
two
three




String[] str = (String[])list.toArray();

을 하여 ClassCastException 이 발생시에는

String[] str = new String[list.size()];
list.toArray(str);

을 str 배열에 list 요소가 array화 되어 저장된다.

마찬가지로, LinkedHashSet 도

LinkedHashSet set
String[] arr2 = new String[set.size()];
set.toArray(arr2);



String[] toUser, toRes
toUser = toRes;



ArrayList for 루프시
for(int i=0; i<list.size(); i++){} // list는 DAO 에서 객체 생성후에 담아 주기 때문에 list != null 처리가 필요없음.

String[] arr for 루프시
for(int i=0; arr != null && i < arr.length; i++){} // arr 은 반드시 != null 체크를 하도록 하자..!!


http://WebApp-url/servlet/package.Class 로 class 를 실행
/WEB-INF/classes 아래의 class 가 실행 됨.

1. WAS 설정
 

resin - resin.conf
<web-app id='/'>
  ..
  <servlet-mapping url-pattern='/servlet/*' servlet-name='invoker'/>
  ..
</web-app>

jeus - web.xml
<web-app>
  <servlet>
    <servlet-name>WorkerServlet</servlet-name>
    <servlet-class>jeus.servlet.servlets.WorkerServlet</servlet-class>
    <init-param>
      <param-name>ServletRoot</param-name>
      <param-value>/home/WEB-INF/classes/</param-value>
    </init-param>
 <init-param>
  <param-name>PackageSeparator</param-name>
 <param-value>.</param-value>
 </init-param>
    <load-on-startup>-1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>WorkerServlet</servlet-name>
    <url-pattern>/servlet/*</url-pattern>
  </servlet-mapping>
</web-app>

weblogic - web.xml
<servlet>
  <servlet-name>ServletServlet</servlet-name>
  <servlet-class>weblogic.server.ServletServlet</servlet-class>
  <load-on-startup>-1</load-on-startup>
</servlet>

<server-mapping>
  <servlet-name>ServletServlet</servlet-name>
  <url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

tomcat - web.xml

    <servlet>
        <servlet-name>default_servlet</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.InvokerServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>default_servlet</servlet-name>
        <url-pattern>/sevlet/*</url-pattern>
    </servlet-mapping>


2. Servlet Java 파일

package test;

import java.io.PrintWriter;
import java.io.IOException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Test extends HttpServlet
{
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException
    {
        doService(req, res);
    }

    public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException
    {
        doService(req, res);
    }

    public void doService(HttpServletRequest req, HttpServletResponse res) throws IOException
    {
        req.setCharacterEncoding("euc-kr"); //euc-kr encoding
        HttpSession session = req.getSession();

        if(session == null){
            res.setContentType("text/html;charset=euc-kr"); //euc-kr encoding
            PrintWriter out = res.getWriter();
            out.print("로그인이 필요합니다.");
            out.print("alert 창으로띄운다.");
            out.close();
        }

        res.sendRedirect("/index.jsp");

        String test = req.getParameter("test");
        System.out.println("test="+test);
    }

}

3. jsp 파일

<%@ page contentType="text/html; charset=euc-kr" %>
<%@ page pageEncoding="euc-kr" %>
<meta http-equiv="content-type" content="text/html; charset=euc-kr" />

<form action='/servlet/test.Test'>
  <input type='text' id='test' value='안녕..'>
  <input type='submit'>
</form>


innerHTML 로 화면을 변경하다 보면 HTML 소스코드가 제대로 되었는지 확인 하고 싶을때 사용한다.

주소창에서

javascript:alert(document.documentElement.innerHTML)

입력하면 볼 수 있다.

alert창으로 보기 힘들때는

div 태그를 이용하여 아래와 같이 한다.

div.innerHTML = document.documentElement.innerHTML;

+ Recent posts