Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 >  掲示板 >  掲示板(tomcatでウェブアプリを作っているのですが)
閲覧数:1940
掲示板(tomcatでウェブアプリを作っているのですが)
名前
題名 tomcatでウェブアプリを作っているのですが
質問内容

質問を評価する
(0ポイント)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ page import="drinkRandom.AllTime"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>ベース選択画面</title>
</head>
<body>
<h1>ベースを選んでください。</h1>
<h2>お任せの場合はランダムをクリックしてください</h2>

<%AllTime now = (AllTime)request.getAttribute("now");
String time = now.getNowTime(); 
out.println(time);%>
<p align="center">
<input type="button" value="ジンベース" onClick="location.href='DBのServletファイル'">
<input type="button" value="ウォッカベース" onClick="location.href='DBのServletファイル'">
<input type="button" value="ラムベース" onClick="location.href='DBのServletファイル'">
<input type="button" value="ランダム" onClick="location.href='DBのServletファイル'">
</p>
</body>
</html>
--------------------------------------------------
package drinkRandom;
import java.util.*;

public class AllTime 
{
    String time = "";
    Boolean judge = true;
//現在時刻を取得するメソッド    
String getNowTime()
{
    Calendar now = Calendar.getInstance(); //インスタンス化
    int h = now.get(Calendar.HOUR_OF_DAY);
    int m = now.get(Calendar.MINUTE);  
    time = ( h +":"+ m );//分を取得 
    return time;
}
//現在時刻が22時前か判定するメソッド
boolean nightTime()
    {
    Calendar now = Calendar.getInstance(); //インスタンス化
    int h = now.get(Calendar.HOUR_OF_DAY);
    if( h > 21 || h < 6)
    { judge =true;}
    else
    { judge = false;}
    return judge ;
}

}
-------------------------------------------------
package drinkRandom;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.RequestDispatcher;

/**
 * Servlet implementation class NowServlet
 */
public class NowServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //時間と22時以前か判定したboolean型の値を取得//
        AllTime now = new AllTime();
        //値のセット(もっとたくさん渡したいときはBEANに格納して渡すとよい)//
        request.setAttribute("now",now);
        //ディスパッチャーで値の受け渡し//
        RequestDispatcher dispatcher = request.getRequestDispatcher("../../WebContent/META-INF/Select.jsp");
        dispatcher.forward(request,response);
    
    }

}
--------------------------------------------------
上のソースをeclipsで書いた所jspの15行目のgetNowTime()で「メソッド getNowTime() は型 AllTime で不可視です」と出てしまいエラーになってしまいます
getNowTimeはpublicなメソッドでインポートもしているのに何がまずいのでしょうか?
それからeclipsでサーブレットを作る時フォルダ構造が少し違うと思うのですが遷移先はこれであってるんでしょうか?
質問日時 2013-08-13 04:19:49
名前
匿名
回答内容

回答を評価する
(10ポイント)
publicなメソッドに見えないのですが・・・
メソッドにも修飾子:publicをつけましょう
回答日時 2013-08-13 10:11:52
名前
回答内容

回答を評価する
(0ポイント)
package drinkRandom;
import java.util.*;

public class AllTime 
{
    String time = "";
    Boolean judge = true;
//現在時刻を取得するメソッド    
public String getNowTime()
{
    Calendar now = Calendar.getInstance(); //インスタンス化
    int h = now.get(Calendar.HOUR_OF_DAY);
    int m = now.get(Calendar.MINUTE);  
    time = ( h +":"+ m );//分を取得 
    return time;
}
//現在時刻が22時前か判定するメソッド
public boolean nightTime()
    {
    Calendar now = Calendar.getInstance(); //インスタンス化
    int h = now.get(Calendar.HOUR_OF_DAY);
    if( h > 21 || h < 6)
    { judge =true;}
    else
    { judge = false;}
    return judge ;
}

}
--------------------------------------------------
メソッドをpublicになおしましたが再び「メソッド getNowTime() は型 AllTime で不可視です」と出てしまいエラーになってしまいます
何故でしょうか?
回答日時 2013-08-13 12:47:53
名前
匿名
回答内容

回答を評価する
(0ポイント)
webapps(tmpwebapp)に最新のファイルがコピーされていな
いとか
回答日時 2013-08-13 13:52:59
名前
匿名
回答内容

回答を評価する
(0ポイント)
publicなメソッドとpublicなクラスがごっちゃになってるか?
基礎はしっかり押さえないとな。
回答日時 2013-08-13 16:16:15
名前
匿名
回答内容

回答を評価する
(0ポイント)
あれ、何故か3時間以上経って書き込まれてるな。
全く意味のない回答になってしまった。
回答日時 2013-08-13 18:44:33
名前
回答内容

回答を評価する
(0ポイント)
メソッドがpublicになっていなかったのは
未記入=publicだと勘違いしていました、説明不足ですいません。
eclipsとtomcatの設定をし直して最初から書き直したところ
何とか解決できたみたいです(パスの設定で詰まってますが・・)
また困ったときは宜しくお願いします、ありがとうございました。
回答日時 2013-08-13 20:07:53
回答内容を入力し、「確認」ボタンをクリックしてください。
ログインしていません。ログインしなくても回答はできますが、ログインすると、質問・回答の管理、更新があった場合のメールでの通知を受けることができます。 ユーザIDをお持ちでない方は「ID登録」からユーザIDの登録を行ってください。
氏名 匿名
回答内容
 



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道