サーブレットを利用したJavaでのプログラムの作成。 Java。 HTTPプロトコルとWEBJavaサーブレットおよびWebコンテナ

ゴロフナ / 追加機能

サーブレットとは何ですか? サーブレット、サーバー、HTTPおよびFTP要求を処理するためのモジュール、ポータル(Webゲート)の呼び出し。

これらのポータルの基盤は、強力なWEBサーバーです。これは、サーバーソケットを試行し、データを送受信するプログラムです。 ほとんどの場合、速度を上げるために、サーバーはJavaではなく、私自身のプログラミングとして(たとえば、C ++で)作成されています。

サーバーへのリンクは、基盤となるサーブレットに基づいています。 データサーバー自体はデータサーバーによって管理され、同様に、データがクライアントによって管理されていることが考慮されます。 実際、基盤となるサーブレットはサーバーの「頭脳」です。 このサーブレットの主な機能は、クライアントの要求を読み取り、復号化し、復号化し、サーブレットロボットに渡すことです。これにより、要求する情報の種類が決まります。 何よりも、アクセシビリティのために、ベースサーブレットの役割はサーバー自体によって果たされます。 たとえば、JacartaTomcatはそのようなスキームの背後にあります。

小さな図は、サーバーとサーブレット間の要求(要求)と応答(応答)の送信を示しています。 qiaスキームこれら2つのサーブレット(「Sample1サーブレット」と「Sample2サーブレット」が表示されます)を処理するための、JSPページと2つのリソース「/sample1」と「/sample2」を含む可能性のあるHTTPサーバーの作業を表します。

Rozberemo pokrokovo小さなものを描いたもの:

  1. クライアントがサーバーに来る
  2. サーバーは基本サーブレット(「基本サーブレット」)にリクエストを送信します
  3. 基になるサーブレットがリソースへのURIを失効させました
    • URIで「/sample1」が指定されている場合は、 もっと(変更なしで)「Sample1サーブレット」サーブレットに渡され、リクエストによって送信および処理されます
    • URIが「/sample2」を指している場合、サーバーは「Sample2サーブレット」サーブレットにリクエストを送信します
    • それ以外の場合、リクエストは「JSPサーブレット」モジュールに渡されます
  4. 制御が転送されたサーブレットは、データを処理し、応答(応答)を作成します。その後、応答はベースサーブレットに強制的に戻されます。
  5. 基本サーブレット、データを処理せず、すぐにサーバーに送り返します
  6. サーバーはクライアントにデータを認識します

このようにして、独自のモジュール、独自の「プログラミングキー」を提供する必要があるスキンについて、論理部分で要求を処理するタスクを解決することができます。 実際、支払いの手順はより豊富になる可能性があります。 たとえば、「GET」メソッドと「POST」メソッドの場合、異なるモジュールを一致させることができます。

サーブレットインターフェース

互いに悪臭を放つこれらすべてのモジュールを組み合わせて、javax.servlet.Servletインターフェースを支援します

このインターフェースを見てみましょう。 Newには合計5つのメソッドがあります。

Public void init(ServletConfig config)throws ServletExceptionこのメソッドは、クライアント要求サービスモジュールとして含まれているものについてサーブレットに通知するために呼び出されます。 configパラメーターは、javax.servlet.ServletConfigインターフェースを拡張します。このインターフェースは、サーバー、サーブレットの名前、基本パラメーター、およびその他の機能に関する情報を伝達します。 javax.servlet.ServletConfigインターフェースについてはもう少し詳しく説明します。 関数の呼び出し後、サーブレットは設定を慎重に変更に保存し、別のメソッドの助けを借りてそれを確認します:public ServletConfig getServletConfig()の作成、サーブレットに関するその他の情報。 public String getServletInfo()呼び出し

リクエストを処理し、処理の結果を取得するには、関数

public void service(ServletRequest request、ServletResponse response)throws ServletException、java.io.IOExceptionこの関数では、データを処理するために2つのツールがコードに渡されます。1つはこれらのタイプのサーバーを取得するためのもので、もう1つはサーブレットロボットの結果。 リクエストパラメータとレスポンスパラメータは、javax.servlet.ServletRequestインターフェイスとjavax.servlet.ServletResponseインターフェイスを分離しているようです。

サーバーがモジュールを必要としなくなった後、メソッドが呼び出されます

サーブレットオブジェクトに対するすべての操作を終了するpublicvoiddestroy()。

ServletConfigインターフェース

名前がそれ自体を物語っている4つのメソッドは、javax.servlet.ServletConfigインターフェースの本質を形成します。

Public String getServletName()public ServletContext getServletContext()public String getInitParameter(String name)java.util.Enumeration getInitParameterNames()

すべての機能の認識は賢明だったと思います、クリム

Public ServletContext getServletContext()このメソッドは、サーバーを操作するための同じコアツールをオンにします。

ServletContextインターフェース

ServletContext-次のコア機能へのアクセスを提供するインターフェース:

Public Object getAttribute(String name)public java.util.Enumeration getAttributeNames()public void setAttribute(String name、Object object)public void removeAttribute(String name)属性を操作するためのChotiriメソッド。 属性の役割は、任意のクラスのオブジェクトがあるかどうかを示します。 これらの関数のメタは、異なるオブジェクトの拘束力のないサーブレット間で交差することです。 public String getInitParameter(String name)java.util.Enumeration getInitParameterNames()サーバーの起動などのパラメーターへのアクセス。 ここでは、ホストの名前、ポート、およびその他のポート番号を見つけることができます。 public int getMajorVersion()public int getMinorVersion()サーブレットAPIのバージョンを確認します。 public String getMimeType(String file)ファイルのMIMEアソシエーションタイプを返し、変更されたファイルで指定されたタイプに移動します。 SimpleWEBServerプログラムからMIMEを取得した経緯を推測し、効率を評価してください。 public java.util.Set getResourcePaths()java.net.URL getResource(String path)throws java.net.MalformedURLException public InputStream getResourceAsStream(String path)サーバーで使用可能なリソースへのパスとリソース自体をURLのように見せます。データストリームのように。 public RequestDispatcher getRequestDispatcher(path)public RequestDispatcher getNamedDispatcher(name)RequestDispatcherは、別のリソースを要求するためのツールです。 これらの関数は、これらのリソースのツールのオブジェクトを選択するために必要です。 したがって、たとえば、サーブレットの本体から「sample1」サーブレットにリクエストをリダイレクトするには、次のようにします。getServletConfig()。getServletContext()。getNamedDispatcher( "sample1")。forward(request、response);

