- PR -

JSPでのforward

1
投稿者投稿内容
adam
会議室デビュー日: 2004/10/13
投稿数: 4
投稿日時: 2004-10-13 15:10
最近javaをはじめたものです。
ちょっと自分の力量で行き詰ってしまったので質問をさしていただきます。
windows,linux,それ以外という形でOSとブラウザを判断して各ページに飛ばすJSPファイルを作りたいのでエラーが出てしまうのです。
いろいろ試行錯誤してるのですが、うまい具合にいきません。
いかんせん、まだまだ未熟者で簡単なミスかも知れませんが
ご指導の方よろしくお願いします。
<%@ page contentType="text/html; charset=euc-jp" %>
<%
String agent = request.getHeader("user-agent");
if(agent.indexOf("Win")!=-1)
{
if(agent.indexOf("Netscape")!=-1)
{
%><jsp:forward page="http://localhost/examples/nindex.jsp"/><%
}
else if(agent.indexOf("Opera")!=-1){%>
<jsp:forward page="http://localhost/examples/oindex.jsp"/><%
}
else if(agent.indexOf("MSIE")!=-1){%>
<jsp:forward page="http://adamppo.no-ip.com/examples/iindex.jsp"/><%
}
else {
<jsp:forward page="http://adamppo.no-ip.com/examples/index.jsp"/><%
}
}
else if(agent.indexOf("X11")!=-1){%>
<jsp:forward page="http://adamppo.no-ip.com/examples/lindex.jsp"/><%
}
}
else{%>
<jsp:forward page="http://adamppo.no-ip.com/examples/index.jsp"/><%
}
}
}
%>
nori
常連さん
会議室デビュー日: 2003/12/16
投稿数: 34
お住まい・勤務地: 新幹線線路の隣
投稿日時: 2004-10-13 15:22
こんにちは。

引用:

adamさんの書き込み (2004-10-13 15:10) より:
最近javaをはじめたものです。
ちょっと自分の力量で行き詰ってしまったので質問をさしていただきます。
windows,linux,それ以外という形でOSとブラウザを判断して各ページに飛ばすJSPファイルを作りたいのでエラーが出てしまうのです。
いろいろ試行錯誤してるのですが、うまい具合にいきません。
いかんせん、まだまだ未熟者で簡単なミスかも知れませんが
ご指導の方よろしくお願いします。



指導もなにも、どんなエラーでしょうか?
エラーメッセージが出ているのであれば、それを書きましょう

OSとブラウザを判断して遷移先を変更するって、パターンを沢山考えないといけない・・・?
adam
会議室デビュー日: 2004/10/13
投稿数: 4
投稿日時: 2004-10-13 15:50
申し訳ございません。
エラーは以下の通りです。
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません

JSPファイル: /c.jsp の中の行: 15でエラーが発生しました

生成されたサーブレットのエラーです:
[javac] Compiling 1 source file

C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\examples\c_jsp.java:75: 式の開始が不正です。



JSPファイル: /c.jsp の中の行: 15でエラーが発生しました

生成されたサーブレットのエラーです:
<%
^



JSPファイル: /c.jsp の中の行: 15でエラーが発生しました

生成されたサーブレットのエラーです:
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\examples\c_jsp.java:75: ';' がありません。



JSPファイル: /c.jsp の中の行: 15でエラーが発生しました

生成されたサーブレットのエラーです:
<%
^



JSPファイル: /c.jsp の中の行: 27でエラーが発生しました

生成されたサーブレットのエラーです:
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\examples\c_jsp.java:30: 'try' への 'catch' または 'finally' がありません。
try {
^
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\examples\c_jsp.java:88: 'else' への 'if' がありません。
else{
^



JSPファイル: null の中の行: -1でエラーが発生しました

生成されたサーブレットのエラーです:
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\examples\c_jsp.java:101: 'class' または 'interface' がありません。
out.write("\r\n");
^
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\examples\c_jsp.java:102: 'class' または 'interface' がありません。
} catch (Throwable t) {
^
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\examples\c_jsp.java:112: 'class' または 'interface' がありません。
^
エラー 7 個

OSとブラウザの判別は確かに無限にありますが、その通りです
ただ今回は大まかなものだけでOKなんです。
よろしくお願いします。
nori
常連さん
会議室デビュー日: 2003/12/16
投稿数: 34
お住まい・勤務地: 新幹線線路の隣
投稿日時: 2004-10-13 16:11
引用:

adamさんの書き込み (2004-10-13 15:50) より:
JSPファイル: /c.jsp の中の行: 15でエラーが発生しました
生成されたサーブレットのエラーです:
[javac] Compiling 1 source file
C:Program FilesApache GroupTomcat 4.1workStandalonelocalhostexamplesc_jsp.java:75: 式の開始が不正です。



<% ・・・ %>が正しい対になっているか確認しましょう。
ついでに、{・・・}も確認です。

字下げすると見つけやすいです。


<% String agent = request.getHeader("user-agent");
  if(agent.indexOf("Win")!=-1)
  {
    if(agent.indexOf("Netscape")!=-1)
    {
とやれば、何処が対になってるかが分かって、エラーが減らせると
思います。

adam
会議室デビュー日: 2004/10/13
投稿数: 4
投稿日時: 2004-10-13 16:57
無事解決できました。
ありがとうございました。
aki
常連さん
会議室デビュー日: 2004/09/17
投稿数: 23
お住まい・勤務地: 東京・神奈川
投稿日時: 2004-10-13 17:04
引用:

adamさんの書き込み (2004-10-13 16:57) より:
無事解決できました。
ありがとうございました。



コード:
<%@ page contentType="text/html; charset=euc-jp" %>
<% String agent = request.getHeader("user-agent");
String fpage= "http://adamppo.no-ip.com/examples/";
/*Win*/
  if(agent.indexOf("Win")!=-1){
    if(agent.indexOf("Netscape")!=-1){
        fpage+="nindex.jsp";
  //Opera
    }else if(agent.indexOf("Opera")!=-1){
        fpage+="oindex.jsp";
  //MSIE
    }else if(agent.indexOf("MSIE")!=-1){
        fpage+="iindex.jsp";
  //OTHER
    }else {
        fpage+="index.jsp";
    }
/*X11*/
  }else if(agent.indexOf("X11")!=-1){
      fpage+="lindex.jsp";
  }else{
      fpage+="index.jsp";
  }
%>
<jsp:forward page="<%=fpage%>"/>


こんにちわ
ちなみにこう書くと見やすいかもしれないです。
1

スキルアップ/キャリアアップ(JOB@IT)