過去に開発したWebアプリをEclipseを使用して再開発し直してみようと挑戦中ですが、以下のエラーが解決できず困っています。
*****
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
JSPファイル: null の中の行: -1でエラーが発生しました
生成されたサーブレットのエラーです:
[javac] Compiling 1 source file
E:\AddProgram\Eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Standalone\localhost\XXX\login_jsp.java:10: java.lang.Object にアクセスできません。
クラスファイル E:\AddProgram\Eclipse\eclipse\jre\lib\rt.jar(java/lang/Object.class) は不正です。
クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです。
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
public class login_jsp extends HttpJspBase {
^
エラー 1 個
*****
Javaビルドパス-クラスパス変数は j2sdk1.4.2\jre\lib\rt.jarになっているし、
Javaコンパイラーの準拠レベルは1.4になっているし、
JAVA_HOMEやPATHもj2sdk1.4.2、j2sdk1.4.2\binになっているんですが、何故別のjarを参照してしまっているのでしょうか?

Eclipseの再起動、JRE1.4.2の再インストールなども試みましたが、解決せず悩んでいます。解決方法をご存知の方、ご教授ください。

■環境(最終的に落ち着いた使用バージョンは以下の通り。)
・EclipsePleiadesAllinOneJava3_4_2
・java 1.4.2
・Tomcat 4.1.31
・Apache 2.0.53
・MySQL 4.0.25

A 回答 (2件)

やっぱり、EclipseにJREがあるようですね。

これが原因ではないでしょうか。Eclipseは、同じフォルダ内にJREがあると、デフォルトのJREではなくそちらを使って起動しますので、それで1.4が使われずクラスライブラリのバージョン問題が発生しているのではないでしょうか。

EclipseのJREを他の場所に移動して起動したらどうでしょうか。それでダメなら、JREなしのものをいれて試してみるのがよいかと思います。
    • good
    • 1
この回答へのお礼

結局、JREをリネーム、移動しても、コンパイラーを1.5や1.6にしても(Tomcatもバージョン変更)解決せず、JREなしのEclipseをDL、インストールしました。ところが、いろいろ調べていく中で、Eclipse3.4.2はJRE1.5以上じゃないと動作しないことが判明し、最終的には、再度JRE付Eclipseを別サイトからDL、インストールし、初めからやり直しました。
最終的にはJRE1.5、Tomcat5.5で正常に過去に開発したWebアプリが動作しました。
いろいろアドバイスありがとうございました!
コーディングで悩むのは楽しいものですが、環境設定でつまずくのは中々辛いものですね・・・(^^;

お礼日時:2011/04/22 21:07

JREでver.5(1.5)のものがどこかにインストールされていませんか? コンパイル時に、このクラスライブラリを見に行っているために「クラスファイルのバージョン 49.0 は不正です」と出てくるのだと思います。

つまり、jdk 1.4から、jre 5(1.5)のクラスを利用しようとして「それは使えない」といわれているのでしょう。

どうしてもそのバージョンのJDK+Tomcatでないといけない理由があるのでしょうか。個人的には、おそらく過去に開発したものも基本的には最新のJDKで動くはずですので、JDKとTomcatを最新版にして改めて開発するほうがよいようにも思います。

どうしてもバージョンアップは出来ないということになると、どこでver.5のクラスライブラリが呼ばれることになっているのかわからないのですが、JRE 5.xがあればアンインストールして、最新が1.4台となるようにして確認してみるしかないかも知れません。

あるいは、今気が付きましたが、EclipsePleiadesAllinOneJava3_4_2がJREが付きで、これに入っているJREがver.5ってことはないですか? AllinOneパッケージは、その中に用意されているJREで動きますので、プラットフォームにどのJREがあろうが関係ないです。JREなしのものを使っているでしょうか? そのへんも確認してみてはいかがでしょうか。

この回答への補足

早速の回答ありがとうございます!
JREのバージョンにこだわっているわけではありません。(過去に開発した時には、ApacheやTomcatやMySQLなどのバージョンの組み合わせでうまく動作しないことがありましたが、JREは特に問題ないと考えています。)

現状、jreの導入状態は以下の通りで、
*****
Eclipse\eclipse\jre java version "1.6.0_13"
Eclipse\jre1.4 java version "1.4.2_19"
Eclipse\jre1.5 java version "1.5.0_18"
Eclipse\jre1.6 java version "1.6.0_13"

C:\MyPGM\j2sdk1.4.2 java version "1.4.2"
*****
コマンドプロンプトで確認すると java version "1.5.0_06" と出るので、どこかでパスが通ってるようなんですが、環境変数(システム、ユーザ)の%PATH%にも%CLASSPATH%にも通ってないし、1.5をアンインストールしようにも、スタートメニューやコントロールパネルのアプリの削除でも出てこないため、1.5のアンインストールもできません。(jre1.5のフォルダの中にもアンインストーラがない。。)
Eclipseごとアンインストールして、JREなしのEclipseを再インストールするしか方法はないのでしょうか?

補足日時:2011/04/20 21:07
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました!

お礼日時:2011/04/25 19:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QJSPのクラスをコンパイルできない問題

こんにちは。

JSPの「org.apache.jasper.JasperException: JSPのクラスをコンパイルできません」
のエラーメッセージに悩まされております。
掲示板をみたところ、たぶんパスの設定ではないかと検討をつけてはいるのですが解決できずの状態です。

■環境
OS:WinVistaBusiness SP2
TOMCAT:apache-tomcat-6.0.32
:C:\Program Files\Apache Software Foundation\Tomcat 6.0
JDK:jdk1.6.0_24
:D:\Program Files\Java\jdk1.6.0_24
JRE1:jre1.6.0_06
 :C:\Program Files\jre1.6.0_06
2:jre6
 :C:\Program Files\jre6
ECLIPSE:Eclipse IDE for Java Developers / Helios Service Release 2
:D:\eclipse
:ワークスペース:D:\Users\ueda\workspace\myapp\WEB-INF\src\web.xml

■ウィンドウズ環境変数
◎JAVA_HOME
D:\Program Files\Java\jdk1.6.0_24

◎CATALINA_HOME
C:\Program Files\Apache Software Foundation\Tomcat 6.0

◎CLASSPATH
.;$JAVA_HOME/lib
;$JAVA_HOME/lib/tools.jar
;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib
;C:\Program Files\Java\jre1.6.0_06\bin

◎PATH
C:\Program Files\Common Files\Microsoft Shared\Windows Live
;%SystemRoot%\system32
;%SystemRoot%
;%SystemRoot%\System32\Wbem
;C:\Program Files\Softex\OmniPass
;C:\Program Files\pcdNavi\bin
;C:\Program Files\Common Files\Roxio Shared\10.0\DLLShared\
;C:\Program Files\Common Files\Roxio Shared\DLLShared\
;C:\Program Files\Common Files\Roxio Shared\DLLShared\
;C:\Program Files\Common Files\Roxio Shared\10.0\DLLShared\
;C:\Program Files\Common Files\Ulead Systems\MPEG
;C:\Program Files\Microsoft SQL Server\90\Tools\binn\
;C:\Program Files\Common Files\HP\Digital Imaging\bin
;C:\Program Files\HP\Digital Imaging\bin\
;C:\Program Files\HP\Digital Imaging\bin\Qt\Qt 4.3.3
;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
;C:\Program Files\Fujitsu\sadata
;C:\Program Files\Windows Live\Shared
;D:\Program Files\Java\jdk1.6.0_24\bin
;C:\Program Files\QuickTime\QTSystem\
;D:\Program Files\Java\android-sdk-windows\tools
;D:\Program Files\Java\android-sdk-windows\platform-tools
;C:\Apache Software Foundation\Apache2.2\bin
;C:\php

■エラーメッセージ
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません:

JSPファイル: /Sample015.jsp の中の5行目でエラーが発生しました
Invalid character constant
2: <html>
3: <head><title>Sample015</title></head>
4: <body>
5: <% out.println('Hello!'); %>
6: </body>
7: </html>


Stacktrace:
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:326)
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)


