お世話になります。
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>