달력

5

« 2024/5 »

  • 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
2008. 11. 12. 17:55

[js] 외국 현재 시각 구하기 Enjoy/JSP2008. 11. 12. 17:55

출처 : http://mwultong.blogspot.com/2007/05/javascript-world-time-timezone.html



파일명: example.html
<script type="text/javascript">

document.write('KST (한국 표준시):<br />',       getWorldTime(+9), '<br /><br />');

document.write('PST (태평양 표준시):<br />',     getWorldTime(-8), '<br /><br />');
document.write('PDT (태평양 표준시 DST):<br />', getWorldTime(-7), '<br /><br />');

document.write('EST (뉴욕 시간):<br />',         getWorldTime(-5), '<br /><br />');
document.write('EDT (뉴욕 시간 DST):<br />',     getWorldTime(-4), '<br /><br />');

document.write('CET (파리 시간):<br />',         getWorldTime(+1), '<br /><br />');
document.write('CEST (파리 시간 DST):<br />',    getWorldTime(+2), '<br /><br />');

document.write('CST (중국 표준시):<br />',       getWorldTime(+8), '<br /><br />');

document.write('UTC (세계 표준시):<br />',       getWorldTime(0),  '<br /><br />');


function getWorldTime(tzOffset) { // 24시간제
  var now = new Date();
  var tz = now.getTime() + (now.getTimezoneOffset() * 60000) + (tzOffset * 3600000);
  now.setTime(tz);


  var s =
    leadingZeros(now.getFullYear(), 4) + '-' +
    leadingZeros(now.getMonth() + 1, 2) + '-' +
    leadingZeros(now.getDate(), 2) + ' ' +

    leadingZeros(now.getHours(), 2) + ':' +
    leadingZeros(now.getMinutes(), 2) + ':' +
    leadingZeros(now.getSeconds(), 2);

  return s;
}


function leadingZeros(n, digits) {
  var zero = '';
  n = n.toString();

  if (n.length < digits) {
    for (i = 0; i < digits - n.length; i++)
      zero += '0';
  }
  return zero + n;
}
</script>



위의 소스를 파일로 저장한 후, 브라우저로 보면 현재 세계 시각이 다음과 같은 식으로 나옵니다.
결과화면

 KST (한국 표준시):
2007-05-21 16:15:27

PST (태평양 표준시):
2007-05-20 23:15:27

PDT (태평양 표준시 DST):
2007-05-21 00:15:27

EST (뉴욕 시간):
2007-05-21 02:15:27

EDT (뉴욕 시간 DST):
2007-05-21 03:15:27

CET (파리 시간):
2007-05-21 08:15:27

CEST (파리 시간 DST):
2007-05-21 09:15:27

CST (중국 표준시):
2007-05-21 15:15:27

UTC (세계 표준시):
2007-05-21 07:15:27

:
Posted by 라면스프
2008. 10. 28. 17:37

[JSP] JSP 자주쓰는 코드 정리 Enjoy/JSP2008. 10. 28. 17:37


출처 : http://blog.naver.com/korekiss/20044092634


<%
response.sendRedirect("링크주소"); // 주소로 이동
str.length(); //글자길이 갯수 구하기
str.substring(3,7); //글자의 3에서 7번째까지 추출
str.append("문자열"); //str의 문자열에 추가

▷JSP 액션태그

 <jsp:forward>       다른페이지로 이동
 <jsp:include>       다른페이지를 페이지 안에 추가                                               <jsp:include page="url" flush="true" />
 <jsp:parma>         forward, include, plugin과 같이 사용되어 인자를 추가할때
 <jsp:plugin>         애플릿과 같이 클라이언트에서 사용되는 객체 삽입
 <jsp:useBean>     자바빈즈 사용
 <jsp:setProperty>  자바빈즈 프로피티의 값을 설정할때
 <jsp:getProperty>  자바빈즈 프로피티의 값을 얻는데 사용

 