一般に、RequestDispatcherクラスには次の2つのメソッドのみが含まれます。

public void forward(ServletRequest request、ServletResponse response)throws ServletException、java.io.IOException public void include(ServletRequest request、ServletResponse response)throws ServletException、java.io.IOException たとえば、サーブレット1には別の単語「test1」があり、次にサーブレット2のincludeを呼び出します。これには別の単語「test2」があります。 サーブレット2は単に「and」という単語を使用します。 ロボットサーブレット1の結果は、「テスト1とテスト2」の行です。 public void log(String msg)サーバーログに書き込みます。 public void log(String message、Throwable throwable)スローが削除された後にログに書き込まれる原因とフレーズを指定します。 public String getRealPath(String path)パスタイプ"/index.html"を"http://host/contextPath/index.html"に変換しますpublicString getServerInfo()サーバー名を返します。 Public ServletContext getContext(String uripath)このメソッドを使用すると、同じサーバーの異なるリソース間でServletContextを交換できます。 public String getServletContextName()オブジェクトがServletContectインターフェースに属するサーブレット名を変更します。

ServletRequestインターフェース

ServletRequestインターフェースは、HTTPリクエストからパラメーターを取得するためのツールです。 このインターフェースには、ServletContextに付けられた名前と同じメソッドが含まれている場合があります。

Public Object getAttribute(String name)public java.util.Enumeration getAttributeNames()public void setAttribute(String name、Object o)public void removeAttribute(java.lang.String name)public String getServerName()public RequestDispatcher getRequest

省略されているメソッドを使用すると、HTTPヘッダーリクエストを簡単に処理できます。

Public String getCharacterEncoding()public void setCharacterEncoding(String env)java.io.UnsupportedEncodingExceptionHTTPヘッダーフィールドでの文字エンコードの操作。 これらの関数は、主文字の%NN形式からCGI入力をデコードする方法を設定します。 たとえば、いくつかの標準はKOI8-Rであり、キリル文字を解読するにはwindows-1251またはUTF-8が必要です。 public int getContentLength()public String getContentType()HTTPリクエストから「Content-Length」、「Content-Type」フィールドを読み取ります。 public jString getParameter(String name)public java.util.Enumeration getParameterNames()public String getParameterValues(String name)public java.util.Map getParameterMap()その値からHTTPヘッダーフィールドを取得する関数。 public ServletInputStream getInputStream()はjava.io.IOExceptionをスローしますpublic java.io.BufferedReader getReader()はjava.io.IOExceptionをスローします 読書のためのリーダーzastosovuetsya テキスト情報--vinは、指定された文字セットまで同じ方法で行を自動的に復号化します。 尊敬! J2EEバージョン1.3にはバグがあります。文字%25(PostおよびGetリクエストの%文字)を復号化すると、Readerに許しが表示されます(Tomcat 4およびResignサーバーのメモのバグ)。 同様のバグが他のシンボルで使用される可能性があります。 public String getProtocol()リクエストのプロトコルのHTTPバージョンを取得します(たとえば、「HTTP / 1.1」)。 public String getScheme()スキーマ名をオンにします。 たとえば、「http」、「https」、「ftp」などです。 public int getServerPort()public String getRemoteAddr()public String getRemoteHost()public boolean isSecure()サーバーポート、クライアントIPアドレス、クライアントホスト名、およびシークレットの数(HTTPSプロトコル経由)public java.util.Locale getLo java.util .Enumeration getLocales()クライアントによって受け入れられると予想されるドキュメントのローカリゼーション(「Accept-Language」フィールドの処理結果)

ServletResponseインターフェース

ServletResponseインターフェースは、クライアントにデータを適用するための究極のツールです。 便利な方法 このツール私自身の目的を果たします:

public java.lang.String getCharacterEncoding()public void setLocale(java.util.Locale loc)public java.util.Locale getLocale()最初の方法は、情報が表示されるようにMIMEエンコーディングタイプ(UTF8など)を変換することです。 他の2つの方法もcharsetから機能します。 悪臭は、文書(たとえば、ロシア語)で書かれた言語について話します。 public ServletOutputStream getOutputStream()throwsjava.io.IOExceptionサーブレットの出力ストリームをオンにします。 Tsey potik vikoristovuetsya、例えば、見るために バイナリファイル。 テキストデータは、java.io.Writerを使用して表示できます。publicjava.io.PrintWriter getWriter()throws java.io.IOExceptionこのメソッドは、行をgetCharacterEncoding()およびgetLocale()メソッドで指定された文字セットに自動的に変換します。 public void setContentLength(int len)このメソッドは、HTTPヘッダーフィールド「Content-Length」の値を設定します。publicvoid setContentType(String type)ドキュメントにMIMEタイプを強制するメソッド。 HTTPヘッダーフィールド「Content-Type」。 public void setBufferSize(int size)public int getBufferSize()public void flushBuffer()throws java.io.IOException public void resetBuffer()現在のデータがバッファリングされているという点で正しい。 これは、これらのデータの次の部分は、バッファーがいっぱいになった後にのみクライアントに表示されることを意味します。 指定されたメソッドを使用すると、オプションで、編集バッファーサイズの設定、編集バッファーの削除、データバッファーをチェックせずにクライアントバッファーへの編集の初期化、およびデータバッファーのクリアを行うことができます。 public boolean isCommitted()このメソッドは、すでにクライアントに送信されているエンサインを取得するために使用できます。 HTTPヘッダーがすでに送信されているため、フラグは正になります。 public void reset()HTTPヘッダーはまだ制御されていませんが、このメソッドはHTTPヘッダーを「closed」の値に「リセット」します。

サーブレットタイプ

世界で最も強力なインターフェースであるJavaサーブレットAPIには、プログラムの基礎となるサーブレットクラスもいくつか含まれています。

これらすべてのクラスのベースは、抽象クラスjavax.servlet.GenericServletです。

パブリック抽象クラスGenericServletは、Servlet、ServletConfig、java.io.Serializableを実装します

割り当てられたクラスからわかるように、サーブレットおよびサーブレット構成インターフェースのすべてのメソッドを使用できます。 メソッドによって実装されていません

public abstract void service(ServletRequest req、ServletResponse res)は、ServletException、java.io.IOExceptionのいずれか抽象的である方をスローします。

このクラスに基づいて、別の抽象クラスが作成されました-javax.servlet.http.HttpServlet:

