質問編集履歴
6
タイトルの変更
    
        title	
    CHANGED
    
    | @@ -1,1 +1,1 @@ | |
| 1 | 
            -
            セッションスコープ | 
| 1 | 
            +
            セッションスコープに値を保存しているはずなのに、NullPointerエラーが出てしまう。
         | 
    
        body	
    CHANGED
    
    | 
            File without changes
         | 
5
s
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -8,6 +8,8 @@ | |
| 8 8 |  | 
| 9 9 | 
             
            謎が多いです。やれることはやったのですが、解決できません。
         | 
| 10 10 |  | 
| 11 | 
            +
            お願いします、助けてください。
         | 
| 12 | 
            +
             | 
| 11 13 | 
             
            ### 発生している問題・エラーメッセージ
         | 
| 12 14 | 
             
            ```
         | 
| 13 15 | 
             
            HTTPステータス 500 - 
         | 
4
d
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -6,6 +6,8 @@ | |
| 6 6 |  | 
| 7 7 | 
             
            ユーザー登録が完了した後に、ユーザーIDとパスワードを用いてログインをしようとしている時に以下のエラーがでました。
         | 
| 8 8 |  | 
| 9 | 
            +
            謎が多いです。やれることはやったのですが、解決できません。
         | 
| 10 | 
            +
             | 
| 9 11 | 
             
            ### 発生している問題・エラーメッセージ
         | 
| 10 12 | 
             
            ```
         | 
| 11 13 | 
             
            HTTPステータス 500 - 
         | 
3
詳細を付け加えました
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -338,6 +338,8 @@ | |
| 338 338 |  | 
| 339 339 | 
             
            ですが、その後ログインを試みたところ、エラーメッセージの通りなのですが、User_MainPageServlet.javaの〇部分にてエラーが発生しました。NullPointerと出ているので対象の値がNullになっているかと思ったのですが、セッションに保存されており、セッションを呼び出していると思ってますので謎が深まっております。ちなみにlogin.jspにて入力したユーザーIDとパスワードをSystem.out.println(~)にてちゃんと値が格納されているか確認をしたところ、しっかりコンソールにて出力されていました。
         | 
| 340 340 |  | 
| 341 | 
            +
            session.setAttribute("userbeanses", ub)で値を設定後、別のサーブレットでUserBean ub = (UserBean) session.getAttribute("userbeanses");するとnullになってしまう理由が理解できません....(get/setしているはずなのに)
         | 
| 342 | 
            +
             | 
| 341 343 | 
             
            多数の長いソースコードを張り付けて申し訳ありませんがご協力本当によろしくお願いいたします。
         | 
| 342 344 |  | 
| 343 345 |  | 
2
マークダウンに変更
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -7,7 +7,10 @@ | |
| 7 7 | 
             
            ユーザー登録が完了した後に、ユーザーIDとパスワードを用いてログインをしようとしている時に以下のエラーがでました。
         | 
| 8 8 |  | 
| 9 9 | 
             
            ### 発生している問題・エラーメッセージ
         | 
| 10 | 
            +
            ```
         | 
| 11 | 
            +
            HTTPステータス 500 - 
         | 
| 10 12 |  | 
| 13 | 
            +
             | 
| 11 14 | 
             
            type 例外レポート
         | 
| 12 15 |  | 
| 13 16 | 
             
            メッセージ 
         | 
| @@ -16,8 +19,7 @@ | |
| 16 19 |  | 
| 17 20 | 
             
            例外
         | 
| 18 21 | 
             
            java.lang.NullPointerException
         | 
| 19 | 
            -
            	MainPage.User_MainPageServlet.doGet(User_MainPageServlet.java:45)
         | 
| 20 | 
            -
            	MainPage.User_MainPageServlet.doPost(User_MainPageServlet.java: | 
| 22 | 
            +
            	MainPage.User_MainPageServlet.doPost(User_MainPageServlet.java:36)
         | 
| 21 23 | 
             
            	javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
         | 
| 22 24 | 
             
            	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
         | 
| 23 25 | 
             
            	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
         | 
| @@ -25,9 +27,11 @@ | |
| 25 27 |  | 
| 26 28 | 
             
            注意 原因のすべてのスタックトレースは、Apache Tomcat/8.0.36のログに記録されています
         | 
| 27 29 |  | 
| 28 | 
            -
            ### 該当のソースコード
         | 
| 29 30 |  | 
| 31 | 
            +
            Apache Tomcat/8.0.36
         | 
| 32 | 
            +
            ```
         | 
| 30 | 
            -
             | 