▷토큰자르기 (java.util.*)
 String tel = "055-1234-5678";
 StringTokenizer str = new StringTokenizer(tel, "-");
 str.nextToken()  //055
 str.nextToken()  //1234
 str.nextToken()  //5678

 

▷파일 (java.io.*)
 -파일생성
 String filename = "c:\\aaaaa\\bbbbb\\test.txt";  //리눅스일때 http://mediafile.paran.com/MEDIA_11888685/BLOG/200711/1195526717_
 File f = new File(filename);  //파일클래스 작성
 f.createNewFile();  //파일 생성

 -파일쓰기
FileWriter fw = new FileWriter(filename);  //객체생성
 String data = "ㅇㅇㅇㅇㅇㅇㅇ";
 fw.write(data);  //파일쓰기
 fw.close();  //파일저장

-파일읽기
 FileReader fr = new FileReader(filename);  //리더객체생성
 BufferedReader br = new BufferedReader(fr);  //버퍼리더객체생성 - readLine();
 String line;
 while((line=br.readLine()) != null){
    out.println(line + "<br>");  //여러줄 읽어오기
 }

 -파일정보보기
 f.getAbsolutePath();  //절대경로
 f.getName();  //파일이름
 f.getParent(); //파일위치한 경로
 f.length();  //파일크기

 -파일삭제
 if(f.exists()){  //파일이 존재하면
    f.delete();
    out.println("파일이 삭제되었습니다.");
 }else{
    out.println("파일이 없습니다.");
 }

 

▷형변환
 String -> int
 String a="15";
 int b = Integer.parseInt(a);

 
 int -> String
 int a=12;
 Integer  b=new Integer(a);  //Integer객체 선언
 String c = B.toString();  //toString() 형변환
 

▷세션
 if(session.getAttribute("sid")==null){  //세션값이 아무것도 없을때
   out.println("세션 정보가 없습니다.");
   session.setAttribute("sid", session.getId());  //임의의 세션id를 sid에 저장
   session.setAttribute("name", "이름");  //이름을 name세션에 저장
 }else{
   out.println("이브라우저에 대한 세션 ID는 " + session.getAttribute("sid")+ "입니다.");
   out.println("name에 저장된 값은 " + session.getAttribute("name") + "입니다.");
 }
 session.setMaxInactiveInterval(3600);  //세션 유지시간 (1시간동안)

▷쿠키
 -저장
 Cookie cook1 = new Cookie("name", "aaa");  //쿠키객체생성
 cook1.setPath="/";  //쿠키가 적용될 웹서버의 url 경로
 cook1.setMaxAge(60*60*24*365); //쿠키가 유지되는 시간(1년) -1일경우 삭제하지 않는한 영구
 response.addCookie(cook1);  //쿠키를 클라이언트에 세팅

 Cookie cook2 = new Cookie("mail", aaa@aaa.com);
 cook2.setPath="/";
 cook2.setMaxAge(60*60*24*356);
 response.addCookie(cook2);


 -가져오기
 try(
  Cookie[] cookies = request.getCookies();
   for(int i = 0; i < cookies.length; i++){
     out.println(cookies[i].getName() + "은" + cookies[i].getValue() + "입니다.
   }
 }catch (Exception e){
   out.println(e);
 }

 -삭제하기
 try{
   Cookie[] cookies = request.getCookies();
   for(int i=0; i< cookies.length; i++){
     Cookie cook = cookies[i];
     cook.setMaxAge(0);
     response.addCookie(cook);
   }
   out.println("쿠키가 삭제되었습니다.");
 }catch(Exception e){
   out.println(e);
 }

 

▷JDBC드라이브
 Class.forName("org.gjt.mm.mysql.Driver");
 -mysql
 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "test", "pass");  //연결객체생성
 Statement stmt = conn.createStatement();  //스테이트먼트 객체생성
 ResultSet rs = stmt.executeUpdate("insert into test(id, age) values('aaa','123')");  //쿼리문실행
 rs.next();  //다음 리절트 셋

