jspとはなにか?

このQ&Aのポイント
  • jspとは、Java Server Pagesの略称であり、サーバ側での処理を行い、HTMLを返す仕組みです。
  • JSPは、<% %>タグ内にJavaのコードを記述することができ、その処理結果がHTMLとしてクライアントに返されます。
  • ブラウザがJSPを直接理解するわけではなく、サーバがJSPを解釈してHTMLに変換してからクライアントに送信されるため、ブラウザでも表示が可能になるのです。
回答を見る
  • ベストアンサー

jspとはなにか?

jspがよくわかりません。 サイトにはjspはサーバ側でなんらかの処理をしてhtmlを返すと書いていました。 そしてサンプルとして以下のようなコードがのっていました。 1: <html> 2: <head><title>Hello World!</title></head> 3: <body> 4: <h1>Hello World!</h1> 5: <p> 6: <% 7: String hello = "Hello World!";//ここはJSPの処理 8: out.println(hello); 9: %> 10: </p> 11: </body> 12: </html> ためしにこのソースでhtmlを作ってダブルクリックした(つまり、Tomcat等のサーバをつかわなかった)ところ、画面にhello Worldが表示されました。しかし私はこの現象がよく理解できません。 jspはサーバ側でうまいこと解釈して、そこから作成されたhtmlをクライアントに送ってくる仕組みなのなら、jspを直接ブラウザに読み込ませてもブラウザが理解できるとおもえません。 なぜこのようなことができるのでしょうか?

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

4行目の通常のHTMLで指定された Hello World! と勘違いしてはいませんか。 JSPが処理されたのなら, 4行目の分と,6~9行目の分の,2つの Hello World! が表示されます。

lain_003
質問者

お礼

あ・・・なるほど。大変恥ずかしい質問でした。 そのとおりです、お騒がせいたしました。

