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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

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

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

1回答

4767閲覧

jspでもdoGETメソッドを使用したい

RyoM

総合スコア90

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

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

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

0クリップ

投稿2016/08/17 19:00

編集2016/08/17 22:00

お世話になります。
java歴4か月の初心者です。
ただいま、jspでログイン画面を作り、サーブレットでデータベース検索という形で作っており、
もし、データベース内にユーザーIDとパスワードが見つかれば違うjspファイルにフォワード、
間違っていれば、ログイン画面のjspに戻り、間違っていると記述したいです。
色々調べているうちに似たようなプログラムがあったので参考にしつつ変えていこうと思ったのですが
それがservletで作ってあり、doGETメソッドを使用しないといけないようなのでそれをjspでも同じことが出来ないか教えていただきたいです。よろしくお願いいたします。
以下がそのソースです。

java

1import java.io.*; 2import javax.servlet.*; 3import javax.servlet.http.*; 4 5public class Login2 extends HttpServlet { 6 public void doGet(HttpServletRequest request, HttpServletResponse response) 7 throws IOException, ServletException{ 8 9 response.setContentType("text/html; charset=Shift_JIS"); 10 PrintWriter out = response.getWriter(); 11 12 out.println("<html>"); 13 out.println("<head>"); 14 out.println("<title>ログインページ</title>"); 15 out.println("</head>"); 16 out.println("<body>"); 17 18 out.println("<h1>ログイン画面</h1>"); 19 20 HttpSession session = request.getSession(true); 21 22 /* 認証失敗から呼び出されたのかどうか */ 23 Object status = session.getAttribute("status"); 24 25 if (status != null){ 26 out.println("<p>認証に失敗しました</p>"); 27 out.println("<p>再度ユーザー名とパスワードを入力して下さい</p>"); 28 29 session.setAttribute("status", null); 30 } 31 32 out.println("<form method=¥"POST¥" action=¥"/auth/LoginCheck¥" name=¥"loginform¥">"); 33 out.println("<table>"); 34 out.println("<tr>"); 35 out.println("<td>ユーザー名</td>"); 36 out.println("<td><input type=¥"text¥" name=¥"user¥" size=¥"32¥"></td>"); 37 out.println("</tr>"); 38 out.println("<tr>"); 39 out.println("<td>パスワード</td>"); 40 out.println("<td><input type=¥"password¥" name=¥"pass¥" size=¥"32¥"></td>"); 41 out.println("</tr>"); 42 out.println("<tr>"); 43 out.println("<td><input type=¥"submit¥" value=¥"login¥"></td>"); 44 out.println("<td><input type=¥"reset¥" value=¥"reset¥"></td>"); 45 out.println("</tr>"); 46 out.println("</table>"); 47 out.println("</form>"); 48 49 out.println("</body>"); 50 out.println("</html>"); 51 } 52}

追記:このように記述すると、あまりうまくいかず、if文のあたりがうまくいきません。

java

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<%@ page import="java.io.*" %> 4<%@ page import="java.sql.*" %> 5<%@ page import="javax.servlet.http.*" %> 6<%@ page import="javax.servlet.*" %> 7<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 8<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 9<html> 10<head> 11<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 12<title>ログインページ</title> 13</head> 14<body> 15<H2>ログインに必要な情報</H2> 16<%! 17 public void doPost(HttpServletRequest request, HttpServletResponse response) 18 throws IOException, ServletException 19 { 20 HttpSession session = request.getSession(true); 21 22 /* 認証失敗から呼び出されたのかどうか */ 23 Object status = session.getAttribute("status"); 24%> 25<c:if test="${status != null}"> 26 認証に失敗しました 27 再度ユーザー名とパスワードを入力して下さい 28<c:set var="status" value="null"></c:set> 29 } 30</c:if> 31<FORM ACTION="../loginDb" method="get"> 32<P>ユーザーID</P> 33<INPUT type="text" name="user"> 34<P>パスワード</P> 35<INPUT type="password" name="pass" maxlength="8"> 36<INPUT type="submit"> 37<INPUT type="reset"> 38</FORM> 39</body> 40</html>

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

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

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

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

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

matobaa

2016/08/17 21:26

んー、やってみたらできると思います。どこまでやってみましたか?
matobaa

2016/08/18 00:11

追記ありがとうございます。public void doPost(……の行はどういう意図で書きましたか?
RyoM

2016/08/18 09:22

すいません、全文の部分のdoPOSTはdoGETの誤りです。 その部分については、 HttpSession session = request.getSession(true); を記述したかった為、呼び出したかったんです。
guest

回答1

0

JSPの宣言部を分割するときは、宣言部で分割します。
具体的には以下のようには記述します。

html

1<%! 2 void doExecute() { 3%> 4.... 5<%! 6 } 7%>

ちなみに宣言部で記述したJavaコードは、JSPの先頭に記述したことになり、途中でスクリプトレットやELで書いている内容があったとしても 宣言部で書いたメソッドには含まれません

他にも注意すべきポイントは、スクリプトレットで記述した内容をELで表示するときには、request.setAttributeメソッドなどでサーブレットに属性を通知しなければなりません。

また、JSPでサーブレットのようなdoGet、doPostメソッドを実装しても呼び出されることはありません。

投稿2016/08/18 05:14

A-pZ

総合スコア12011

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

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

RyoM

2016/08/18 09:02

回答ありがとうございます! HttpSession session = request.getSession(true); の部分がdogetを宣言してあげないと書けないのかと思い、ムリヤリ入れてたんですが、jspでは呼び出されることはないとは知りませんでした。 ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問