アドバイス頂けると有り難いです。
宜しくお願い致します。

こんにちは。

JSPの「org.apache.jasper.JasperException: JSPのクラスをコンパイルできません」
のエラーメッセージに悩まされております。
掲示板をみたところ、たぶんパスの設定ではないかと検討をつけてはいるのですが解決できずの状態です。

■環境
OS:WinVistaBusiness SP2
TOMCAT:apache-tomcat-6.0.32
:C:\Program Files\Apache Software Foundation\Tomcat 6.0
JDK:jdk1.6.0_24
:D:\Program Files\Java\jdk1.6.0_24
JRE1:jre1.6.0_06
 :C:\Program Files\jre1.6.0_06
2:jre6
 :C:\Program...続きを読む

Aベストアンサー

<% out.println('Hello!'); %>

<% out.println("Hello!"); %>
では?

ダブルクオーテーションになってないからかな?

Qyyyymmddからyyyy/mm/ddへの変換

いつもお世話になっております。
Aと言う変数にはyyyymmddの値が入っていて
Aをyyyy/mm/ddにしてBの変数に入れたい場合の処理がわかりません。
調べたところ、SimpleDateFormatクラスと言うものを使えばよいと言うことが判明しました。
しかし、今まで使ったことがないのでよくわかりません。
変数Aと変数BはどちらもString型です。
ご教授お願い致します。

