jspページとサーブレットを使用してプロジェクトを行っています。jspページからサーブレットを呼び出す方法
私のサーブレットでは、要求を行っているJSPページを特定する必要があります。
どうすればいいですか?
jspページとサーブレットを使用してプロジェクトを行っています。jspページからサーブレットを呼び出す方法
私のサーブレットでは、要求を行っているJSPページを特定する必要があります。
どうすればいいですか?
私は解決策を見つけました。
送信ボタンに名前を設定しました。
<input type="submit" name="button" value="button1">
、その後、サーブレットで、私は、私は、要求が
からの要求は考えから来ているからフォームを識別するための最も簡単な方法を来たから知っていることを行う
String r = request.getParameter("button");
に確認してくださいフォーム識別子を含む隠しフィールドを追加すること。しかし、これは非常に珍しい要件です。同じURLに投稿すると、通常は投稿の発信元が問題ではないということです。問題がある場合(その理由は?)、差異は投稿データ(したがって非表示フィールドの提案)にあるか、別のURLに投稿する必要があります。サーブレットは非常に高価ではありませんので、その数を制限する必要があります。
あなたのサーブレットでは、doGet/doPostを使用してリクエストを処理し、応答を返すと仮定します.jspからのリクエストでは、非表示の入力フィールドを追加して、 :あなたのJSPで
:サーブレットで
<input type="hidden" name="jspname" value="jspname" />
:
利用のgetParameter mの
新しい隠し入力テキストフィールドを追加しますdoGetメソッドのためのdoPostメソッドまたはgetQueryString()のためのethod:doPostメソッドで
:
String jspname = request.getParameter("jspname");
jspname文字列を利用することにより、あなたは簡単にそれを使用しているJSPを見つけることができます。
hidden input
を使用すると、他の回答が解決されます。しかし、あなたはhidden input
なしでそれを行うことができます。
String referer = new URI(request.getHeader("referer")).getPath();
referer
文字列URI
あなたがいっぱいいます。さらに、jsp
ページ名を取得する場合は、java code
を使用できます。あなたはjsp
ページ名を取得することができますregex
でも
String[] uriNames = referer.split("/");
String jspPageName = uriNames[uriNames.length-1];
。
Pattern pattern = Pattern.compile("(\\w+)(\\.)(jsp)");
Matcher matcher = pattern.matcher(mydata);
String jspPageName = "";
while(matcher.find()) {
jspPageName = matcher.group();
}
どのような要望ですか?ブラウザからの外部リクエストまたは内部インクルード/ディスパッチ? – Thilo
jspページでは、Webページで投稿を行っているフォームがあります@Thilo – untruste
リクエストでreferer属性を読むことはできますが、それは安全ではありません。他のオプションについては、この質問の最初の解を読んでください:http:// stackoverflow。com/questions/10791109/request-getheaderreferer-back-button-reload-the-page –