2017-10-20 19 views
0

ユーザーが訪問した前のページを追跡するためにHttpSessionに「URL」属性を保持することが悪い習慣であるかどうか疑問に思います。前のページの内容に応じて条件付きで異なるタスクを実行できるように、前のURLを知りたい。URLを格納するHttpSession

たとえば、ユーザーがこのページにアクセスする方法に応じてWebページの色を変更するコントローラクラスがあります。ユーザーが「example.com/blue」のボタンを押すと、現在のページにリダイレクトされ、青色になります。 (「example.com/pink」の場合は、ページをピンクにするなど)。これは、

から

から実行されます。url = httpSession.getAttribute(url);
(url.equals(青)){//作るページブルー}場合
IF(url.equals(ピンク)){//ページピンク作る}

うまくいけば、これを行っている感覚。

ありがとうございます!

答えて

0

はい、これは悪い習慣です。これは維持するのが難しいでしょう。あなたは単体テストをどのように書いていますか?

この質問のタグは、MVCフレームワークを使用していることを意味しますが、ソリューションはMVCパターンの誤解のように見えます。

URLは 'controller'に属し、ページスタイリングは 'view'であり、ユーザーの履歴は 'model'です。 HttpSessionに情報を保存する必要がある場合は、プロトコルに依存しないようにします。私はある種の列挙型を格納することを検討します。あるいは、ボタンは要求パラメータとして色を渡すだけです。

また、2つのタブでページを開くユーザーもいます。

ページ構造を再構成する場合、HttpSessionも再編成する必要がないように、アプリケーションを実装してください。

+0

ありがとうございます!あなたが言ったことは、特にMVCを利用することにはかなり意味があります。 – BGui

関連する問題