- PR -

ダウンロードで文字化け

投稿者投稿内容
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2007-02-26 17:32
URLに対応した処理をダイナミックにおこなうのですね。
URLに引数として渡されるものはもちろんやってますが、URLそのものをダイナミックに
解釈するという方法はわからないです。
"ダイナミック"、"動的"、"URL"の組み合わせで検索してみたのですが、URLの"?"以降に
指定する方法しか見当たりません。
今のシステムにいれることはフレームワーク部分の改造が伴うので、できないとおもうのですが、そういう方法があるなら興味あります。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-02-26 21:31
動的なWebシステムってのは、要するにブラウザから
URLとパラメータが送られて来た際に、プログラムで動的に作った
HTMLなり、画像なり、ファイルなりを返すわけです。
inがURLとinputタグのパラメータ、outが送出するファイルな関数のようなイメージ。

ですから、URLのパスを元に処理を切り替えるなんてのは、
そんなに突飛なことではなく「普通」なんですよね。

たとえばアマゾン。
http://www.amazon.co.jp/gp/product/4822281922/ref=pd_qpt_gw/123-1234567-1234567
みたいなURLなのですが、この「4822281922」の部分が書籍のIDだったりします。

Servletでこういう処理をする場合、原始的にはHttpServletRequest.getRequestURI()
などで、どういうURLでリクエストしたのかを取得し、それにあわせて処理をします。
web.xmlでのサーブレットのマッピングは
コード:
<servlet-mapping>
    <servlet-name>HogeServlet</servlet-name>
    <url-pattern>/HogeServlet/*</url-pattern>
</servlet-mapping>


といった指定とし、パス中に/HogeServlet/があるURLを
HogeServletで処理するようにします。

UrlRewriteというフレームワークもあるので
興味があれば調べてみてください。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2007-02-28 16:53
今のPJはstruts上で構築されたフレームワーク、ツールを前提に開発しているので
使えませんが、strutsのPjが長いのですが、昔servlet直からstrutsに移行したときに、
struts理解のために追っかけた記憶をもとに確認してみました。


motion.java

package jp.xxx;

public class motion extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
{
System.out.print("URI=" + req.getRequestURI() );
Class.forName( ,,,
}
}

web.xml
<servlet>
<servlet-name>motion</servlet-name>
<servlet-class>jp.xxx.motion</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>motion</servlet-name>
<url-pattern>*.will</url-pattern>
</servlet-mapping>

URL=http://localhost/iii.will

で実現できますね。

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