2012-03-29 23 views
0

以下のプログラムでは、コードの最後の行にエラーが表示されています。 dfとdは解決できません。私は通常のJavaプログラムで同じロジックを使用し、出力を得ました。誰かがこの問題を説明できますか?サーブレットで使用すると日付が表示されない

package com.first; 
import java.io.*; 
import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class AgeCalc extends HttpServlet { 
    private static final long serialVersionUID = 1L; 
    public AgeCalc() { 
     super(); 
     } 

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

     response.setContentType("text/html"); 
     PrintWriter out = response.getWriter(); 
     //request parameters 
     String name1=request.getParameter("name1"); 
     try { 
     DateFormat df=new SimpleDateFormat("dd-MMM-yy"); 
     String dob=request.getParameter("dob"); 
     Date d=df.parse(dob); 

     } 
     catch(Exception e){} 
     out.println("<html><h3>The name entered is </h3></html>"+name1); 
     out.println("<html><body>and the date of birth is </body></html>" +df.format(d)); 

    } 
} 

答えて

2

ddf変数はtryブロック内に定義され、その外側には表示されません。外それらを宣言し、次のいずれか

DateFormat df = null; 
Date d = null; 
try { 
    df=new SimpleDateFormat("dd-MMM-yy"); 
    String dob=request.getParameter("dob"); 
    d=df.parse(dob); 
} catch(Exception e){ 
} 
out.println("<html><h3>The name entered is </h3></html>"+name1); 
out.println("<html><body>and the date of birth is </body></html>" +df.format(d)); 

または良く、一つの巨大なtryブロックのすべてを包む:

try { 
    DateFormat df=new SimpleDateFormat("dd-MMM-yy"); 
    String dob=request.getParameter("dob"); 
    Date d=df.parse(dob); 
    out.println("<html><h3>The name entered is </h3></html>"+name1); 
    out.println("<html><body>and the date of birth is </body></html>" +df.format(d)); 
} catch(Exception e){ 
} 

は、これは本当にサーブレットに関連していない、基本的なJavaです。また、あなたくださいは、少なくとも、例外を除いて何かを:

} catch(Exception e){ 
    e.printStackTrace(); 
} 
+0

1つのtryブロックに包まれたときに、応答ページは、(リクエストが送信された後に)完全に空白に示されています。 – maryJane

+0

@ user1295306:例外処理を追加してください。 'e.printStackTrace()'、私はあなたがいくつかの例外を飲み込んでいると信じています。 –

+0

私がサーブレットを述べた理由は、ロジックは通常のJavaアプリケーションで働いていましたが、変数dfとdのスコープを持っています。@Tomasz Nurkiewcz – maryJane

関連する問題