パブリック抽象クラスHttpServletはGenericServletを拡張し、java.io.Serializableを実装します

このクラスは、「プログラマーにとってより効率的」という概念と多くの異なるメソッドに到達する方法で作成されています。

protected void doDelete(HttpServletRequest req、HttpServletResponse resp)throws ServletException、java.io.IOException protected void doGet(HttpServletRequest req、HttpServletResponse resp)ServiceException、Exception、Exception java.io.IOException protected void service(HttpServletRequest req、HttpServletRequest req、HttpServletRequestreq。 、HttpServletRequest、ServletR esponse res)は、ServletException、java.io.IOExceptionをスローします。さまざまなHTTP DELETEおよびGETメソッドのさまざまなサービス(ServletRequest req、ServletResponse res)オプションをPUTおよびTRACEに送信します。 javax.servlet.httpパッケージのHttpServletパッケージに含まれているHttpServletRequestクラスとHttpServletResponseクラスの作成のヘッダーprotectedlonggetLastModified(HttpServletRequest req)このメソッドは、フィールド「Date」からの値vintakeを時間ごとに変換します。 頭に聞いてください。 フィールドが表示されていない場合は、-1を回します。

HttpServletRequestおよびHttpServletResponseインターフェースを解析することが可能です。 悪臭は、ServletRequestとServletResponseの欠点です。

ServletRequestタイプを拒否するHttpServletRequestクリームメソッドは、同様のメソッドである可能性があります。

Cookie getCookies()クライアントからサーバーに送信されたCookieのセットを返します。

同じjavax.servlet.httpパッケージに属するCookieクラスには、Cookieに関するすべての情報を含めることができます。 このクラスの最も重要なメソッド

Int getMaxAge()String getName()String getValue()どうやら、Cookieの寿命が失われた回数、そのCookieにはその値があります。 また、Cookie(文字列名、文字列値)void setValue(String newValue)void setMaxAge(int expiry)は、Cookieを設定し、その最大経過時間値を設定します。 long getDateHeader(String name)HTTPヘッダーから日付を返すので、そうです。 int getIntHeader(java.lang.String name)HTTPリクエストヘッダーからnameという名前のフィールドの数値を返しますString getMethod()HTTPリクエストメソッドを返します。 String getQueryString()String getRequestURI()StringBuffer getRequestURL()文字「?」、ドキュメントのURI、およびそのURLの後に、ドキュメントのURLで検出される文字列を返します。 HttpSession getSession()HttpSession getSession(boolean create)boolean isRequestedSessionIdFromURL()boolean isRequestedSessionIdValid()関数。 セッションのような最も重要な送信メカニズムで練習できるようにします。

苦労して稼いだデータを左右に​​引き寄せるためには、セッションが必要です。 たとえば、koristuvachはサイド(1)に移動し、サイド(2)のデータを差し引くと、サイド(3)の音声が保存されます。

原則として、(1)側では、koristuvachevのデータを送信し、次に(2)側でそれを取り外し、追加して、koristuvachevを送信できます...同様の方法で、セット全体を徐々に転送できますさらに、多くの場合、クライアントからサーバーへのデータのやり取り。 その上、あなたがそのように圧倒されないものは、トラフィックをむさぼり食います。

それ以外の場合は、うまくいくことができます-セッションのメカニズムを打ち負かしてください。 この作業のメカニズムは次のとおりです。データ、メッセージの送信、サーバーをokremuファイル(セッションファイル)に保存します。 このファイルでは、データを変更するためのすべての作業が実行されます。 クライアントには、「セッションキー」(同じセッションキー内、同じセッションID内)が表示されます。これは、このkoristuvachのデータ自体を復讐するためのファイルの一意のインジケーターです。 これで、任意のクライアントからすべてのデータを取得するために、サーバーはセッションキーを知っているだけで済みます。 これの賞は彼の勝利の頑丈さとスピードです。

AxisおよびHttpServletRequestインターフェースへのすべての主要な方法。 新しいリストメソッドについては、JavaサーブレットAPIのドキュメントを参照してください。

次に、HttpServletRequestインターフェースについて説明します。 主なvіdminnіstklаіv、yakіrazdіlyаyattseyinterfes、yоmu、schovіdіvatsyav_drazu。 同時に、HTTPからのすべてのデータのコンパイルが考慮されます。 HttpServlet.service()の作業が完了した後にのみ、それは圧倒されます。

そして、方法について:

Void addHeader(String name、String value)void addIntHeader(String name、int value)void addDateHeader(String name、long date)HTTPヘッダーにパラメーターを追加するメソッド。 restメソッドは、「Date」パラメーターを設定します。 void addCookie(Cookie cookie)ヘッダーにCookieを追加するメソッドboolean containsHeader(String name)valueパラメーターのヘッダーを知ることができます。 String encodeURL(String url)String encodeRedirectURL(String url)最初の方法は、%NNの代わりに文字をエンコードすることです。 同じ呼び出しを強制終了する別の方法は、void sendRedirect(String location)void setStatus(int sc)void sendError(int sc)void sendError(int sc、String msg)です。最初の方法はターンコードを設定することで、他の2つは許しについてのアラートを送信します。 インターフェイスでは、HTTPプロトコルのターンコードに一致するscパラメータの次のブレークを設定できます。(303)SC_NOT_MODIFIED-ステータスコード(401)SC_UN-ステータスコード(404)SC_METHOD_NOT_ALLOWED-ステータスコード(405)SC_NOT_ACCEPTABLE -ステータスコード(406)SC_PROXY_AUTHENTICATION_REQUIRED-ステータスコード(407)SC_REQUEST_TIMEOUT-ステータスコード(408)SC_CONFLICT-ステータス(409)SC_GONE-ステータスコード(410)SC_LENGTH_REQUIRED-ステータスコード(411)SC_PRECONDITION_FAILED-ステータスコード(412)SC_REQUEST_ENTコード(413)SC_REQUEST_URI_TOO_LONG-ステータスコード(414)SC_UNSUPPORTED_MEDIA_TYPE-ステータスコード(415)SC_REQUESTED_RANGE_NOT_SATISFIABLE-ステータスコード(416)SC_EXPECTATION_FAILED-ステータスコード(417)SC_INTERNAL_SERVER_ERROR-ステータスコード(500)SC_NOT ode(501)SC_BAD_GATEWAY-ステータスコード(502)SC_SERVICE_UNAVAILABLE-ステータスコード(503)SC_GATEWAY_TIMEOUT-ステータスコード(504)SC_HTTP_VERSION_NOT_SUPPORTED-ステータスコード(505)