関連するQ&A

  • JSPでソースが表示されてしまう。

    JSPでブラウザで実行すると ソースが表示されてしまいますなぜですか? 結果///////////// 下記が表示される。 <%@ page contentType="text/html;charset=Shift_JIS" %> <% out.println("ハローワールド!"); %> ////////////////// ソース: <%@ page contentType="text/html;charset=Shift_JIS" %> <html> <head><title>Sample015</title></head> <body> <% out.println("ハローワールド!"); %> </body> </html> 文字コードをUTF-8のLFにあわせても同じでした。

    • ベストアンサー
    • Java
  • JSPのページが表示されません

    初めまして。 JSPについて質問があります。 現在OSはRedHatLinux7.2で、JDK、Tomcat、Pathの環境変数の設定を行ない、Tomcatを起動させ、Servletの動作("Hello World!"という文字列を表示するのみ)を確認した段階です。Servletの動作の際にTomcatをインストールした直下のconfディレクトリ内のserver.xmlに以下のスクリプトを追加しました。 <Context path="/test"    docBase="webapps/test" crossContext="false" debug="0" reloadable="true" > </Context> Servletに関しては上記の設定とTomcatとPCの再起動で動作を確認できたのですが、JSPの方は[Internal Error: 500 Servlet Error]が出て表示されませんでした。 ちなみにJSPファイルの位置はtestディレクトリ直下のjspディレクトリ内にあります。 ・hello.jspのスクリプト <%@page contentType="text/html;charset=euc-jp" %> <html> <head> <title>JSPTEST</title> </head> <body> <% out.println("HELLO WORLD!"); %> </body> </html> ・JSPファイルを表示するアドレス http://localhost:8080/test/jsp/hello.jsp ここで質問なのですが、JSPに関しても何か設定が必要なのでしょうか? もし何か分かることがありましたら、ご教授御願い致します。

    • ベストアンサー
    • Java
  • JSPが表示できない

    JSPが表示できない JSPとtomcatを使ってブラウザ上にHello Worldと表示させたいのですが、表示できずにエラーが出てしまいます どなたかご存知の方いらっしゃいましたらご回答願います ソース helloworld.jsp <html> <head> <title>Hello World JSP</title> </head> <body> <% String s= "Hello World"; out.println(s); %> </body> </html> 結果 HTTPステータス 500 - -------------------------------------------------------------------------------- type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/el/ELResolver org.apache.jasper.servlet.JspServlet.service(JspServlet.java:274) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 原因 java.lang.NoClassDefFoundError: javax/el/ELResolver tomcat バージョン:6.0.14 java jdk バージョン 1.5.07 環境設定 ユーザー環境変数 CATALINA_HOME c:\Program Files\Apache Software Foundation\Tomcat 6.0 JAVA_HOME c:\Program Files\Java\jdk1.5.0_07 path c:\Program Files\Java\jdk1.5.0_07\bin;c:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar システム環境変数 CLASSPATH .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\bin 動作環境 OS:windows XP です 色々サイトを見て環境設定したので、もしかしたら不必要なものまで設定してしまっているかもしれません どうぞよろしくお願いします

  • 困ってます

    自分は今TomcatでサーブレットとJSPの勉強をしています。 サーブレット(hello.class)はTomcat-conf-server.xmlに <Context path="/test"    docBase="webapps/test" crossContext="false" debug="0" reloadable="true" > </Context> を追加したことにより http://localhost:8080/test/servlet/hello で動作は確認しました("Helloworld"の表示のみ) JSP(hello.jsp)は Error: 500 Internal Servlet Error:が表示されて実行できません。 ちなみにhello.jspはtestディレクトリの直下に保存しています。 ・hello.jspのスクリプト <%@page contentType="text/html;" %> <html> <head> <title>JSPTEST</title> </head> <body> <% out.println("HELLO WORLD!"); %> </body> </html> ※ちなみにcontentType="text/html;charset=Shift_JIS"とすると  ページが見つからないというエラーになりました。 ・JSPファイルを表示するアドレス http://localhost:8080/test/hello.jsp 開発環境は RedHatLinux7.2 Java2 SDK 1.3.0 Jakarata Tomcat 3.2.4 で、 環境変数は JAVA_HOME=/usr/java/jdk1.3.0_02 TOMCAT_HOME=/usr/src/jakarta/tomcat PATH=$PATH:$JAVA_HOME/bin:$TOMCAT_HOME/lib/servlet.jar CLASSPATH=. です 何か分かる事がありましたらご教授御願い致します。

    • ベストアンサー
    • Java
  • Tomcatのアプリケーションの呼びでエラー404

    Tomcatのアプリケーションの呼びでエラー404となる ブラウザのURLに下記のコマンドを入力し、   http://localhost:8080/hello/index.html を入力すると下記のようにNGとなる。     何故NGとなるか教えてください。 ●コマンド: http://localhost:8080         メッセージ(OK): 一覧表示する。   ●コマンド: http://localhost:8080/hello/index.html ●メッセージ(NG): ype ステータスレポート メッセージ /hello/index.html ● 説明 The requested resource is not available. ●私の環境項目  Os windows 8.1    プログラム: java SE Development kit 8_ Tomcatバ-ジョン:tomcat6.0 ●Hello.xmlディレクトリ: C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\Catalina\localhost\hello.xml ●Hello.xml の内容:   Context path="\hello" docBase="c:\servlet-sample\helloworld"/> ●Indexディレクトリ:  C:\servlet-sampl\helloworld\index.html ●Index.htmの内容: <html> <head><title>HelloWorld</title></head> <body> <br> <img src="./img/p1.png"> <a href="/hello/helloworld">クリックして下さい</a> <br> </body> </html> ●hellWorldディレクトリ:   C:\servlet-sampl\helloworld\WEB-INF\classes ●HellWord.java(class)の内容: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World!</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello World!</h1>"); out.println("</body>"); out.println("</html>"); } }

  • JSPのout.printについて

    JSP初心者です。 <% out.println("<p>Hello,World!!</p>"); %> という記述についてですが、 Systemクラスを指定せずに out.printlenと記述出来るのはなぜでしょうか? 宜しくお願いします。

    • ベストアンサー
    • Java
  • JSPで、PG上のstrutsオブジェクトについて

    動作環境 OS:WindowsXP Home Edition SP3 Browser:IE8 OpenSoftWare:Tomcat6.0.29 Framework:Struts2.2.1 Tool:Eclipse3.2.0 JavaPGで、out.println関数を使用して、strutsのオブジェクト書いてもブラウザ上で出力されません。 直接strutsタグで、書くとブラウザ上に正常に表示されます。 Java側で、対応されていないのでしょうか? どなたか、ご指導願います。 ■事象例 1.「a.jsp」実行 <%@ page contentType="text/html; charset=Shift_JIS"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Test</title> </head> <body> <s:form align="center" action="Test" theme="simple"> <% String strtest = "#{'1':'1','2':'2'}"; out.println("<s:select name=\"cbotest\" list=\"#{'1':'1','2':'2'}\"/>"); %> </s:form> </body> </html> 2.「b.jsp」実行 <%@ page contentType="text/html; charset=Shift_JIS"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Test</title> </head> <body> <s:form align="center" action="Test" theme="simple"> <s:select name="cbotest" list="#{'1':'1','2':'2'}"/> </s:form> </body> </html> 3.IE8上の表示(画像添付参照) 1.「a.jsp」結果 何も出力されません。 2.「b.jsp」結果 [1[▼]] [1■■] [2   ]

    • ベストアンサー
    • Java
  • JSPについて

    WINXP PRO  TOMCAT4.1.24 j2sdk1.4.1_06 です。 以下現在の時刻を出力するJSPを実行したのですが、 表示されるページがエラーが出るわけでもなく白紙で表示されます。 「Hello」と表示するような簡単なものは実行できるのですが、原因はどんなものが考えられますでしょうか? 何台かのマシンで試してみましたが同じ結果になっていまします。 <%@ page contentType="text/html; charset=euc-jp" %> <% // 内容: 時刻を表示する例 // 現在の時刻を取得 java.util.Date nowTime = new java.util.Date(); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>時刻を出力する例</title></head> <body> <p>-- 時刻を出力する例 --</p> <p> 現在の時刻は <strong><%= nowTime %></strong> です。 </p> </body> </html>

    • ベストアンサー
    • Java
  • ServletからJSP

    はじめまして。 お世話になります。 以下のようにサーブレットから条件によってJSPファイルを 使い分けようと思っているのですが、うまく出来ません。   protected void processRequest(HttpServletRequest request, HttpServletResponse response)   throws ServletException, java.io.IOException   {     PrintWriter out = response.getWriter();     out.println("<html>");     out.println("<head>");     out.println("<title>タイトル</title>");     out.println("</head>");     out.println("<body>");     RequestDispatcher rd = null;     if(/* 条件1 */)     {       rd = request.getRequestDispatcher("hoge1.jsp");     }     else if(/* 条件2 */)     {       rd = request.getRequestDispatcher("hoge2.jsp");     }     else     {       rd = request.getRequestDispatcher("hoge3.jsp");     }     out.println("</body>");     out.println("</html>");     if(rd != null)     {       rd.include(request,response);     }   } このようにすると <html> ・ ・ サーブレットから出力した部分 ・ </html> <****> JSPで出力した部分 </****> とサーブレットの部分だけ先に出力されてしまいます。 JSPファイルの前後に出力させるにはどのようにすればよいのでしょうか。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • JSPって簡単に言うと...

    JSPって簡単に言うとCGIみたいなものですか? サーバ側で処理してWEBブラウザに渡すんですよね??

専門家に質問してみよう