職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

やさしいjava(Webとデータベース)

2015年06月09日 | java
やさしいjavaの本(活用2)


8.4Webとデータベース項目の
【Sample5.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>←これを追加する
<jsp:useBean id="cb" class="mybeans.CarDBBean" scope="request"/>
<%!
Vector colname;←黄色い波線が出る
Vector data;←黄色い波線が出る
%>
<%
colname = cb.getColname();
data = cb.getData();
%>

これは古いVectorを使っているので黄色い波線が出るけど動く
コメント

eclipseでjavaのパッケージの赤☓を消すには

2015年05月21日 | java
eclipseの赤バツが消えず、困っております。

eclipseを使用し、javaでwebアプリを開発中です。
パッケージ・エクスプローラーから誤ってパッケージを削除したことがありました。
そのとき Ctrl+Z で、削除したパッケージを復活させたのですが、
そのときから、ソースフォルダに赤バツがついたまま消えません。
原因が分からず、困っております。
(赤バツがついているのはソースフォルダのみで、ソースフォルダ内のパッケージやjavaファイルには一切赤バツはありません。)

アプリの動作はいたって正常で特にエラーが出たりしません。
もし、原因が分かる方がいらっしゃいましたら、
ご教示願います。

解答
プロジェクト → プロパティ → Javaのビルド・パス → プロジェクトタブ

で参照しているプロジェクトも確認してみてください。

後はエクスプローラーでワークスペースを見て、ConfigFormってのがないか確認

または一度プロジェクトをエクスポート、インポートでしょうか?
・ファイル → エクスポート → 一般 → ファイルシステム → エクスポートするファイルをチェックしてデスクトップなどにエクスポート
・プロジェクトから削除(できればコンテンツごと削除)
・同名のプロジェクトを作成し、ファイルシステムでインポート
コメント

JISAutoDetect(文字自動判別)

2015年05月07日 | java
JISAutoDetectクラスについて


このJISAutoDetectはエンコードがUTF-8の場合、自動判別しないため

String tmp = request.getParameter("cars");
String carname =new String(tmp.getBytes("ISO-8859_1"), "JISAutoDetect");
とするエラーに成る。

String carname =new String(tmp.getBytes("ISO-8859-1"),"UTF-8");
としなければ成らない。

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// ここに書く

try{
//フォームデータの取得
String tmp = request.getParameter("cars");
String carname =new String(tmp.getBytes("ISO-8859-1"),"UTF-8");

//コンテンツタイプの設定
response.setContentType("text/html; charset=UTF-8");

//HTML文書の書き出し

 PrintWriter pw = response.getWriter();
 pw.println("<html>\n"
 + "<head><title>\n"
 + carname
 + "</title></head>\n"
 + "<body>
\n"
 + "

\n" + carname + "

\n"
 + carname
 + "お買い上げありがとうございました。
\n"
 + "
</body>\n"
 + "</html>\n");
 }
catch(Exception e){
 e.printStackTrace();
 }
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}

}
コメント

JSPとサーブレットの連携

2015年04月25日 | java
JSPとサーブレットの連携

JSPとサーブレットを連携について、フォームのデータのやり取りを使って、紹介していきたいと思います。 input.jsp(フォーム)→Check.java(サーブレットで簡単なエラーチェック)→view.jsp(結果を出力) といった流れで処理を行っていきます。 ですので、今回は •input.jsp •Check.java •view.jsp を作成します ではinput.jspを新規作成し、入力フォームを作成していきます。

【input.jsp 】
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC </code>"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
"Content-Type" content="text/html; charset=UTF-8">
<title>フォームに値を入力する画面</title>
</head>
<body>
 
<form method="</code">"post" action="Check">
    
    
名前:
        
<input type="</code">"text" name="name" size="30" maxlength="30">
    
年齢:
        
<input type="</code">"text" name="age" size="10" maxlength="3">
    
上記の内容で送信します
        
<input type="</code">"submit" value="送信" />
        <input type="</code">"reset" value="リセット"/>
    
</form>
 

"color: red;">

<% if(request.getAttribute("errmsg") != null){ %>
    入力エラー:
    <%= request.getAttribute("errmsg") %>
<% } %>

 
</body>
</html>
 
【Check.java 】
package hoge;
 
import java.io.IOException;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
/**
 * Servlet implementation class Check
 */
