2

SOがURLを非常にうまく生成していることに気付きました。たとえば、質問を作成するとき、URLはこのようなものであるhttp://stackoverflow.com/questions/askか、質問を表示するときですhttp://stackoverflow.com/questions/QUESTIONNUM/some-question-title

Stackoverflow はどのようにしてこのような洗練された URL を実装しているのでしょうか。クエリ文字列がなくても、アクセスされているページや質問番号を特定できるにもかかわらず、URL にクエリ文字列が含まれていません。このような URL をアプリケーションに実装したいと考えています。

私の質問は、これをアプリケーションにどのように実装しますか? Apache Tomcat と Struts2 を使用しています。

4

2 に答える 2

2

次のように、いつでも独自のActionMapperを作成して、デフォルトのマッパーの代わりに使用できます。

<bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="myMapper" class="com.company.MyActionMapper" />
<constant name="struts.mapper.class" value="myMapper" />
于 2012-12-28T07:24:43.593 に答える
2

StackOverflow はASP.NET MVCで構築されています。ASP.NET ルーティングを使用します。この URL の重要な部分はQUESTIONNUM. これは、データベースにクエリを実行して質問番号を取得するために使用されます。質問のタイトルは完全に任意です。たとえば、これらの URL は両方ともまったく同じ場所を指しています。

基本的に、特定の質問へのリンクが生成されると、質問 ID を使用してデータベースから質問の詳細 (質問のタイトルなど) が取得され、ASP.NET MVC の HTML ヘルパーを使用して適切な URL が構築されます。質問のタイトルには任意の文字が含まれている可能性があるため、このタイトルは でフィルタリングされ、regular expression危険な文字が削除され、安全な同等の文字に置き換えられます。

于 2012-12-23T13:25:47.517 に答える