Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

jspエラーの消し方

htmlで入力された数字をjspで受け取り、それを1桁の素数で素因数分解する処理を書いています。
『HTTP Status 500 - Internal Server Error
type Exception report

messageInternal Server Error

descriptionThe server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
root cause

java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.1.1 logs.』
このエラーはどう書けば消えるでしょうか?
最初にAllayListで2,3,5,7でそれぞれ何回割ったかの配列を作り、その後for文を4回書いて素因数分解できなくなるまで割り、最後に、例えば『27=3*3*3』という感じで表示する予定なのですが、最後の処理の書き方がわかりません。

JSPの全体的な処理はこんな感じです。
<%@ page import="java.util.ArrayList" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>クエリストリング課題2答え</title>
    </head>
    <body>
    <%
     
        request.setCharacterEncoding("UTF-8");
        
    ArrayList<Integer> data = new ArrayList<Integer>();
         
         int kazu=Integer.parseInt(request.getParameter("suji"));
         int suji=kazu;
         int i;
         int A;
         int B;
         int C;
         
         for(i=0;(kazu%2)==0;i++){
           
             kazu=kazu/2;
             
             data.add(2);
         }
         
          for(A=0;(kazu%3)==0;A++){
           
             kazu=kazu/3;
             
             data.add(3);
         }
          
           for(B=0;(kazu%5)==0;B++){
           
             kazu=kazu/5;
             
             data.add(5);
         }
           
            for(C=0;(kazu%7)==0;C++){
           
             kazu=kazu/7;
             
             data.add(7);
         }
            
       for(int D=1;D<data.get();D++){
  
  out.print(suji+"="+data.get(0)+"*"+data.get(data.size(D))+"あまり"+suji);
  
}
   
       %>
    </body>
</html>

1

回答

364

閲覧

1件の回答

評価

0

ここはエラーの消し方を教えてもらう場所ではないんだ。
まずは自力で問題解決を目指し、それでもだめならその内容を書いた上で質問する。
「わかりません」も同じだ。

回答する

ログインしていません。

ログインしなくても回答はできますが、ログインすると、質問・回答の管理、更新があった場合のメールでの通知を受けることができます。 アカウントをお持ちでない方は会員登録を行ってください。

ユーザ名匿名