AxisとHttpServletResponseについて話すことができるすべて

WEBアドオンでサーブレットを使用する

それでは、WEBプログラムでのサーブレットの使用について説明しましょう。 便利になる可能性のある2つの短い在庫を持ってきます。

最初の例は、HttpServletの動作メソッドと、HTML側の代わりの視覚化を一目で示しています。 アイデアによると HTML側ブラウザウィンドウではプレーンテキストで表示されるはずですが、送信されるデータを高速化するために、GZIPをエンボス加工することができます。 最新のブラウザ(第4世代以降のブラウザを受け入れます)テキスト情報を転送し、それを圧迫しないように側面を表示するこの方法をサポートします。

javaをインポートします。 io。*; javaxをインポートします。 サーブレット。*; javaxをインポートします。 サーブレット。 http。*; javaをインポートします。 util。 ジップ。*; //HttpServletフォールバックを使用したサーブレットパブリッククラスZipServletはHttpServlet(を拡張します //GETメソッドを処理する関数 public void doGet(HttpServletRequest request、HttpServletResponse response)throws ServletException、IOException( //サイドがHTMLドキュメントであることを設定します応答。 setContentType( "text / html"); //HTTPヘッダーから「Accept-Encoding」パラメータを取得します文字列encodings=request。 getHeader( "Accept Encoding"); //パラメータ「encoding」を取得します-ドキュメントのエンコーディングを設定する前に文字列encodeFlag=request。 getParameter( "encoding"); // Kudi displaytimemo PrintWriter out; //リクエストの「Accept-Encoding」フィールドと同じように if(encodings!= null)( //このフィールドには「gzip」値も含まれている必要がありますが、エンコーディングはまだ設定されていません。 if((encodings。indexOf( "gzip")!=-1)&&!encodeFlag。equals( "none")))( //入力する場所は、1つになり、ヘルプのテキストを取得しますGZIP out = new PrintWriter(new GZIPOutputStream(response。getOutputStream())、false); //そしてドキュメントが押しつぶされるブラウザのフラグを設定します応答。 setHeader( "Content-Encoding"、 "gzip"); )elseout=応答。 getWriter(); ) そうしないと //そうでなければ、私たちは圧迫なしで生きることができます out=応答。 getWriter(); アウト。 println( "これはテストです!!!"); //ドキュメントの本文を書きますアウト。 選ぶ(); //そのzakryvaemovysnovok。 //すべて、作業が完了すると、ドキュメントが送信されます } }

別の例は、サーブレットを中断することなく使用して、側面を確認する方法を示しています。 このタイプの側面のビューは、たとえばチャットで再生できます。新しいメモを読むために、側面を更新する必要はありません。新しいメモは1時間ダウンロードされるだけです。 このようなプロキシサーバーは、この種の再適用データをサポートしていないことを誓う必要があります。alezcym-申し訳ありませんが-何もできません。

javaをインポートします。 io。*; javaxをインポートします。 サーブレット。*; //プログラムはサーブレットインターフェースを実装しますクラスDoloadServletはサーブレットを実装します(ServletConfig config; //ServletConfigオブジェクトpublicDoloadServlet()() // 何もしない //初期化時に設定を保存します public void init(ServletConfig config)はServletException(this.config = config;)をスローします //貯蓄設定を参照 public ServletConfig getServletConfig()(return config;) //サーブレットに関する情報 public String getServletInfo()(return "DoloadServlet";)public void destroy()() // 何もしない //リクエストリクエスト public void service(ServletRequest request、ServletResponse response)は、ServletException、javaをスローします。 io。 IOException( //すぐに助けを求めません // HTTPヘッダーを作成します: String head = "HTTP / 1.0 200 OK \ n" + + "サーバー:DoloadServlet \ n" + "Content-Type:text / html; charset = UTF-8 \ n"+「接続:生き続ける\n」+ "コンテンツエンコーディング:マルチパート/混合\ n"+ "転送エンコーディング:チャンク" + "プラグマ:キャッシュなし\ n \ n"; //投稿データを追加します //このお尻の場合-20タグ"
転送された行から
for(int i = 0; i< 20 ; i++ ) head = head + "
\ n "; //赤ちゃんを連れて行く ServletOutputStreamos=response。 getOutputStream(); //そこにヘッダーと投稿データを書き込みます os。 print(head); //クライアントの前にバッファに書き込まれるすべてのものを圧倒します応答。 flushBuffer(); //新しい行の追加を開始します: // qi行は次のようになります:行番号、次に "
\ n "
//革の新しい行が3秒ごとに表示されます int i = 0; while(true)( //lichnikの増分 i ++; //行osを書き込みます。 print( "" + i + "
\ n "); //バッファ応答をフラッシュします。flushBuffer(); //potikを3秒間フリーズします try(sleep(3000);)catch(Exception e)()))

サーブレットメカニズムはより柔軟であり、外部WEBサーバーの書き込みを使用できるため(たとえば、履歴書サーブレットの場合など)、そのようなスピーチを作成できるとは言えません。 ロボットサーブレットの欠点は、最初の起動の速度が遅いこと(サーブレットはJITマシンによって単純にコンパイルされる)、メモリの損失が大きいこと、Javaのすべてのプログラムの障害、つまり行を処理する速度が遅いことです。 残りの環境は、テキストデータを受け入れるロボットサーブレットによって廃止されます。 POSTリクエストおー。 HttpServletRequest.getReader()の助けを借りて解析すると、サーバーロボットが2、3のhvilinで麻痺する可能性があるため、50kbのサイズのHttpServletからPOSTが要求されます。 同じことが他のJavaプログラムにも当てはまります。

2つの小さな例を示します。

//指定された行の文字列テキスト //バット1//文字列の追加の「+」操作のためにロボットを連続して検索します文字列test1=""; for(int i = 0; i< text. length(); i++ ) test1 += text. charAt(i); //バット2//追加のバッファのためにロボットを連続して見つけます char buf = newchar[text。 長さ()]; for(int i = 0; i< text. length(); i++ ) buf[ i] = text. charAt(i); String sample2 = new String(buf);

2〜3 kbまでの小さな行を取得する場合、ロボットアプリケーションのデータは重要ではありません。サイズが10 kbのテキスト行を取得する場合、最初のステップでプログラムはその行を大幅に処理します。もっと。 これはJavaの特性であり、Stringクラスの関数の実装の問題です。 したがって、スウェーデンのサーブレットを作成する場合は、一意である必要があります 長い行たとえば、Stringクラスを支援するには、StringBufferクラスにタグを付けます。 この進歩は、余白からすばらしいテキストを削除し、ローカルファイルを処理するまで(たとえば、多数の参照があるゲストブックのテキストデータベースの場合)、私たちの前で実行する必要があります。