:
Posted by 라면스프
2008. 10. 28. 17:13

[JSP] HttpSessionBindingListener Enjoy/JSP2008. 10. 28. 17:13


출처 : http://blog.naver.com/korekiss/20038228350


HttpSessionBindingListener 는 웹에서 동시 사용자의 수 또는 하나의 아이디로 동시접속을 제한 할때 유용한 인터페이스 이다.  HttpSessionBindingListener 는 두개의 메소드를 지니는데 valueBound() 와 valueUnbound() 메소드 이다.
 
valueBound() 는 HttpSessionBindingListener 클래스의 인스턴스가 세션에 attribute로
등록될떄 호출된다  session.setAttribute(플래그, 값)
valueUnbound()는 session.removeAttribute(플래그); 사용시
또는 세션종료시  session.invalidate()호출된다.
 
다음은 이를 이용한 동시 사용자및 중복 로그인 방지 프로그램이다.
 
 
LoginManager.java
 
package cookie;
 
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingListener;
import javax.servlet.http.HttpSessionBindingEvent;
import java.util.Hashtable;
import java.util.Enumeration;
 
public class LoginManager implements HttpSessionBindingListener
{
             private static LoginManager loginManager = null;
             private static Hashtable loginUsers = new Hashtable();
             private LoginManager(){
                           super();
             }
             public static synchronized LoginManager getInstance(){
                           if(loginManager == null){
                                        loginManager = new LoginManager();
                           }
                           return loginManager;
             }
 
             //아이디가 맞는지 체크
             public boolean isValid(String userID, String userPW){
                           return true;   //자세한 로직은 미구현
             }
 
             //해당 세션에 이미 로그인 되있는지 체크
             public boolean isLogin(String sessionID){
                           boolean isLogin = false;
                           Enumeration e = loginUsers.keys();
                           String key = "";
                           while(e.hasMoreElements()){
                                        key = (String)e.nextElement();
                                        if(sessionID.equals(key)){
                                                     isLogin = true;
                                        }
                           }
                           return isLogin;
             }
 
             //중복 로그인 막기 위해 아이디 사용중인지 체크
             public boolean isUsing(String userID){
                           boolean isUsing = false;
                           Enumeration e = loginUsers.keys();
                           String key = "";
                           while(e.hasMoreElements()){
                                        key = (String)e.nextElement();
                                        if(userID.equals(loginUsers.get(key))){
                                                     isUsing = true;
                                        }
                           }
                           return isUsing;
             }
 
             //세션 생성
             public void setSession(HttpSession session, String userID){
                           loginUsers.put(session.getId(), userID);
                           session.setAttribute("login", this.getInstance());
             }
 
             //세션 성립될 때
             public void valueBound(HttpSessionBindingEvent event){
             }
 
             //세션 끊길때
             public void valueUnbound(HttpSessionBindingEvent event){
                           loginUsers.remove(event.getSession().getId());
             }
 
             //세션 ID로 로긴된 ID 구분
             public String getUserID(String sessionID){
                           return (String)loginUsers.get(sessionID);
             }
 
             //현재 접속자수
             public int getUserCount(){
                           return loginUsers.size();
             }
};
 
Bind_login.jsp
 
<%@ page contentType="text/html;charset=euc-kr"
             import="cookie.LoginManager"%>
 
<% LoginManager loginManager = LoginManager.getInstance(); %>
<html>
<body>
<center>
현재 접속자수 : <%= loginManager.getUserCount() %><p>
<hr>
<%
             if(loginManager.isLogin(session.getId())){  //세션 아이디가 로그인 중이면
                           out.println(loginManager.getUserID(session.getId())+"님 안녕하세요<br>"
                                                                  +"<a href=bind_logout.jsp>로그아웃</a>");
             }
             else{  //그렇지 않으면 로그인 할 수 있도록
%>
<form name="login" action="bind_login_ok.jsp">
아이디: <input type="text" name="userID"><br>
비밀번회: <input type="text" name="userPW"><br>
<input type="submit" value="로그인">
</form>
<%         }%>
</center>
</body>
</html>
 
