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

/**
 *
 *大岩研究会第6回サブゼミ
 *オリジナルレシピ投稿掲示板
 *ログインサーブレット
 *
 */
public class LoginServlet extends HttpServlet {

  private String correctPassword = "okusama";  //会員専用のパスワードを設定する

  /**
   *ログインする
   *（ログインにはHTTP POSTを用いる）
   */
  public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException {
    
    //********ログイン情報の入力を受ける*********
    
    //HTTPリクエストのパラメータから、ユーザ名とパスワード情報を取り出す
    String name = request.getParameter("name");//ユーザ名
    String password = request.getParameter("password");//パスワード
    
    //日本語コードを正しい形に変換する
    name = getUnicode(name);
    password = getUnicode(password);
    
    //********ログイン認証をする*********

    boolean isAuthorized = password.equals(correctPassword);//パスワードを照合する
    
    //認証がうまくいかなかった場合、エラーメッセージを出す
    if(!isAuthorized){
      createErrorPage(response);
      return;//ここで、メソッドを終了する
    }
    
    //********ログインしている状態にする*********

    //セッションオブジェクトを生成する
    HttpSession session = request.getSession(true);
    //セッションにユーザ名を入れる
    session.setAttribute("name", name);  
    
    //********ログインしたことを伝えるページを生成する*********
    //結果を出力するための準備
    response.setContentType("text/html; charset=Shift_JIS");
    PrintWriter out = response.getWriter();

    out.println("<html>");
    out.println("<head>");
    out.println("<title>奥様Web-会員ページ</title>");
    out.println("</head>");
    out.println("<body bgcolor=\"#33CCFF\">");
    out.println("<h1>ログインしました</h1>");
    out.println("<p><a href=\"../html/kaiin.html\">会員ページへ</a></p>");
    out.println("</body>");
    out.println("</html>");
  }
  /**
   *認証がうまくいかなかった場合のページを生成する
   */
  public void createErrorPage(HttpServletResponse response)throws IOException{
    //結果を出力するための準備
    response.setContentType("text/html; charset=shift_jis");
    PrintWriter out = response.getWriter();

    out.println("<html>");
    out.println("<head>");
    out.println("<title>奥様Web-ログイン認証失敗</title>");
    out.println("</head>");
    out.println("<body bgcolor=\"#33CCFF\">");
    out.println("<h1>ログイン認証失敗</h1>");
    out.println("<p><a href=\"../html/login.html\">ログインページへ</a></p>");
    out.println("</body>");
    out.println("</html>");
  }
  /**
   *フォームからの入力を正しい日本語に変換する
   */
  private String getUnicode(String s)throws UnsupportedEncodingException {
    return new String(s.getBytes("8859_1"), "JISAutoDetect");
  }
}