| 33 | 
            +
            ###1.UserBean.java
         | 
| 34 | 
            +
            ```
         | 
| 31 35 | 
             
            package User;
         | 
| 32 36 | 
             
            import java.io.Serializable;
         | 
| 33 37 | 
             
            public class UserBean implements Serializable{
         | 
| @@ -109,9 +113,9 @@ | |
| 109 113 | 
             
            	}
         | 
| 110 114 |  | 
| 111 115 | 
             
            }
         | 
| 112 | 
            -
             | 
| 116 | 
            +
            ```
         | 
| 113 | 
            -
             | 
| 114 | 
            -
             | 
| 117 | 
            +
            ###2.User_RegisterServlet.java(サーブレットクラス)
         | 
| 118 | 
            +
            ```
         | 
| 115 119 | 
             
            package MainPage;
         | 
| 116 120 |  | 
| 117 121 | 
             
            import java.io.IOException;
         | 
| @@ -133,81 +137,86 @@ | |
| 133 137 | 
             
            	private static final long serialVersionUID = 1L;
         | 
| 134 138 |  | 
| 135 139 | 
             
            	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         | 
| 136 | 
            -
             | 
| 140 | 
            +
            		/*文字コードエンコーディング*/
         | 
| 137 141 | 
             
            	    request.setCharacterEncoding("UTF-8");
         | 
| 138 142 | 
             
            	    response.setCharacterEncoding("UTF-8");
         | 
| 139 143 | 
             
            	    response.setContentType("text/html;charset=UTF-8");
         | 
| 140 144 |  | 
| 141 145 |  | 
| 142 | 
            -
             | 
| 146 | 
            +
            	    /*遷移先*/
         | 
| 143 | 
            -
             | 
| 147 | 
            +
            	    String url = null;
         | 
| 144 148 |  | 
| 145 | 
            -
             | 
| 149 | 
            +
            	    /*User情報取得*/
         | 
| 146 | 
            -
             | 
| 150 | 
            +
            	    UserBean ub = new User.UserBean();
         | 
| 147 151 |  | 
| 152 | 
            +
            	    /*パラメータの取得*/
         | 
| 148 | 
            -
             | 
| 153 | 
            +
            	    String name= request.getParameter("name");
         | 
| 149 | 
            -
             | 
| 154 | 
            +
            	    String sex = request.getParameter("sex");
         | 
| 150 | 
            -
             | 
| 155 | 
            +
            	    String age = request.getParameter("age");
         | 
| 151 | 
            -
             | 
| 156 | 
            +
            	    String year = request.getParameter("year");
         | 
| 152 | 
            -
             | 
| 157 | 
            +
            	    String month = request.getParameter("month");
         | 
| 153 | 
            -
             | 
| 158 | 
            +
            	    String day = request.getParameter("day");
         | 
| 154 | 
            -
             | 
| 159 | 
            +
            	    String height = request.getParameter("tall");
         | 
| 155 | 
            -
             | 
| 160 | 
            +
            	    String weight = request.getParameter("weight");
         | 
| 156 | 
            -
             | 
| 161 | 
            +
            	    String userid = request.getParameter("userid");
         | 
| 157 | 
            -
             | 
| 162 | 
            +
            	    String password = request.getParameter("password");
         | 
| 158 163 |  | 
| 159 | 
            -
             | 
| 164 | 
            +
            	    String birth = year+"年"+month+"月"+day+"日";
         | 
| 160 165 |  | 
| 161 166 |  | 
| 162 | 
            -
             | 
| 167 | 
            +
            	    ub.setName(name);
         | 
| 163 | 
            -
             | 
| 168 | 
            +
            	    ub.setSex(sex);
         | 
| 164 | 
            -
             | 
| 169 | 
            +
            	    ub.setAge(age);
         | 
| 165 | 
            -
             | 
| 170 | 
            +
            	    ub.setBirth(birth);
         | 
| 166 | 
            -
             | 
| 171 | 
            +
            	    ub.setHeight(height);
         | 
| 167 | 
            -
             | 
| 172 | 
            +
            	    ub.setWeight(weight);
         | 
| 168 | 
            -
             | 
| 173 | 
            +
            	    ub.setUserid(userid);
         | 
| 169 | 
            -
             | 
| 174 | 
            +
            	    ub.setPassword(password);
         | 
| 170 175 |  | 
| 171 | 
            -
                 System.out.println(ub.getName());
         | 
| 172 | 
            -
                 System.out.println(ub.getSex());
         | 
| 173 | 
            -
                 System.out.println(ub.getAge());
         | 
| 174 | 
            -
                 System.out.println(ub.getBirth());
         | 
| 175 | 
            -
                 System.out.println(ub.getHeight());
         | 
| 176 | 
            -
                 System.out.println(ub.getWeight());
         | 
| 177 | 
            -
                 System.out.println(ub.getUserid());
         | 
| 178 | 
            -
                 System.out.println(ub.getPassword());
         | 
| 179 176 |  | 
| 177 | 
            +
            	    /*パラメータを取得で来ているかどうかの確認*/
         | 
| 178 | 
            +
            	    System.out.println(ub.getName());
         | 
| 179 | 
            +
            	    System.out.println(ub.getSex());
         | 
| 180 | 
            +
            	    System.out.println(ub.getAge());
         | 
| 181 | 
            +
            	    System.out.println(ub.getBirth());
         | 
| 182 | 
            +
            	    System.out.println(ub.getHeight());
         | 
| 183 | 
            +
            	    System.out.println(ub.getWeight());
         | 
| 184 | 
            +
            	    System.out.println(ub.getUserid());
         | 
| 180 | 
            -
             | 
| 185 | 
            +
            	    System.out.println(ub.getPassword());
         | 
| 181 | 
            -
                 session.setAttribute("userbeanses", ub);
         | 
| 182 | 
            -
                 UserBean  ub_test = (UserBean) session.getAttribute("userbeanses");
         | 
| 183 186 |  | 
| 184 | 
            -
             ☆  System.out.println(ub_test.getName());
         | 
| 185 | 
            -
                 System.out.println(ub_test.getSex());
         | 
| 186 | 
            -
                 System.out.println(ub_test.getAge());
         | 
| 187 | 
            -
                 System.out.println(ub_test.getBirth());
         | 
| 188 | 
            -
                 System.out.println(ub_test.getHeight());
         | 
| 189 | 
            -
                 System.out.println(ub_test.getWeight());
         | 
| 190 | 
            -
                 System.out.println(ub_test.getUserid());
         | 
| 191 | 
            -
             | 
| 187 | 
            +
            	    HttpSession session = request.getSession();
         | 
| 192 | 
            -
                 //ログイン判定
         | 
| 193 | 
            -
             | 
| 188 | 
            +
            	    session.setAttribute("userbeanses", ub);
         | 
| 189 | 
            +
            	    UserBean  ub_test = (UserBean) session.getAttribute("userbeanses");
         | 
| 194 190 |  | 
| 191 | 
            +
            	    /*セッションスコープに保存されているかの確認*/
         | 
| 192 | 
            +
            	    System.out.println(ub_test.getName());
         | 
| 193 | 
            +
            	    System.out.println(ub_test.getSex());
         | 
| 194 | 
            +
            	    System.out.println(ub_test.getAge());
         | 
| 195 | 
            +
            	    System.out.println(ub_test.getBirth());
         | 
| 196 | 
            +
            	    System.out.println(ub_test.getHeight());
         | 
| 197 | 
            +
            	    System.out.println(ub_test.getWeight());
         | 
| 198 | 
            +
            	    System.out.println(ub_test.getUserid());
         | 
| 199 | 
            +
            	    System.out.println(ub_test.getPassword());
         | 
| 200 | 
            +
            	    //ログイン判定
         | 
| 201 | 
            +
            	    UserAuthBean uab = new User.UserAuthBean();
         | 
| 202 | 
            +
             | 
| 195 | 
            -
             | 
| 203 | 
            +
            	    if(uab.execute(ub) == true) {
         | 
| 196 | 
            -
             | 
| 204 | 
            +
            	     	/*認証に成功*/
         | 
| 197 | 
            -
                 	      //Beansをセッションオブジェクトに保存
         | 
| 198 | 
            -
             | 
| 205 | 
            +
            	     	url = "/WEB-INF/Login_Register/register_end.jsp";
         | 
| 199 | 
            -
             | 
| 206 | 
            +
            	    }else{
         | 
| 200 | 
            -
             | 
| 207 | 
            +
            	     	/*認証に失敗*/
         | 
| 201 | 
            -
             | 
| 208 | 
            +
            	    	url = "/WEB-INF/Login_Register/register_error.jsp";
         | 
| 202 | 
            -
             | 
| 209 | 
            +
            	    }
         | 
| 203 | 
            -
             | 
| 210 | 
            +
            	    /*画面遷移*/
         | 
| 204 | 
            -
             | 
| 211 | 
            +
            	    ServletContext servletContext = getServletContext();
         | 
| 205 | 
            -
             | 
| 212 | 
            +
            	    RequestDispatcher rd = servletContext.getRequestDispatcher(url);
         | 
| 206 | 
            -
             | 
| 213 | 
            +
            	    rd.forward(request, response);
         | 
| 207 | 
            -
             | 
| 214 | 
            +
            	}
         | 
| 208 215 | 
             
            }
         | 
| 209 216 |  | 
| 210 | 
            -
             | 
| 217 | 
            +
            ```
         | 