もう1つの問題は、WEBシステムのマルチタスクです。 サーブレットが1時間ごとのkoristuvachivのスプラットを要求できることを忘れないでください。 多くの場合、データ同期の問題、同じサーブレットの異なるカウントスレッド間のデータ交換が非難され、最も一般的な問題は、システムのファイルやその他のネーミングリソースへの同期アクセスの問題です。 たとえば、あるプログラムが読み取り用にファイルを開いた場合、そこに書き込もうとすることがあります。 その結果、他のプログラムは非難を取り除くか、ファイルが記録のために呼び出されている間にチェックします。 zimとのリンクで、私はあなたの尊敬を返したいと思います。あなたの後ろに悲鳴を上げていない小川を氾濫させたり、小川を閉じたりしないでください。 Potikは、明らかに後で自動的に閉じますが、「smіttyar」が新しいものに到達し、同時に他のプログラムが記録用のファイルにアクセスできない場合にのみ発生します。

マルチタスクに加えて、ServletContextインターフェースへの追加のメソッド「ObjectgetAttribute(String name)」および「voidsetAttribute(String name、Object object)」については、サーブレットとデータの間で交換できることに注意してください。同期されます。

サーブレット(サーブレット)-Webプログラムのサーバー側にあるJavaプログラム、yakіvykonuyutsya。 アプレットがWebブラウザの機能を動的に拡張するのと同様に、サーブレットはWebサーバーの機能を動的に拡張します。 サーブレットが呼び出しを処理できる場合、Webサーバーを拡張するために悪臭が呼び出されます。 このようなプログラムの場合、JavaサーブレットテクノロジはHTTP固有のサーブレットクラスを定義します。 javax.servletおよびjavax.servlet.httpパッケージは、サーブレットを作成するためのインターフェースとクラスを提供します。

  • Webプロジェクトの構造は何ですか?

  • サーブレットコンテナとは何ですか? サーブレットのライフサイクル。

サーブレットコンテナは、サーブレットのライフサイクルを管理するプログラムです。
サーブレットのライフサイクル:サーブレットコンテナによって制御されます。サーブレットに初めてアクセスすると、謎に引っ掛かり、init()メソッドが呼び出されます。 ちなみに、ロボットプログラムはservice()メソッド呼び出しを呼び出して、クライアントの要求を処理します。 プログラムが終了すると、destroy()メソッドが呼び出され、サーブレットがメモリから取り出されます。

  • サーブレットコンテナの定義、機能は何ですか?

サーブレットコンテナは、完全なスタンドアロンWebサーバーとして使用したり、Apacheなどの別のWebサーバーのサードパーティホストとして使用したり、JavaEEアドオンサーバーに統合したりできます。 サーブレットとクライアント間のデータの安全な交換。機能するサーブレットのソフトウェア環境の作成、クライアントの識別と承認、クライアントのスキンのセッションの編成などの機能を引き受けます。

  • sendRedirect()とforward()の違いは何ですか?

JSP wikiの場合、forward()メソッドは最もコストのかかる方法であり、JSP呼び出しの場合、sendRedirect()メソッドは絶対的な方法です。 Vіdminnіsttsikhmethodіvvіdschozメソッドforward()は、すでにメインオブジェクトリクエストリクエストを渡されており、sendRedirect()メソッドの呼び出しは新しいリクエストを形成します。 残りの期間の情報は、他のオブジェクトと一緒に送信する必要があります。 それまでは、forward()メソッドの方が賢明です。

  • フィルタサーブレットについて何を知っていますか?

Filterインターフェースの実装により、要求を変更するために使用できるオブジェクトを作成できます。クライアントの要求の代わりに、ヘッダーを変換できます。 フィルタはリクエストを作成しません。作成しない場合は変更されます。変更することは少なくなります。 フィルタはリクエストの前に渡され、最初のフィルタがサーブレットで使用され、サーブレットから出力される入力がさらに(必要に応じて)処理されます。 フィルタはと交換することができます 他の種類リソース、zocremaとサーブレット、およびJSP側。 サーブレットフィルタは次のことができます。

  • サーブレットの開始をオーバーライドすると、最初のサーブレットが初期化されます。
  • リクエストに変更を割り当てると、最初の下位サーブレットが開始されます。
  • リクエストのヘッダーとデータを、リクエストがパックされる方法で、何を見つけるかを変更します。
  • フォームの見出しとデータを変更します。この場合、タイプはパックされ、受け入れられます。
  • サーブレットへの移行後、サーブレットの開始を元に戻します。

サーブレットフィルタは、単一のサーブレットまたはサーブレットのグループで作業できるようにカスタマイズできます。 フィルタを形成するための基礎は、javax.servlet.Filterインターフェースであり、次の3つのメソッドを実装します。

  • void init(FilterConfig config)はServletExceptionをスローします。
  • void destroy();
  • void doFilter(ServletRequestリクエスト、ServletResponseレスポンス、FilterChainチェーン)はIOException、ServletExceptionをスローします。

init()メソッドが呼び出され、最初の下位フィルターが修復され、新しい構成フィルターオブジェクトが更新されます。 doFilterメソッドは、フィルターの作業を直接オーバーライドします。 このように、サーバーはinit()を1回呼び出してロボットでフィルターを実行し、次にdoFilter()を何度も呼び出します。 このフィルター。 フィルタがその作業を終了した後、destroy()メソッドが呼び出されます。

  • サーブレットでの補聴器の必要性は何ですか?

そのセッションのコンテキストを聞いて-ceクラス、セッションのコンテキストが初期化された場合、または1時間だった場合、悪臭が馬鹿にされた可能性がある場合、属性が追加されてから見られた場合、yakіはそれに従うことができますセッションのコンテキスト。 サーブレット2.4は、リスナークエリモデルを拡張して、クエリの作成方法と抑制方法、およびサーブレットへの属性の追加方法と削除方法を指定できるようにします。 サーブレット2.4は次のクラスを追加します。

  • ServletRequestListener
  • ServletRequestEvent
  • ServletRequestAttributeListener
  • ServletRequestAttributeEvent

  • 責任を負い、補遺から別のサーブレットで勝つ方法は?