Aベストアンサー

 こんにちは。

 本当に変数aの中の文字列が厳密にyyyyMMddの形式のなっているのなら、普通に

String b = a.substring(0, 4) + "/" + a.substring(4, 6) + "/" + a.substring(6, 8);

 これでいいと思いますが、いったんDate型にする必要があったり、ちゃんと日付として認識できるか確かめる必要がある場合は、

String a = "20051029";

SimpleDateFormat formatter = (SimpleDateFormat)DateFormat.getDateInstance();
formatter.applyPattern("yyyyMMdd");
try {
  Date date = formatter.parse(a);
  formatter.applyPattern("yyyy/MM/dd");
  String b = formatter.format(date);
  System.out.println(b);
}
catch (ParseException ex) {
  System.out.println("解析失敗");
}

 こんな感じでいいんじゃないでしょうか。

 こんにちは。

 本当に変数aの中の文字列が厳密にyyyyMMddの形式のなっているのなら、普通に

String b = a.substring(0, 4) + "/" + a.substring(4, 6) + "/" + a.substring(6, 8);

 これでいいと思いますが、いったんDate型にする必要があったり、ちゃんと日付として認識できるか確かめる必要がある場合は、

String a = "20051029";

SimpleDateFormat formatter = (SimpleDateFormat)DateFormat.getDateInstance();
formatter.applyPattern("yyyyMMdd");
try {
  Date date = formatter.p...続きを読む

QJSPの処理の途中で、JavaScriptの処理をしたい

プログラムをJSPで記述している(<% %>タグ)のですが、
JavaScriptのalertやconfirmなどのポップアップするダイアログを
表示したいのです。それは可能なのでしょうか?

Aベストアンサー

No.2の回答に対する回答(変な日本語ですが)です。

JSPとJavaScriptの処理の行われる順番について考えていないと
エラーになることがありますよ。
大まかな流れは、
 JSPのソースをサーバ側で解釈、実行する(HTMLのソースを吐き出す)
  ↓
 クライアントに生成したソースを送信する
  ↓
 クライアント側のブラウザがソースを解釈する
  ↓
 ソースの中のJavaScriptを、ソースの上のほうから順次実行する
  ↓
 同時に、通常の表示(HTMLの解釈)も実行される

 と、こういう流れですので、例えば、JavaScriptで値を入力し、
JSPでその値を使おうとすると、エラーとなります。

 具体的にやりたいこと(やろうとしていること)を書いていただいたほうが
適切に回答できますが、上記が今考えられるエラーの原因です。

Q「httpステータス404」というエラーが出ます。

「httpステータス404」というエラーが出ます。

java初心者です、宜しくお願い致します。
EclipseでServletを書いてやりましたが、以下のようなエラーが出ます、
原因はなんでしょうか、宜しくお願い致します。
「httpステータス404-/Servlet%E7%B7%B4%E7%BF%92/ ServOutput」

Aベストアンサー

Not Found
という意味です。
そのファイルが無い。あるいはリンクが間違っています。
詳しくは参考URLをみてください。

参考URL:http://ja.wikipedia.org/wiki/HTTP_404

QEclipseでクラスファイルが生成されない

Eclipse(Helios)、java(JDK1.6)の環境で作業をしています。

指定した出力フォルダにクラスファイルが生成されません。
先日までは生成されていました。
コンパイルエラーはありません。

Javaのビルドパス ⇒ ソース ⇒ デフォルト出力フォルダの指定です
ソースフォルダごとの出力フォルダの指定を可能にするはオフにしてあります。

設定は少しくらい変えたかも知れませんが、重要なところは変えていないと思います。
# あやふやですみません。
考えられる理由を教えてください。

Aベストアンサー

Eclipseのバグとか?

プロジェクトが複数あって
同じクラスが存在していたりすると
デバッグ中に別のプロジェクト見たりもするし

それ以外のプロジェクトを閉じるなりすると
上手くいくかも?

QIOException ってどういうときに起こるのでしょうか?

IOException ってどういうときに起こるのでしょうか?

http://www.atmarkit.co.jp/fjava/rensai2/javaent12/javaent12.html
を見て勉強しています。

  catch ( IOException e) {
    System.out.println( "キーボードが故障しているのかもしれません" );
  }

と書いてあります。
ハード(キーボード)が故障しているのを Java のプログラムのレベル(ソフトウェア)で感知できるというのがよくわかりません。「

NumberFormatException の方はわかるのですが・・・

Aベストアンサー

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接続だったりするわけですけど、
InputStreamは、その入力元の情報を持っていないので、
データを読み取る際は常に
IOExceptionをキャッチするコードを書かなくてはいけません。
たとえ、絶対にIOエラーが発生しないストリームだとしても。

さらに付け加えるなら、
そもそも「標準入力=キーボード」であるとは限りません。
(一般的にはキーボードであることが多いですが。)
Javaでは、
System.setIn(InputStream)
を呼び出して、標準入力を変えてしまうことができますし、
標準入力を指定してプログラムを実行することができるOSもあります。

追伸1:
例外をキャッチしたときは、
スタックトレースをプリントすることをおすすめします。
catch (IOException e) {
e.printStackTrace();
}

追伸2:
そのプログラムでIOExceptionを発生させる最も簡単な方法は、
readLine()を呼び出す前に
標準入力(System.in)を閉じてしまうことです。
System.in.close();

現実的には、キーボードからの入力でIOExceptionが発生することは、
ほとんどあり得ないと思います。
そもそも、キーボードが故障していたとしても、
IOExceptionは投げられないでしょう。
「キーボードが故障しているのかもしれません」というのは、
その記事の著者が冗談で書いたのだと思います。

ではなぜ、try-catchを書かなくてはいけないのか?
InputStreamやBufferedReaderは、
データ入力を抽象化したものだからです。
実際の入力元はキーボードだったり、ファイルだったり、
ネットワーク接...続きを読む

QEclipseでのJDBCドライバについて

Eclipse3.1でデータベース(mysql)にアクセスするプログラムを作ったのですが下記のエラーが出ます。

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

これはJDBCドライバのセットアップがうまく出来ていないからなのでしょうか?
またEclipseでは、~.jarというファイルをプロジェクトのWEB-INFのlibフォルダに入れれば使える印象があるのですが、参考書(EclipseのではなくJAVAなどの)などにあるようにTomcatのインストールフォルダ以下common/libに入れて環境変数を変更しないといけないのでしょうか?

ご存知の方教えてください、よろしくお願いします。

Aベストアンサー

WEB-INF以下に入れると実行はできるのですが、エクリプスが.javaファイルをコンパイルすることができません。projectの一覧を右クリックしてpropertyを選択し、ダイアログ右側からJava Build Pathを選択し、タグからLibrariesを選び、Add JARsボタンをおして.jarファイルを登録して下さい。
たぶんこれでコンパイルできるはずです。

Qeclipseとtomcatで404エラー

-----------------------------------
Windows7 Ultimate

eclipse Indigo
tomcat 5.5
-----------------------------------

eclipseとtomcatを使用して、JSPを動かそうとしています。
eclipseとtomcatとJDKはC:\pleiadesの下に配置しています。そしてワークスペースは
C:\workspace\Testとして登録しています。(ちなみに動的Webプロジェクトで作成しています)

既存のJSPファイルをeclipse上で右クリックして、サーバーで実行とすると、eclipseの画面上にきちんと表示されるのですが、その後、そこで動いていたtomcatを終了させて、eclipseの上部にあるtomcatのアイコンをクリックし、その後、通常のブラウザで表示させようとすると404エラーが出てしまいます。(http://localhost:8080/Test/test.jsp)

そもそも右クリック→実行の際に起動するtomcatとeclipse上部にアイコンで存在するtomcatはどう違うのでしょうか?

そしてどうすれば、上部のtomcat起動からブラウザで直接JSPを呼び出すことが出来るのでしょうか?

申し訳ありませんが、ご教授お願い致します。

-----------------------------------
Windows7 Ultimate

eclipse Indigo
tomcat 5.5
-----------------------------------

eclipseとtomcatを使用して、JSPを動かそうとしています。
eclipseとtomcatとJDKはC:\pleiadesの下に配置しています。そしてワークスペースは
C:\workspace\Testとして登録しています。(ちなみに動的Webプロジェクトで作成しています)

既存のJSPファイルをeclipse上で右クリックして、サーバーで実行とすると、eclipseの画面上にきちんと表示されるのですが、その後、そこで動いてい...続きを読む

Aベストアンサー

EclipseからTomcatを起動した場合、プロジェクトに生成されたWebアプリケーションのディレクトリをTomcatの公開ディレクトリに強制的に変更しています。普通に起動すると、プロジェクトのディレクトリはTomcatの公開ディレクトリにはなっていませんから表示は出来ません。

通常、Eclipseで作成したWebアプリケーションは、WARファイル(Webアーカイブ)として書き出し、それをデプロイします。Eclipseの「エクスポート」メニューでWARファイルを作成し、そのファイルをTomcatの「webapp」フォルダに入れてください。これで公開できるはずです。

Qシンボルが見つかりませんというエラーが理解できません。

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Image[3];
Thread t;
int index1 = 0;
int index2 = 0;
String msg = "";
String msg1 = "";

boolean state = false;
Button b1 = new Button("ぐー");
Button b2 = new Button("ちょき");
Button b3 = new Button("ぱー");

public void init(){
for(int i = 0; i<=2; i++){
img[i] = getImage(getDocumentBase(),"hanabi" + (i+1) + ".JPG");
}
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
msg1 = "結果は・・";

}

public void paint(Graphics g){
g.drawImage(img[index1],350,30,this);
g.drawImage(img[index2],695,30,this);
g.drawString("コンピューター",420,300);
g.drawString("あなた",800,300);
g.drawString(msg,630,320);
g.drawString(msg1,550,320);
}

public void start(){
state = true;
t = new Thread(this);
t.start();

}

public void run(){
while(state){
index1++;
if(index1 == 3){
index1 = 0;
}
index2++;
if(index2 == 3){
index2 = 0;
}
repaint();
try {
Thread.sleep(60);
}catch(InterruptedException e) { }
}
}

public void actionPerformed(ActionEvent e){
if(state == false) {
start();
return;

}
state = false;
if(e.getSource() == b1) {
msg = "ぐー";
index2 = 0;
}

else if(e.getSource() == b2){
msg = "ちょき";
index2 = 1;
}

else if(e.getSource() == b3){
msg = "ぱー";
index2 = 2;
}
check();
repaint();
}

public void check() {
if(index1 == index2) msg ="あいこ";


else if (index1 == 0) {
if(index2 == 2) msg="あなたの勝ち";
else msg ="あなたの負け";
}

else if(index1 == 1) {
if(index2 == 0) msg="あなたの勝ち";
else msg="あなたの負け";
}

else if(index1 == 2) {
if(index2 == 1) msg="あなたの勝ち";
else msg="あなたの負け";
}

}
}

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Imag...続きを読む

Aベストアンサー

「シンボルを見つけられません。」というエラーの下に何か表示がありませんでしたか?そこにヒントがあると考えられます。
シンボルを見つけられませんといエラーが表示される主な理由は4つあります。
(1)クラス、メソッド、変数などの綴りミスや定義していない変数を使用している可能性がある。
(2)コンストラクタを呼び出すときに、newを忘れている可能性がある。(3)公開されていないメンバーを呼び出している可能性がある。
(4)必要なimport文を記述し忘れている可能性がある。
ここでのあなたのエラーは(1)番ではないでしょうか?上記ではimageとなっている変数がimgになっていますね。
これはエラー表示をよく見ることで意外と簡単に解決できるのです。
ゆっくり丁寧にエラー表示を見るように心がけることが大事ですよ。

QJava-jspの画面入力値保持について

画面にテキスト、ラジオボタン、リストボックス とボタンがあります。
ボタンを押すと、JAVAで処理を行い、jspのviewで表示します。

1.テキスト、ラジオボタン、リストボックスなどに値が入力、設定されている状態で
ボタンを押して処理後にテキスト、ラジオボタン、リストボックスの値が
変わらないようにしたいのですが、
その場合、たとえば、入力、設定値をセッションになどに格納しておき
jspの所で、セッションから値を設定すると言うような方法になるのでしょうか?

2.ボタン押して処理後、ラジオボタン、リストボックスの選択値も
  変えないようにしたいのですが、
  これはどのように実現するのが、適切なのでしょうか?


以上、よろしくお願いします。

Aベストアンサー

ボタンというのはフォームのサブミットボタンのことですよ?
つまり、画面遷移が起きることを前提とすると(元の同じ画面に戻るのも含みます)

テキスト、ラジオボタン、リストボックスの状態を「要求パラメータ」として
送信し、それを次画面に反映するというのが最も一般的な方法です。

フレームワーク struts のアクションフォーム&JSPカスタムタグを使うと比較的楽に
そういう画面が作れますが、多くのフレームワークでも大差ありません。
簡単な画面なら素のサーブレート+JSPでも十分作れます。

セッションでもできますが、 セッションはログイン情報などの保持など、
限定された範囲で使うのが普通です。また、結局セッションに最新の
テキスト、ラジオボタン、リストボックスの状態を送るには、「要求パラメータ」
を送信する必要があります。

AJAXを使うという方法もあります。この場合、ボタンは AJAX 処理だけを行い
画面遷移を起こさないので、サーバ側で画面のテキスト、ラジオボタン、
リストボックスの状態をもつ必要はありません。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報