現在基於URL參數中的站點名稱,我們決定在Java(標準Jsp/Servlet Web應用程序)中採取的適當操作(方法調用等)。例如,該請求可能類似於www.oursite.com?site=Ohio
想知道如何做到這一點,而不必提供URL參數。用於決定調用哪種方法的URL參數的替代
0
A
回答
1
爲什麼不只是它的代碼插入到路徑?
www.oursite.com/Ohio
如果你只是使用直Servlet API的,你可以做這種性質的東西:
String path = request.getPathInfo();
String site = path.split("/")[0];
話雖這麼說,大多數web框架有一些支持這一點。 例如,Spring MVC中:
@RequestMapping(value="/{site}/blah/blah", method=RequestMethod.GET)
public ModelAndView blahBlah(HttpServletRequest req,
HttpServletResponse resp,
@PathVariable("site") String site) {
// do stuff here
}
當然,你可以在控制器級別太多,如果你所有的方法都需要那種映射的做到這一點:
@Controller
@RequestMapping(value="/{site}")
public class MyController {
@RequestMapping(value="/blah/blah", method=RequestMethod.GET)
public ModelAndView blahBlah(HttpServletRequest req,
HttpServletResponse resp,
@PathVariable("site") String site) {
// do stuff here
}
}
我相信這是比一個更清潔查詢參數,儘管它仍然顯示在您的網址中。還有其他更復雜的方法,例如使用apache的反向代理和虛擬主機功能根據站點名稱進行切換。您可以在登錄時進行一些操作,並將該網站存儲在會話中。這完全取決於你的要求。
4
您可以使用POST而不是GET。
GET將請求參數附加到URL的末尾。
POST使用表格發送編碼數據。
1
您可以使用其他網址,例如ohio.oursite.com。這個過程可以通過讓你的服務器響應* .oursite.com來自動完成。我可能會設置一個過濾器來查看子域名是什麼,並將其與允許的站點的預定義列表進行比較。如果它不存在,您可以重定向到主(www)網站。如果是這樣,您可以設置一個請求屬性,您可以使用與您當前使用請求參數類似的方式。
相關問題
- 1. sizeWithFont使用哪種替代方法:minFontSize:actualFontSize:forWidth:lineBreakMode:?
- 2. 應該用哪種方法代替LINQ to XML中的後代()?
- 3. C#替代多種方法中的參數/輸出參數
- 4. 上調用A類的方法取決於類型參數的
- 5. 用於從POST URL讀取JSON數據的file_get_contents替代方法?
- 6. 使用另一種方法中的參數調用方法
- 7. 有參數的代表方法調用
- 8. 另一種方法中未解決的方法調用引用
- 9. 如何編寫替代鏈式方法調用的可變參數方法?
- 10. 由於參數,無法調用方法
- 11. 綁定bean參數的方法調用
- 12. 哪種解決方法可用於以下SQL死鎖?
- 13. OpenGL替代GLEW的參數已定義或解決方案
- 14. Python的超級方法調用替代
- 15. 使用一種方法代替很多
- 16. Apple用哪種方法取代了「dragImage:」?
- 17. 哪種方法會被調用?
- 18. 繼承 - 將調用哪種方法
- 19. Swift泛型 - 調用哪種方法?
- 20. 在Ruby中調用哪種方法?
- 21. 哪種方法用於實時
- 22. 哪種方法用於生成「Application.config.secret_token ='...'」?
- 23. 如何決定使用哪種ADO.NET方法?
- 24. 使用URL重定向代替WCF服務的輸入參數
- 25. 替代方法的參數太多
- 26. 爲什麼這種調用通用參數失敗的方法?
- 27. 對多種方法使用調用不同量的參數
- 28. 調用取決於URL
- 29. 哪種解決方案可用於詳細的產品搜索?
- 30. 基於方法參數的方法調用的細粒度同步/鎖定
好的答案,可怕的網站引用。 – EJP
是的......幾乎添加了一個像這樣的評論:「這是一個可怕的糟糕鏈接。」至少它很簡單,重要。 – jahroy
借用EJP的評論。根據我的經驗,RoseIndia答案通常寫得不好,技術上也不準確。這個沒什麼不同。 (非常適合複製粘貼的程序員,雖然...) –