質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

3572閲覧

データをDBにて登録してあるか判断するには

ITnewperson

総合スコア27

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2015/07/25 14:21

いつもお世話になっております。

行いたい事はDBへ登録してある暗証番号は認識し、未登録ははじく処理を行いたいです。
DBはSQL Serverです。

以下がHTML(暗証番号入力画面)です。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <style type="text/css"> @import url("style.css") ; </style> <script type="text/javascript"> function onBlur(text) { text.style.backgroundColor = "#D7EEFF";<!--水色 --> } </script> <!-- 数値の連結 --> <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> <script> $(function(){ $('input[type=button]').click(function(){ if ($('#text').val().length < 4) { $('#text').val($('#text').val() + $(this).val()); } }); }); </script> </head> <body onkeydown="return false;"> <div id="Numtitle">暗証番号を入力してください。</div> <form method ="post" action="BalanceInquiry2(DB).jsp"> <div id="title">暗証番号:<input type="text" id="text" name="pass" value=""onblur="onBlur(this)" tabindex="1" title="4桁の暗証番号を入力してください。" ></div><br> <br><table> <div> <tr> <td><input type="button" value="7" id="7" tabindex="2" class="num-button" ></td> <td><input type="button" value="8" id="8" tabindex="3" class="num-button" ></td> <td><input type="button" value="9" id="9" tabindex="4" class="num-button" ></td> </tr> <tr> <td><input type="button" value="4" id="4" tabindex="5" class="num-button" ></td> <td><input type="button" value="5" id="5" tabindex="6"class="num-button" ></td> <td><input type="button" value="6" id="6" tabindex="7" class="num-button" ></td> </tr> <tr> <td><input type="button" value="1" id="1" tabindex="8" class="num-button" ></td> <td><input type="button" value="2" id="2" tabindex="9" class="num-button" ></td> <td><input type="button" value="3" id="3" tabindex="10" class="num-button" ></td> </tr> <tr> <td colspan="3"><input type="button" value="0" tabindex="11" name="zero"class="num-button"></td> </tr> </div> </table> </div> <div id="menu"> <table border="1"> <tr> <td width="33.3%;"><input type="submit" value="戻る" class="button" name="Back" tabindex="12"onclick="history.back()"></td> <td width="33.3%;"><input type="reset" value="訂正" class="button" name="Correction" tabindex="13"></td> <td width="33.3%;"><input type="submit" value="確認" class="button" name="Check" tabindex="14"></td> <td width="33.3%;"><input type="submit" value="メインメニュー"class="button" name="Back" tabindex="15" onclick="location.href='Mainmenu.jsp'"></td> </tr> </table> </div> </form> </body> </html> ------------------------------------------------- 以下がDBへ接続する側のコードです。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form methhod="post" action="BalanceInquiry3.jsp"> <!-- 変数宣言 --> <%! String passward; %> <!-- テキストボックスの値取得 -->

<%
String passward = request.getParameter("pass");
try {
//JDBCドライバの読み込み
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//データベースへの接続
conn = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;"
+ "databaseName=" + "xx" + ";",
"id", "passward");

String SqlCount = "select count(暗証番号)from xx where='"+passward+"'";
//SELECT文の条件指定
PreparedStatement pStmt1 = conn.preparedStatement(SqlCount);
//SELECTを実行し、結果表を取得
ResultSet Result = pStmt1.executeQuery();
Result.next();
int get = Result.getInt("count(暗証番号)");
if(get==1){
%>
<script type="text/javascript">
alert("ようこそ。");
location.href='BalanceInquiry3.jsp';
</script>
<% }%>
<%}else if(get==0){ %>

<script type="text/javascript"> alert("暗証番号は登録していません。"); location.href='BalanceInquiry2.jsp'; </script>

<%
} catch (SQLException e){
e.printStackTrace();
}catch (ClassNotFoundException e){
e.printStackTrace();
}finally{
//データベースの切断
if (conn != null){
try{
conn.close();
}catch (SQLException e) {
e.printStackTrace();
}
}
}
%>

</form> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP

このエラーは日本語にすると「JSPをコンパイルできない(Error in Javac compilation for JSP)」という意味で、コンパイルに失敗する場合の原因は、コードだけの時点(実際に動かす前の時点)で分かるエラー、という事になります。
つまり、構文エラーである可能性が高いです。

コードを拝見させて頂いて、いくつか怪しげなところを見つけましたのでリストアップしておきます。

  • password変数の二重宣言("String password"のような変数宣言が2度あります。)
  • if 文の波括弧のアンマッチ(else ifの前に波括弧が閉じられてしまっています。)

java

1 if(get==1){ 2%> 3 <script type="text/javascript"> 4 alert("ようこそ。"); 5 location.href='BalanceInquiry3.jsp'; 6 </script> 7<% } %> 8<%}else if(get==0){ %>
  • else if後の波カッコのアンマッチ(else ifの終わりの波括弧が try文の終わりの波括弧につながっています。

java

1<%}else if(get==0){ %> 2<script type="text/javascript"> 3alert("暗証番号は登録していません。"); 4location.href='BalanceInquiry2.jsp'; 5</script> 6<% 7} catch (SQLException e){
  • SQLの構文エラー(これはちゃんと確認していないですが、count関数の終わり括弧の後ろに半角スペースがないのでSQL構文エラーになると思います)

diff

1- String SqlCount = "select count(暗証番号)from xx where='"+passward+"'"; 2+ String SqlCount = "select count(暗証番号) from xx where='"+passward+"'";

もしエディタ上でインデントを正しく入れていないのであれば、正しくインデントを入れる癖をつけると良いです。
波括弧が合わないという問題にかなり出会わなくなります。


ここからは余談ですが、このコードではSQLへ入力された暗証番号を埋め込む際、以下のように行っています。

java

1String SqlCount = "select count(暗証番号)from xx where='"+passward+"'";

しかしこれは、SQLインジェクションという脆弱性を埋め込む可能性がある、質問中のコードに関しては** SQLインジェクションの脆弱性がある ** 実装になっています。

このようにSQL内にパラメータを埋め込む際はプリペアドステートメントの使用を強くおすすめします。
プリペアドステートメントについてはこの質問の趣旨と離れてしまいますので、一度調べてみてください、便利な奴です( 'ω' )و


以上、ご参考慣れば幸いです(๑•̀ㅂ•́)

投稿2015/08/03 14:56

Hanakla

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

全く確認してませんが、このプログラムが動かないのですか?動かないのなら何行目で何のエラーが出るのかを書いて下さい。
それとも単純に他のやり方はありませんか?って話ですか?

JSPはあまりわかりませんのでコードが動くかの確認はしてませんが見た感じは確認そのものは出来るように感じます。

投稿2015/07/25 19:40

landy77

総合スコア1614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ITnewperson

2015/07/26 01:08

こんにちは。 暗証番号入力画面は動作します。DB接続時のコードが間違っている為、ServerErrorと出ています。
Hanakla

2015/07/26 07:33

スタックトレース(****.*** (***.java:10)のようなログ)や、英文で書かれているエラーメッセージがあれば そちらを貼っていただければより詳しく見れると思います。
ITnewperson

2015/08/02 01:26

エラーコメントの一文です。 org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP このような文の事でしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問