@WebServlet("/Check")
public class Check extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
       protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
 
        // セッションを利用するためにtrue
        HttpSession session = request.getSession(true);
 
        // 文字化け対策
        response.setContentType("text/html;charset=UTF-8");
        request.setCharacterEncoding("UTF-8");
 
        // フォームデータの取得
        String name =  request.getParameter("name");
        String age = request.getParameter("age");
 
        // 初期値にエラーの場合のURL指定
        String url = "/input.jsp";
        String errmsg = null;
 
        if (name.equals("") || name == null || age.equals("") || age == null) {
            // 空白だった場合errmsgをrequestに格納
            errmsg ="空白となっています。";
            request.setAttribute("errmsg", errmsg);
        } else if (!age.matches("^[0-9]+$")) {
            errmsg ="年齢は半角数字で入力して下さい。";
            request.setAttribute("errmsg", errmsg);
        } else {
            // 上記のエラーチェックが通った場合、urlを次へ変更し、sessionにフォームデータを格納
            url = "/view.jsp";
            session.setAttribute("name", name);
            session.setAttribute("age", age);
        }
 
        // フォワードにて次もしくは前画面に遷移する
        ServletContext context = getServletContext();
        RequestDispatcher rd = context.getRequestDispatcher(url);
        rd.forward(request, response);
    }
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         processRequest(request, response);
    }
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         processRequest(request, response);
    }
 
}
【view.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" session="true" %>
<!DOCTYPE html PUBLIC </code>"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
"Content-Type" content="text/html; charset=UTF-8">
<title>結果を出力します</title>
</head>
<body>

フォームデータの結果を出力します

名前:<%= session.getAttribute("name") %>さん

年齢:<%= session.getAttribute("age") %>歳

</body>
</html>

詳細にはサーブレット・JSPの基本を見るべし

コメント

htmlからデータのするには入出

2015年04月23日 | java
フォームの入力画面からデータを表示するには



■入力画面
1)formsample2.html→動的WEBプロジェクト(myweb)のwebContent内に置く
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html lang="ja">
<head>
<meta http-equiv="Content-Type" Content="text/html;charset=UTF-8">
<title>フォームサンプル</title>
</head>
<body>

<p>アンケート調査です</p>

<form action="/sample/RequestSample2" method="get">

<table>
<tr>
<td>氏名</td>
<td><input type="text" size="20" value="" name="name"></td>
</tr>
<tr>
<td>年齢</td>
<td><input type="text" size="5" value="" name="old"></td>
</tr>
<tr>
<td>好きな果物</td>
<td>
<select name="food" size="3" multiple>
<option value="りんご">りんご</option>
<option value="メロン">メロン</option>
<option value="ぶどう">ぶどう</option>
</select>
</td>
</tr>
</table>
<input type="submit" name="button1" value="送信">
</form>

</body>
</html>

■出力画面::RequestSample2.java

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class RequestSample2 extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException{

    response.setContentType("text/html;charset=Shift_JIS");
    PrintWriter out = response.getWriter();

    String tmp;

    String name = "";
    tmp = request.getParameter("name");
    if (tmp == null || tmp.length() == 0){
      name = "未設定です";
    }else{
      name = decodeString(tmp);
    }

    int old;
    tmp = request.getParameter("old");
    if (tmp == null || tmp.length() == 0){
      old = -1;
    }else{
      try{
        old = Integer.parseInt(tmp);
      }catch (NumberFormatException e){
        old = -1;
      }
    }

    String tmps[] = request.getParameterValues("food");
    String food = "";
    if (tmps != null){
      for (int i = 0 ; i < tmps.length ; i++){
        food += decodeString(tmps[i]);
        food += " ";
      }
    }else{
      food = "ありません";
    }

    StringBuffer sb = new StringBuffer();

    sb.append("<html>");
    sb.append("<head>");
    sb.append("<title>サンプル</title>");
    sb.append("</head>");
    sb.append("<body>");

    sb.append("<p>お名前は ");
    sb.append(name);
    sb.append(" です</p>");

    sb.append("<p>年齢は ");
    if (old == -1){
      sb.append("未設定です</p>");
    }else{
      sb.append(old);
      sb.append(" です</p>");
    }

    sb.append("<p>好きな果物は ");
    sb.append(food);
    sb.append("です</p>");

    sb.append("</body>");
    sb.append("</html>");

    out.println(new String(sb));

    out.close();
  }

  protected String decodeString(String str){
    try {
      byte[] byteData = str.getBytes("ISO_8859_1");
      str = new String(byteData, "Shift_JIS");
    }catch(UnsupportedEncodingException e){
      return null;
    }

    return str;
  }
}

 

 

コメント