ブラウザがHTML以外のことしか知らない場合、サーブレットコンテナのwikiプログラムがブレイズしてHTML応答を作成します。 これは、kshtalt 404、403などのパードンコードで使用されるものと似ています。 サーブレットAPIは、引用と恩赦を処理するためのヒントをマスターサーブレットに提供します。これは、スラーリングの記述子に配置できます。 このようなサーブレットの主なタスクは、恩赦または非難を取得し、HTMLの理解をcoristuvachevに送信することです。 たとえば、あなたは力を与えることができます ヘッドサイド、および恩赦に関するいくつかの詳細の説明。

  • 喉頭の記述子は何ですか?

ゴルーチン記述子は、サーブレットコンテナによってgorouteされるアーティファクトの構成ファイルです。 仕様で Javaプラットフォーム、Enterprise Edition記述子は、コンポーネント、モジュール、またはプログラム(Webアドオンやエンタープライズプログラムなど)を開くことができるかどうかを記述します。

この構成ファイルは、モジュールまたはプログラムのレイアウトのパラメーターを基本設定で指定します。これは、構成の特定のオプションを説明するセキュリティパラメーターです。 ファイル記述子の構文については、言語はXMLで記述されています。

  • プログラムを起動してサーブレットの起動を実装するにはどうすればよいですか?

サーブレットコンテナは、クライアントの最初の要求でサーブレットを起動する必要があります。そうしないと、プログラムの開始時にサーブレットを起動する必要があります(たとえば、バルクサーブレットとして、長時間起動されます)。 記述子(またはloadOnStartupアノテーション)でload-on-startup要素を選択する必要があります。これには、起動時にサーブレットが関与している必要があります。

値はintにすることができます。 値が負の場合、クライアントが要求されたときにサーブレットが占有され、0以上の場合、プログラムの開始時にサーブレットが占有されます。 数値が小さいほど、Cherzがサーブレットを手元に置くのが早くなります。

  • ServletConfigオブジェクトとは何ですか?

javax.servlet.ServletConfigインターフェースは、構成情報をサーブレットに渡すように設計されています。 サーブレットスキンは、ServletConfigオブジェクトをホストして、ある種のサーブレットコンテナのインスタンスを作成できます。 構成でパラメーターを設定するには、web.xml(またはWebInitParamアノテーション)のinitパラメーターを選択します。 そのサーブレットのServletConfigオブジェクトを取得するために、getServletConfig()メソッドが取得されます。

  • ServletContextオブジェクトとは何ですか?

javax.servlet.ServletContextインターフェースは、サーブレットトリックのように、サーブレットコンテナと通信するためのいくつかのメソッドを定義します。たとえば、ファイルのMIMEタイプを取得したり、要求をディスパッチしたり、ログファイルに書き込んだりします。 ServletContextオブジェクトは一意であり、プログラムのすべてのWebサーバーからアクセスできます。 Webプログラムのパラメータを初期化するために1つ以上のサーブレットへのアクセスを許可する必要がある場合は、ServletContextオブジェクトを獲得できます。 どの勝利要素のために web.xmlで。 ServletContextオブジェクトは、ServletConfigインターフェイスのgetServletContext()ヘルパーメソッドで検索できます。

サーブレットコンテナは、サーブレットのグループに固有のコンテキストオブジェクトを提供できます。 グループのスキンは、独自のホストURLパスのセットに関連付けられます。

サーブレット3仕様に対するServletContext拡張機能を使用して、プログラムにヒアリングとフィルタリングを追加させます。 また、このインターフェイスには、getMimeType()、getResourceAsStream()などの匿名メソッドがあります。

  • ServletContextとServletConfigが重要なのはなぜですか?

以下は権威の証書です:

  • ServletConfigはスキンサーブレットに固有ですが、ServletContextはすべてのプログラムに固有です。
  • サーブレットの初期化で指定されたパラメータに対してServletConfigが選択され、すべてのサーブレットのプログラムの初期化で指定されたパラメータに対してServletContextが選択されます。
  • ServletConfigオブジェクトに属性を設定する機能はありませんが、他のサーブレットで使用できるようにServletContextオブジェクトに属性を設定することはできます。

  • ServletResponseインターフェース。

ServletResponseインターフェースは、クライアントにデータを適用するための究極のツールです。 このツールの方法を使用して、同じ方法を使用します。

  • ServletRequestインターフェース。

ServletRequestインターフェースは、HTTPリクエストからパラメーターを取得するためのツールです。 このインターフェースには、ServletContextに付けられた名前と同じメソッドが含まれている場合があります。

  • リクエストディスパッチャとは何ですか?

RequestDispatcherインターフェースは、リクエストを別のリソース(HTML、JSP、または同じ補遺を持つ別のサーブレット)に渡すように設計されています。 トップに別のリソースを追加するというチャレンジに勝つことができます。 このインターフェースは、同じコンテキスト内のサーブレット間の内部通信用に設計されています。 インターフェイスには2つのメソッドが実装されています。

  • void forward(ServletRequest var1、ServletResponse var2)-サーブレットからサーバー上の別のリソース(サーブレット、JSP、またはHTMLファイル)にリクエストを転送します。
  • void include(ServletRequest var1、ServletResponse var2)-リソースのコンテンツ(サーブレット、JSP、またはHTML側)をビューに含めます。

インターフェイスへのアクセスは、ServletContext getRequestDispatcher(String s)を使用して実行できます。 パスは/で始まることで有罪となります。これは、現在のルートパスがコンテキストで解釈されるように解釈されます。

  • サーブレットにデッドロックを作成するにはどうすればよいですか?

デッドロックは、call-clickメソッドにループを実装することで取り除くことができます。たとえば、doGet()メソッドからdoPost()メソッドを呼び出し、doPost()メソッドからdoGet()メソッドを呼び出します。

  • サーバー上のサーブレットのアドレスを取得するにはどうすればよいですか?

サーバー上の実際のサーバーパスを取得するには、次の構造をひねります:getServletContext()。getRealPath(request.getServletPath())。

  • サーブレットからサーバーに関する情報を抽出するにはどうすればよいですか?

サーバーに関する情報は、getServerInfo()ヘルパーメソッドのServletContextヘルパーから取得できます。 トブト。 getServletContext()。getServerInfo()。

  • サーバーでクライアントのIPアドレスを取得するにはどうすればよいですか?

request.getRemoteAddr()を微調整して、サーブレット内のクライアントのIPを取得します。

  • サーブレットのラッパークラスについて何を知っていますか?