| 218 | 
            +
            ###3.login.jsp(JSPファイル)
         | 
| 219 | 
            +
            ```
         | 
| 211 220 | 
             
            <login.jsp(jspファイル(ログイン画面))
         | 
| 212 221 | 
             
            <%@ page language="java" contentType="text/html; charset=UTF-8"
         | 
| 213 222 | 
             
                pageEncoding="UTF-8"%>
         | 
| @@ -239,9 +248,10 @@ | |
| 239 248 |  | 
| 240 249 | 
             
            </body>
         | 
| 241 250 | 
             
            </html>
         | 
| 251 | 
            +
            ```
         | 
| 242 252 |  | 
| 243 | 
            -
             | 
| 244 | 
            -
             | 
| 253 | 
            +
            ###4.User_MainPageServlet.java(サーブレットクラス)
         | 
| 254 | 
            +
            ```
         | 
| 245 255 | 
             
            package MainPage;
         | 
| 246 256 |  | 
| 247 257 | 
             
            import java.io.IOException;
         | 
| @@ -255,55 +265,74 @@ | |
| 255 265 | 
             
            import javax.servlet.http.HttpSession;
         | 
| 256 266 |  | 
| 257 267 | 
             
            import User.UserBean;
         | 
| 258 | 
            -
             | 
| 268 | 
            +
             | 
| 259 | 
            -
             * Servlet implementation class User_MainPageServlet
         | 
| 260 | 
            -
             */
         | 
| 261 269 | 
             
            @WebServlet("/MainPage/User_MainPageServlet")
         | 
| 262 270 | 
             
            public class User_MainPageServlet extends HttpServlet {
         | 
| 263 271 | 
             
            	private static final long serialVersionUID = 1L;
         | 
| 264 272 |  | 
| 273 | 
            +
            	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         | 
| 274 | 
            +
            		/*文字コードエンコーディング*/
         | 
| 275 | 
            +
            	    request.setCharacterEncoding("UTF-8");
         | 
| 276 | 
            +
            	    response.setCharacterEncoding("UTF-8");
         | 
| 277 | 
            +
            	    response.setContentType("text/html;charset=UTF-8");
         | 
| 265 278 |  | 
| 279 | 
            +
            		/*遷移先*/
         | 
| 280 | 
            +
            	    String url = null;
         | 
| 281 | 
            +
             | 
| 282 | 
            +
            	    /*ログイン-ユーザーID_パスワード情報取得*/
         | 
| 283 | 
            +
            	    String userid_login = request.getParameter("userid_login");
         | 
| 284 | 
            +
            	    String password_login = request.getParameter("password_login");
         | 
| 285 | 
            +
             | 
| 286 | 
            +
            	    HttpSession session = request.getSession();
         | 
| 287 | 
            +
             | 
| 288 | 
            +
            		UserBean ub = (UserBean) session.getAttribute("userbeanses");
         | 
| 289 | 
            +
             | 
| 266 | 
            -
             | 
| 290 | 
            +
            		if(userid_login == ub.getUserid() && password_login == ub.getPassword()) {
         | 
| 291 | 
            +
            			url = "/WEB-INF/Menu/mainmenu.jsp";
         | 
| 292 | 
            +
            		}else if((ub.getUserid() == "" && ub.getPassword() == "") || userid_login != ub.getUserid()&&  password_login!=ub.getPassword()){
         | 
| 293 | 
            +
            		    url = "WEB-INF/Login_Register/login_error";
         | 
| 294 | 
            +
            		}
         | 
| 295 | 
            +
             | 
| 296 | 
            +
            		/*画面遷移*/
         | 
| 297 | 
            +
            		RequestDispatcher rd = request.getRequestDispatcher(url);
         | 
| 267 | 
            -
            		 | 
| 298 | 
            +
            		rd.forward(request, response);
         | 
| 268 299 | 
             
            	}
         | 
| 269 300 |  | 
| 301 | 
            +
             | 
| 270 302 | 
             
            	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         | 
| 271 | 
            -
             | 
| 303 | 
            +
            		/*文字コードエンコーディング*/
         | 
| 272 304 | 
             
            	    request.setCharacterEncoding("UTF-8");
         | 
| 273 305 | 
             
            	    response.setCharacterEncoding("UTF-8");
         | 
| 274 306 | 
             
            	    response.setContentType("text/html;charset=UTF-8");
         | 
| 275 307 |  | 
| 276 | 
            -
             | 
| 308 | 
            +
            		/*遷移先*/
         | 
| 277 | 
            -
             | 
| 309 | 
            +
            	    String url = null;
         | 
| 278 310 |  | 
| 279 | 
            -
             | 
| 311 | 
            +
            	    /*ログイン-ユーザーID_パスワード情報取得*/
         | 
| 280 | 
            -
             | 
| 312 | 
            +
            	    String userid_login = request.getParameter("userid_login");
         | 
| 281 | 
            -
             | 
| 313 | 
            +
            	    String password_login = request.getParameter("password_login");
         | 
| 282 314 |  | 
| 283 | 
            -
             | 
| 315 | 
            +
            	    HttpSession session = request.getSession();
         | 
| 284 316 |  | 
| 285 | 
            -
             | 
| 317 | 
            +
            		UserBean ub = (UserBean) session.getAttribute("userbeanses");
         | 
| 286 318 |  | 
| 287 | 
            -
             | 
| 319 | 
            +
            		if(userid_login == ub.getUserid() && password_login == ub.getPassword()) {
         | 
| 288 | 
            -
             | 
| 320 | 
            +
            			url = "/WEB-INF/Menu/mainmenu.jsp";
         | 
| 289 | 
            -
             | 
| 321 | 
            +
            		}else if((ub.getUserid() == "" && ub.getPassword() == "") || userid_login != ub.getUserid()&&  password_login!=ub.getPassword()){
         | 
| 290 | 
            -
                                     != ub.getUserid()&&  password_login!=ub.getPassword()){
         | 
| 291 | 
            -
             | 
| 322 | 
            +
            		    url = "WEB-INF/Login_Register/login_error";
         | 
| 292 | 
            -
             | 
| 323 | 
            +
            		}
         | 
| 293 324 |  | 
| 294 | 
            -
            	   System.out.println(ub.getUserid());
         | 
| 295 | 
            -
            	   System.out.println(ub.getPassword());
         | 
| 296 | 
            -
             | 
| 297 | 
            -
             | 
| 298 | 
            -
             | 
| 325 | 
            +
            		/*画面遷移*/
         | 
| 299 | 
            -
             | 
| 326 | 
            +
            		RequestDispatcher rd = request.getRequestDispatcher(url);
         | 
| 300 | 
            -
             | 
| 327 | 
            +
            		rd.forward(request, response);
         | 
| 301 328 | 
             
            	}
         | 
| 302 329 | 
             
            }
         | 
| 303 330 |  | 
| 304 331 |  | 
| 332 | 
            +
            ```
         | 
