Tag Archives: Java

Java에서 임시 패스워드 만들기.

package xxx.xxx.util;

import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

public class PasswordUtil {

  public static final int KEY_LENTH = 2;

  /**
   * 初期パスワードを生成するメソッドです
   * 
   * @throws NoSuchAlgorithmException
   * @returnパスワード
   */
  public static String generateKey() throws NoSuchAlgorithmException {
    String resultStr = null;
    // 候補文字列
    String[] candidates = new String[] { "abcdefghijklmnopqrstuvwxyz",
        "0123456789" };
    int count = KEY_LENTH;
    char[] generated = new char[count];
    SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
    StringBuffer candidateAll = new StringBuffer();
    int watermark = 0;
    for (int i = 0; i < candidates.length; i++) {
      if (candidates[i] != null && !"".equals(candidates[i])) {
        generated[watermark++] = candidates[i].charAt(sr.nextInt(candidates[i].length()));
        candidateAll.append(candidates[i]);
      }
    }
    for (int i = watermark; i < count; i++) {
      generated[i] = candidateAll.toString()
        .charAt(sr.nextInt(candidateAll.length()));
    }
    for (int i = 100000; i >= 0; i--) {
      int x = sr.nextInt(count);
      int y = sr.nextInt(count);
      char tmp = generated[x];
      generated[x] = generated[y];
      generated[y] = tmp;
    }
    resultStr = new String(generated);
    return resultStr;
  }// GEN-LAST:event_jButton1ActionPerformed

}

sastruts mobylet mayaa

sastruts + mobylet + mayaa문자 깨짐 조사.

이번 프로젝트의 휴대폰 사이트 부분에서 문자 깨짐 현상이 발생하여 여러가지 문제를 조사한 결가 아래처럼 하면 문제깨짐은 문제없이 잘 표시됩에 잊지 않기 위해 메모 해둠.

템플릿 포멧은 Shift-JIS이고 meta에는

<meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS” />

위처럼 설정이 되여 있어 Softbank에서는 문자가 깨짐.

자동으로 UTF-8로 인식을 해야하는데 Shift_JIS로 되여 있어서 일단은 문자 깨짐

여기서 디바이스를 판단해 따로 설정해주면 해결가능

템플릿 엔진인 mayaa설을을 아래처럼 하고 , 템플렛 파일도 아래처럼

#SSI File

charset.mayaa

<m:beforeRender><![CDATA[
request.newAttribute(“charsetUtil”, Packages.jp.xxxx.ec.util.ec.mobile.CharsetUtil);
var charsetName = charsetUtil.getCharsetName();
//java.lang.System.out.println(“★★” + charsetName);
if (charsetName == ‘x-mobylet-docomo’){
response.setContentType(“text/html; charset=Shift_JIS”);
}else if (charsetName == ‘x-mobylet-au’){
response.setContentType(“text/html; charset=Shift_JIS”);
}else{
response.setContentType(“text/html; charset=UTF-8”);
}
]]></m:beforeRender>
charset.html
<meta/>
#template
index.xhtml
<!–#include virtual=”/charset.html”–>
#java
package jp.xxxx.ec.util.ec.mobile;

import org.mobylet.core.Mobylet;
import org.mobylet.core.MobyletFactory;

public class CharsetUtil {

  public static String getCharsetName() {

    Mobylet m = MobyletFactory.getInstance();
    String charsetName = m.getDialect().getContentCharsetName();
    //charsetName = m.getDialect().getCharsetName();

  return charsetName;

  }

}

외부 프로그램을 Runtime 으로 실행하기

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class test {
  public static void main(String[] args) {
    String result;
    try {
      Runtime rt = Runtime.getRuntime();
      Process p = rt viagrasstore.net.exec("CMD.EXE /C nslookup yahoo.co.jp");
      InputStream is = p.getInputStream();
      InputStreamReader isr = new InputStreamReader(is);
      BufferedReader br = new BufferedReader(isr);
      while ((result = br.readLine()) != null) {
        System.out.println(result);
      }
    } catch (IOException ex) {
      ex.printStackTrace();
    }
  }
}