jspで誕生日を入力したら年齢を割り出せるプログラムを作りたい
解決したいこと
ここに解決したい内容を記載してください。
javaのjspファイルで誕生日を入力したら年齢を割り出せるシステムを作りたいです。
例)
ここに質問の内容を詳しく書いてください。
javaでjspを勉強しています。自分の誕生日を入力したら年齢を割り出せるようにしたいのですがうまくいきません。入力画面と出力画面のhtmlはかけたのですがjavaのコードを埋め込むとエラーが出てしまいます。これにどうプログラムを埋め込んでいいかわかりません。どこの部分がどうダメかというのがわからないので僕が用意したjavaのコードとhtmlのコードを組み合わせてほしいです。
発生している問題・エラー
出ているエラーメッセージを入力
```HTTPwatt500-
入力例外レポート
メッセージ
説明 サーバは、この要求を満たすのを防ぐ内部エラー()が発生しました。
たち
org.apache.jasper.JasperException:JSPのクラスコンパイルコンパイラ:
生成されたJavaファイルの7行目でエラーが発生しました
インポートできるのはタイプのみです。java.util.Calenderはパッケージに解決されます
スタックトレース:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
注意の すべてのスタックトレースは、Apache Tomcat /6.0.29のロックにスタックトレース
Apache Tomcat / 6.0.29
または、問題・エラーが起きている画像をここにドラッグアンドドロップ
### 該当するソースコード
```java
ソースコードを入力
ファイル名question1.jsp(入力画面)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>
<HTML>
<HEAD>
<META HTTP-EQUIV ="content-type"
CONTENT="text/jsp;charset=UTF-8">
<TITLE>サーブレットへデータ送信</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
question1.jsp
<BR>
<FORM METHOD="POST" ACTION="/JV16/answer1.jsp">
<CENTER><H1>アンケート画面<BR>
</H1><BR><BR>
お名前:<INPUT NAME="NAMAE"><BR>
<BR>
郵便番号:<INPUT TYPE="TEXT" NAME="YUUBINBANGOU" SIZE=5 VALUE=""><BR>
<BR>
住所:<INPUT NAME="ZYUUSHO"><BR>
<BR>
電話番号:<INPUT TYPE="TEXT" NAME="DENWABANGOU" SIZE=5 VALUE=""><BR>
<BR>
性別:
<INPUT TYPE="RADIO" NAME="SEIBETU" VALUE=1>男性
<INPUT TYPE="RADIO" NAME="SEIBETU" VALUE=2>女性
<BR><BR>
生年月日(年):
<INPUT TYPE="NUNBER" NAME="TOSHI" SIZE=5 VALUE="">
<BR><BR>
生年月日(月):
<INPUT TYPE="NUNBER" NAME="TUKI" SIZE=5 VALUE="">
<BR><BR>
生年月日(日):
<INPUT TYPE="NUNBER" NAME="HI" SIZE=5 VALUE="">
<BR><BR>
<INPUT TYPE="SUBMIT" VALUE="送信"><BR><BR>
</CENTER>
</FORM>
<HR>
</BODY>
</HTML>
ファイル名answer1.jsp(出力画面)
<%@ page language="java" contentType="text/jsp; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.util.Calender" %>
<% request.setCharacterEncoding("UTF-8"); %>
<%
String namaeStr = request.getParameter("NAMAE");
String yuubinbangouStr = request.getParameter("YUUBINBANGOU");
String zyuushoStr = request.getParameter("ZYUUSHO");
String denwabangouStr = request.getParameter("DENWABANGOU");
String seibetuStr = request.getParameter("SEIBETU");
String toshiStr = request.getParameter("TOSHI");
String tukiStr = request.getParameter("TUKI");
String hiStr = request.getParameter("HI");%>
<%
int b_yy = Integer.parseInt(toshiStr);
int b_mm = Integer.parseInt(tukiStr);
int b_dd = Integer.parseInt(hiStr);
%>
<HTML>
<HEAD><TITLE>answer1.jsp</TITLE>
</HEAD>
<BODY>
answer1.jsp
<CENTER><H1>入力確認画面
<BR><BR>
お名前 <%=namaeStr%>
<BR>
郵便番号 <%=yuubinbangouStr%>
<BR>
住所 <%=zyuushoStr%>
<BR>
電話番号 <%=denwabangouStr%>
<BR>
<%if(seibetuStr.equals("1")){%>
性別 男性
<%}else{%>
性別 女性
<%}%>
<BR>
生年月日 <%=toshiStr%>年<%=tukiStr%>月<%=hiStr%>日
<BR>
年齢 才
</H1></CENTER>
<HR>
<A HREF="/JV16/question1.jsp">戻る</A>
</BODY>
</HTML>
### 補足情報(FW/ツールのバージョンなど)
eclipsというソフトで作ってます。サーブレットはtomcatさんです。window10使ってます。
ここにより詳細な情報を記載してください。
javaの誕生日を入力したら年齢を割り出せるコードです
import java.io.*;
import java.util.Date;
import java.util.Calendar;
public class sample52{
public static void main(String[] args) throws IOException
{
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("誕生日の西暦を入力してください");
String str = br.readLine();
int b_yy = Integer.parseInt(str);
br =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("誕生日の月をしてください");
str = br.readLine();
int b_mm = Integer.parseInt(str);
br =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("誕生日の日をしてください");
str = br.readLine();
int b_dd = Integer.parseInt(str);
toshi obj = new toshi();
int kekka = obj.nenrei(b_yy,b_mm,b_dd);
System.out.println(kekka + "才");
}
}
import java.util.Date;
import java.util.Calendar;
public class toshi{
int nenrei(int b_yy,int b_mm,int b_dd){
int kekka;
Date today = new Date(); //現在日時取得
//Calendarクラスオブジェクト生成
Calendar cal = Calendar.getInstance();
//現在日付取得
cal.setTime(today);
int yy = cal.get(Calendar.YEAR);
int mm = cal.get(Calendar.MONTH)+1;
int dd = cal.get(Calendar.DATE);
int age = yy - b_yy;
if(mm < b_mm){
age = age - 1;}
else if(mm == b_mm){
if(dd < b_dd){
age = age - 1;
}
}
return age;
}
}
### 自分で試したこと
ここに問題・エラーに対して試したことを記載してください。
いくらやってもエラーが起きてしまいます。
eclipsというソフトで作ってます。サーブレットはtomcatさんです。window10使ってます。
0