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

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

ただいまの
回答率

88.78%

ログインフォーム実装時にHttpステータス500 internet server error 発生

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 240

deiskgor45

score 4

javaで,eclipse,tomcatを使い簡単なログインフォームを作成しています。
フォームから情報を送信する際に上のエラーが発生しました。
コンソールを見るとLoginServletの33行目に何か問題があるのかと思ったのですが
そこのコードは正しく記述できていると思いました。
行き詰ってしまったのでご教示お願いいたします。

コード
重大: サーブレット [LoginServlet] のServlet.service()が例外を投げました
java.lang.NullPointerException
    at info.searchman.lesson.java_mysql.LoginServlet.doPost(LoginServlet.java:33)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:832)
```ここに言語を入力  
コード  
**### **<login.jsp>****  

<%@ page language="java" contentType="text/html;charset=Windows-31J"%>  
<head>  
<title>  
</title>  
</head>  
<html>  
<body>  
<h1>ログイン</h1>  
<form action="/java_mysql/Login" method="POST">  
メールアドレス: <input type="text" name="email"><br><br>  
パスワード: <input type="text" name="pass"><br><br>  
<input type="submit" value="submit">  
</form>  
</body>  
</html>  
コード  
### **<LoginServlet.java>**  

package info.searchman.lesson.java_mysql;  

import java.io.IOException;  
import java.io.PrintWriter;  

import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import javax.servlet.http.HttpSession;  

public class LoginServlet extends HttpServlet {  

private static final long serialVersionUID = 1L;  

protected void doPost(HttpServletRequest request, HttpServletResponse response)  
throws ServletException, IOException {  

// 変数の初期設定  
String name = "ログインしてません";  
String status = "ログインに失敗しました";  

// 文字コードの初期設定  
request.setCharacterEncoding("Windows-31J");  

// emailの取得  
String email = request.getParameter("email");  

//passの取得  
String pass = request.getParameter("pqss");  

//emailとpassのチェック  
if (email.equals("taro") && pass.equals("epass")) {  
status = "ログイン成功しました";  
name = "太朗";      
}  

// リクエストにデータを追加する  
request.setAttribute("login", status);  

//sessionにデータを追加する  
HttpSession session = request.getSession( true );  
session.setAttribute( "name", name );  

//reasult.jspに転送する  
request.getRequestDispatcher("/result.jsp").forward(request, response);  
}  
コード  
**### <result.jsp>**  

<%@ page language="java" contentType="text/html;charset=Windows-31J"%>  
<%  
String message = (String)request.getAttribute( "login" );  
String name = (String)session.getAttribute( "name" );  
%>  
<%=message%>  
<%=name%>  
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • asahina1979

    2020/05/15 12:37

    エラーメッセージよんで何をしましたか

    キャンセル

  • deiskgor45

    2020/05/15 12:49

    33行目の記述がに誤字がないか、確かめました。
    あとはどうしたら良いか分かりませんでした。

    キャンセル

  • m.ts10806

    2020/05/15 12:59

    コードはマークダウンのcode機能を利用してご提示ください

    キャンセル

回答 1

0

定義

パスワード: <input type="text" name="pass">

参照

String pass = request.getParameter("pqss"); 

定義した情報を手入力してはいけません。
コピペが基本です。

ひとつひとつに意味があるので考えて理解してから実装しましょう。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 88.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る