| 305 333 |  | 
| 306 334 |  | 
| 335 | 
            +
             | 
| 307 336 | 
             
            ### 試したこと
         | 
| 308 337 | 
             
            試したことというよりかは、ちゃんとセッションスコープに保存ができているかどうかの確認なのですが、User_Registerervlet.javaの☆部分にてSystem.out.println(ub_test.~)という形でセッションスコープに値がしっかり保存されているかどうかの確認をしたところ、しっかりコンソールにて値が出力されていました。
         | 
| 309 338 |  | 
1
サーバーの種類追加
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -309,9 +309,9 @@ | |
| 309 309 |  | 
| 310 310 | 
             
            ですが、その後ログインを試みたところ、エラーメッセージの通りなのですが、User_MainPageServlet.javaの〇部分にてエラーが発生しました。NullPointerと出ているので対象の値がNullになっているかと思ったのですが、セッションに保存されており、セッションを呼び出していると思ってますので謎が深まっております。ちなみにlogin.jspにて入力したユーザーIDとパスワードをSystem.out.println(~)にてちゃんと値が格納されているか確認をしたところ、しっかりコンソールにて出力されていました。
         | 
| 311 311 |  | 
| 312 | 
            -
            多数の長いソースコードを張り付けて申し訳ありませんがご協力よろしくお願いいたします。
         | 
| 312 | 
            +
            多数の長いソースコードを張り付けて申し訳ありませんがご協力本当によろしくお願いいたします。
         | 
| 313 313 |  | 
| 314 314 |  | 
| 315 | 
            +
             | 
| 315 316 | 
             
            ### 補足情報(FW/ツールのバージョンなど)
         | 
| 316 | 
            -
             | 
| 317 | 
            -
             | 
| 317 | 
            +
            サーバー:Tomcat8.0vサーバー
         | 