サーブレットHTTPAPIは、HttpServletRequestWrapperとHttpServletResponseWrapperの2つのラッパーを持つことを望んでいます。 これらは、小売業者がサーブレットの要求および応答タイプの独自の販売を販売するのに役立ちます。 クラスを拡張し、水と飲用のオブジェクトのパワータイプを実装するための不要なメソッドを再定義できます。 これらのクラスは、標準のサーブレットプログラミングに勝るものはありません。

サーブレット-Webプログラムのサーバー側に表示されるJavaプログラム全体。 アプレットがWebブラウザの機能を動的に拡張するのと同様に、サーブレットはWebサーバーの機能を動的に拡張します。

ロボット サーブレット「または、アプローチとして説明することもできます。特別な構成ファイルを使用して、クライアントであるWebサーバーを要求する必要がある場合は、選択する必要のあるサーブレットを決定できます。-server(おそらくHTMLの観点から)側)

WEBサーバーは本質的に曲のコンテナであり、興味深いものです サーブレット「そして、vykonuєїх、іは、結果を考慮に入れて、クライアントを圧倒しました。

Webアプリケーションアーキテクチャのサーブレット

あなたのタイトさとgnuchkistを通して、 サーブレットシステムのアーキテクチャで重要な役割を果たすことができます。 産業レベルで認められているアプリケーションプロセスを改善し、クライアントのプロキシサーバーとして機能し、中間レベルの機能を改善して、新しいプロトコルやその他の機能を追加することができます。 中間のrivenvikonuサーバーはdodatkіvと呼ばれる3リバーシステムのクライアントサーバーを機能させ、Webブラウザなどの「軽量」クライアント間でdzherelomdanichを交換します。

プロキシサーバーとしてのサーブレット

アプレットをサポートするために、サーブレットはプロキシサーバーの機能をオーバーライドできます。 同様に重要かもしれませんが、Javaセキュリティシステムはアプレットがサーバーに接続することのみを許可しているため、悪臭を放ちます。 このアプレットは、別のマシンに展開されているデータベースサーバーにサインアップする必要があります。 サーブレットアプレットを作成できます。

ティムチャソボと速い サーブレット"と

サーブレットは、スキンクライアント要求に対して開始および実行できます。 また、悪臭はWebサーバーの開始時から最後の歯まで開始できます。 ティムチャソボ サーブレット「そして彼らは、勝利することはめったにない機能のためにサーバーリソースを節約するための良い方法を助け、促進しようとしています。悪臭はクライアントyaknaishvidsheの要求を認めることで罪を犯します。 サーブレットしかし、ティムチャソフについては速い。 これは、Webサーバーをセットアップする機能です。

サーブレットのライフサイクル、javax.servlet.Servlet

サーブレットは、そのプロセスの一部としてWebサーバーのプラットフォーム上に構築されているだけでなく、Webサーバー自体にも構築されています。 Webサーバーは、サーブレットスキンインスタンスの初期化、リコール、および非推奨について応答します。 Webサーバーは、単純なインターフェースを介してサーブレットと対話します。 javax.servlet.Servlet.

javax.servlet.Servletインターフェースには、次の3つの主要なメソッドが含まれています。

  • 初期化()
  • サービス()
  • 破壊する()

および2つの追加の方法:

  • getServletConfig()
  • getServletInfo()

インターフェイス間の類似性 サーブレット「そして、Javaアプレットは明らかです。それが設計された方法です!Javaサーブレットは、Webブラウザ用のアプレットのようにWebサーバー用であり、Webサーバー上で実行されます。

サーブレットの初期化、init()メソッド

サーブレットが最初にヒットすると、init()メソッドが呼び出されます。 これにより、Viconateサーブレットをロボットにして、たとえばファイルを開いたり、サーバーへの接続をインストールしたりできます。 サーバーはサーバーにインストールされているため、サーバーの起動時に自動的にインストールされます。 それ以外の場合、サーバーは、クライアントとサーブレットによって提供されるサービスに対して最初の要求が行われたときにサーブレットをアクティブ化します。

メソッドが保証されています 初期化()サーブレットへの他のステップの前に終了します-たとえば、メソッドのクイック呼び出しなど サービス()。 尊敬を返すために、scho 初期化()複数の呼び出しがあります。 サーブレットが取得されるまでwinは呼び出されず、サーバーはクエリを取得します。

方法 初期化() 1つの引数を受け入れます-オブジェクトに送信します ServletConfigサーブレットを初期化するために引数を渡すもの。 Tseyオブジェクトmaєメソッド getServletContext()、オブジェクトを回転させます ServletContext、サーブレットのシャープ化に関する情報を取得します。

サーブレットコア、service()メソッド

方法 サービス()サーブレットの心臓部。 最大1つのウィケットメソッドを生成するようにクライアントタイプを要求します サービス()。 このreadメソッドは、2つの引数ServletRequestとServletResponseの助けを求めてアラートを形成します。

このように、クライアントのIDをサーブレットに渡すには2つの方法があります。 1つ目は、電源のパラメータの値の強さによるものです。 パラメータ値はURLに挿入できます。 クライアントの入力をサーブレットに渡す別の方法は、InputStream(またはリーダー)を使用することです。

ロボット方式 サービス()日常はシンプルです-私はクライアントのリクエストを作成し、サーバーからあなたに転送します。 ただし、同時に完成する少量のパラレルドリンクを使用できることを覚えておく必要があります。 どのような方法 サービス()ファイル、データのデータベースなどのリソースへのアクセスがストリームで保護されていることを確認する必要があります。

サーブレットの利点、destroy()メソッド

方法 破壊する()すべてのリソースの呼び出しを要求します(たとえば、 ファイルを開くそのデータベースエントリ)サーブレットの利点の前に。 最終的な操作を完了する必要がないため、このメソッドは空にすることができます。 wikiメソッドの前 破壊する()サーバーは、すべてのサービス操作の完了または曲の時間の終わりのいずれかをチェックします。 Tseは、メソッドが 破壊する()多分butivyklikaniyapіdhourvykonannyabe-どんな些細な方法でも サービス().

方法に注意してください 破壊する()すべてのウィキが必要なリソースを閉じるような方法で サービス()終わらない。

サーブレット設定、getServletConfig()メソッド

方法 getServletConfig()インターフェイスを実装するオブジェクトにリクエストを送信します ServletConfig。 このオブジェクトには、サーブレットの構成に関する情報へのアクセス権が与えられます。 サーブレット初期化パラメータとサーブレットコンテキストオブジェクトへのアクセス ServletContext、正常なサーブレットへのアクセスを提供します。

