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

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

新規登録して質問してみよう
ただいま回答率
85.37%
JSP

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

HTML

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

Q&A

解決済

2回答

1128閲覧

JSPでログイン結果を表示できるようにしたいです

gamavone

総合スコア3

JSP

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

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

HTML

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

0グッド

0クリップ

投稿2021/06/18 14:38

JSPを学び始めて間もない初心者です。
ユーザーIDが「user」、パスワードが「password」だった場合は「ログイン成功」と表示し、それ以外が入力された場合は「ログイン失敗」と表示するJSPを記述しようと試みています。
また、「ログイン成功」と「ログイン失敗」の出力には、outオブジェクトを使用します。

以下のコードで試しているのですが、コンパイルエラーになってしまいます。
###該当のソースコード
【JSPのコード】check.jsp

<%@ page contentType="text/html;charset=utf-8" %>

<% request.setCharacterEncoding("utf-8"); %>

<html> <head> <title>Check</title> </head> <body> <h1> <% reqest.setCharacterEncoding("utf-8"); String ui = request.getParameter("userid"); String up =request.getParameter("userpass"); if(ui =='user'&& up =='password'){ out.println("ログイン成功"); }
else out.println("ログイン失敗"); %> </h1>
</body> </html>

【HTMLのコード】logintest.html

<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>LoginTest</title> </head> <body> <br> <form action="./check.jsp" method="post">   ユーザー IDを入力してください : <input type="text" name="userid" size="20" /> <br><br>   パスワードを入力してください : <input type="password" name="userpass" size="20" /> <br><br> <input type="submit" value="ログイン" /> </form> </body> </html>

よろしくお願い致します。

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

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

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

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

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

m.ts10806

2021/06/27 04:27

質問は編集できます。 編集後、「受付中」の状態を「解決済み」にしてください。
guest

回答2

0

ベストアンサー

コンパイルエラーの原因としては、

reqest.setCharacterEncoding("utf-8");

の部分のスペルミス(reqest→request)と、

if(ui =='user'&& up =='password'){

の部分で、文字列がシングルクオーテーション(')で囲われていることだと思います。
"user"、"password"のように、ダブルクオーテーション(")で囲う必要があります。

ただ、他の方もコメントされている通り、Stringのようなオブジェクトを比較したいときは、

if(ui.equals("user") && up.equals("password"))

とする必要がありますね。
(理由については「Java object equals」などで調べてみると有用な情報が得られるように思います)

投稿2021/06/18 21:10

編集2021/06/18 21:42
hallen0225

総合スコア587

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

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

m.ts10806

2021/06/18 21:33

> 'user'のあとにスペースがないことだと思います。 そこは影響ないです(検証済み) シングルクォーテーションなのは影響大ですが。
hallen0225

2021/06/18 21:40

そういえばJavaの文字列リテラルはダブルクオーテーションのみでしたね。回答は一部修正しました。
gamavone

2021/06/27 03:31

解決出来ました!ありがとうございます! 仰るとおり、スペルミスとオブジェクトの比較の部分が間違っていたようです。
guest

0

色々おかしいと思う。

if - else の書き方?
if文を使った条件分岐

「文字列」としたいならJavaの場合はシングルクォーテーションではなくダブルクォーテーションになります。

それに文字列の比較はequals()です。

また、直にコード内に認証情報書くのは悪手です。
DBにするか、せめて設定ファイルに外だししましょう。
パスワードも平文ではなく暗号化を。

投稿2021/06/18 20:26

編集2021/06/18 21:32
m.ts10806

総合スコア80875

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

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

m.ts10806

2021/06/18 20:34

サーブレット+jspを取り扱った入門書を一通り通した方が良いです。
m.ts10806

2021/06/18 20:36

もっと言えばjspはあくまでVIEWなので、ロジック書きたいならサーブレットで受けて結果だけをjspに渡した方がスッキリします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問