Bind_login_ok.jsp
 
<%@ page contentType="text/html;charset=euc-kr"
             import="cookie.LoginManager"%>
 
<% LoginManager loginManager = LoginManager.getInstance(); %>
<%
             request.setCharacterEncoding("euc-kr");
            
             String userID = request.getParameter("userID");
             String userPW = request.getParameter("userPW");
 
             if(loginManager.isValid(userID, userPW)){
                           if(!loginManager.isUsing(userID)){
                                        loginManager.setSession(session, userID);
                                        response.sendRedirect("bind_login.jsp");
                           }
                           else{
                                        throw new Exception("이미 로그인중");
                           }
             }
             else{
                           throw new Exception("ID/PW 이상");
             }
%>
 
Bind_logout.jsp
 
<%@ page contentType="text/html;charset=euc-kr"%>
<%
             session.invalidate();
             response.sendRedirect("bind_login.jsp");
%>
 
:
Posted by 라면스프
원문 http://blog.naver.com/julymorning4/100035857242


'창 닫으시겠습니까' 메시지 없애는 방법(IE7에서)

부모창에서 자식창 오픈시키면서 부모창 닫을 때 '창 닫으시겠습니까' 라는 메세지 창 없이 브라우저
종료시키는 아래 스크립트가 있는데
self.opener = self;
self.close();  

이게 IE7에서 얼핏 안되게 보이지만 가능한 방법이 있습니다.

아래 내용을 참고 하세요~

[예]
//--------------------------------------
        //IE7에서 "창을 닫겠냐"는 메시지 뜨는 것 방지용
        //--------------------------------------
                function selfClose()
                {
                    if (/MSIE/.test(navigator.userAgent)) {
                        if(navigator.appVersion.indexOf("MSIE 7.0")>=0) {
                            //IE7에서는 아래와 같이
                            parent.window.open('about:blank','_self').close();
                            parent.window.opener=null;
                            parent.window.close();
                        }
                        else {
                            //IE7이 아닌 경우
                            parent.window.opener = self; 
                            parent.self.close();
                        }                       
                    } else {
                        window.name = '__t__';
                        var w = window.open('about:blank');
                        w.document.open();
                        w.document.write('<html><body><script type="text/javascript">function _(){var w=window.open("about:blank","'+window.name+'");w.close();self.close();}</'+'script></body></html>');
                        w.document.close();
                        w._();
                    }
                } 
:
Posted by 라면스프
2008. 10. 7. 11:17

HashMap에 있는 값 모두 가져오기 Enjoy/JSP2008. 10. 7. 11:17

 
HashMap에 있는 값 모두 가져오기
IT 관련/Java 2005/11/10 19:28 posted by 러브누노

HashMap에서 값을 꺼내기 위해서 보통 get 매소드를 이용하여 key값에 해당하는 value를 얻는다.
 
key값을 모르는 상태에서 HashMap에 저장된 모든 key와 그에 대응되는 value를 얻고자 할 때 다음과 같이 하면 된다.
 
 
[ HashMap 예제 ]
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
public class HashMapTest {
  public static void main(String[] args) {
    HashMap map = new HashMap();
    map.put("first", "First String");
    map.put("second", "Second String");
    Iterator iterator = map.entrySet().iterator();
    while (iterator.hasNext()) {
      Entry entry = (Entry) iterator.next();
      System.out.println("key : " + entry.getKey() + "    value : " + entry.getValue());
    }
  }
}

결과 )
key : first    value : First String
key : second    value : Second String
HashMap에 값이 저장될
:
Posted by 라면스프