サーブレット情報、getServletInfo()メソッド

方法 getServletInfo()これは、サーブレットを作成するプログラマーによって決定されます。行のローテーションでは、サーブレットに関する情報を取得する方法が決まります。たとえば、サーブレットの作成者とバージョンです。

ServletRequestインターフェース

ServletRequestは、クライアントのHTTPパラメータ情報をサーブレットに渡します。 パラメータの名前、値、属性、入力フローなどのデータを保護します。 メソッドに渡される情報 サービス().

攻撃 サーブレットのお尻パラメータから情報を取得する方法を示します リクエスト方法 サービス():

BufferedReaderリーダー; 文字列param1; 文字列param2; public void service(ServletRequest request、ServletResponse response)(reader = request.getReader(); param1 = request.getParameter( "First"); param2 = request.getParameter( "Second");)

リクエストに関する追加情報は、次の表の主なメソッドであるメソッドを介してサーブレットで利用できます。

getAttribute() 指定された属性の値をリクエストにローテーションします。
getContentLength() 見られるように、Rozmirzapitu。
getContentType() タイプをMIMEに変更します。
getInputStream() InputStreamをローテーションして、本文からリクエストにdoubleデータを読み取ります。
GetParameterNames() すべてのパラメーターの名前で行の配列を回転します。
getParameterValues() 割り当てられたパラメータの配列値をローテーションします。
getProtocol() プロトコルをそのバージョンに変換して正しく取得する /..
getReader() BufferedReaderを回転させて、要求に応じてテキストを編集します。
getRealPath() 指定された仮想パスの実際のパスを回します。
getRemoteAddr() クライアントから要求されたクライアントのIPアドレス。
getRemoteHost() このリクエストをnad_slavするクライアントのマシンのІm'yaホスト。
getScheme() このリクエストのURLに含まれているスキームをローテーションします(たとえば、https、http、ftpなど)。
getServerName() リクエストを受け入れたサーバーのホストの名前。
getServerPort() 番号を港に向けてください。これは、この要求の撤回に勝利します。

ServletResponseインターフェース

インターフェース ServletResponse-クライアントに与えられたnadsilannyaのためのTseの楽器。 このツールのすべてのメソッドは、このタスクを完了するために単独で機能します。

public java.lang.String getCharacterEncoding()public void setLocale(java.util.Locale loc)java.util.Locale getLocale()

最初の方法は、MIMEエンコーディングタイプ(たとえば、UTF8)を変更して、情報を表示できるようにすることです。 他の2つの方法もcharsetから機能します。 悪臭は、文書(たとえば、ロシア語)で書かれた言語について話します。

Public ServletOutputStream getOutputStream()はjava.io.IOExceptionをスローします

getOutputStreamメソッドは、サーブレットの出力ストリームを変換します。 Tseypotіkvykoristovuєtsya、たとえば、vyvedennyaバイナリファイル。 テキストデータは、java.io.Writerを使用して取得できます。

パブリックjava.io.PrintWritergetWriter()はjava.io.IOExceptionをスローします

getWriter()メソッドは、行をgetCharacterEncoding()メソッドとgetLocale()メソッドで指定された文字セットに自動的に変換します。

public void setContentLength(int len)

setContentLengthメソッドは、HTTPヘッダーフィールド「Content-Length」の値を設定します

public void setContentType(String type)

setContentTypeメソッドは、ドキュメントの代わりにMIMEタイプを強制するように調整されています。 HTTPヘッダーフィールド「Content-Type」。

データを見るフローはバッファリングされます。 これは、バッファがいっぱいになった後、データの一部がクライアントに表示されることを意味します。

public void setBufferSize(int size)public int getBufferSize()public void flushBuffer()throws java.io.IOException public void resetBuffer()

4つのメソッドにカーソルを合わせると、明らかに、編集バッファーサイズのインストール、編集バッファーの削除、クライアントへのバッファー編集の初期化、データバッファーのチェックなし、およびデータバッファーのクリアが可能になります。

パブリックブールisCommitted()

isCommittedメソッドを使用すると、クライアントにすでに送信されているエンサインを削除できます。 HTTPヘッダーがすでに送信されているため、フラグは正になります。

public void reset()

HTTPヘッダーがまだ追加されていない場合、resetメソッドはHTTPヘッダーを「locked」の値に「リセット」します。

サーブレットのJFreeChartチャート

JFreeChartグラフィックライブラリをサーブレットで使用して、グラフを作成し、画像を表示するためにサイトの側面に表示することができます。 サーブレットビュー用のJFreeChartアプリケーションの説明の詳細。

Chart.jsグラフィックライブラリのサーブレット

サーブレットのJNI

多くのオプションについては、JNIバージョンのWEB補遺が必要になる場合があります。 サーブレットビューにJNIを使​​用する例。

JMSサーブレット通知

サーブレットは交換用の見積もりを持つことができます JMS povіdomlennyamіzhプログラム。 JMSコンテナ化されたJBossビューに電力を供給して読み取るためのサーブレット職業ツール。

Javaの最も重要な機能の1つは、豊かな性質です。 明らかに、従来のデスクトップとnavitの作成 モバイルサプリメント- 素晴らしいです。 また、殴られた道を離れて、Java Webアドオンを開発する領域に入りたいですか? 良いニュースがあります。私の考えのパッケージには、特別なターボなしでカスタムWebプログラムを作成できる高度なサーブレットAPIが含まれています。

サーブレットを利用したJavaプログラムの作成

父よ、私たちはすでにしました 構成ファイルプログラム。 しかし、文字通り、生産ラインで壊れるものは何もありません。 クライアントが追加のHTMLフォームに登録できるようにする場合、次に行う必要があるのは、登録が正常に完了した後、そのクライアントデータの推測されたフォームを視覚化するかのようにJSPファイルを作成することです。 すぐにTsimmiと忙しくなりましょう。

zovnіshnіmvglyad上のPratsiyuemo

奇妙な外観のプログラムは、2つのJSPファイルによって指定されます。MVCのコンテキストでは、これらはマニフェストと呼ばれます。 登録フォームの提出に関する最初の通知 可能な許し、データの導入の再検証後のviklikanі。 もう1つは登録のプライマリ側であり、登録プロセスが正常に完了した後、クライアントによって入力されたデータが表示されます。

Axisの最初のJSPファイル:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 登録

登録

$(違反)。

©2022androidas.ru-Androidのすべて