2013-08-08 2 views
0

요청 URL에서 GET 매개 변수를 제거 할 수 있습니까? 응답이 클라이언트에 도달하면 창 위치는 GET 매개 변수에서 지워진 URL이됩니다. 어쨌든 리디렉션을하지 않고이 작업을 수행 할 수 있습니까? 전달 된 매개 변수는 서버에서 액세스 할 수 있습니까?Java Servlet API : URL에서 GET 매개 변수를 제거하십시오.

감사합니다.

목적 :
URL을 짧게하는 것입니다. 현재 내 사이트에서 링크에는 GET 매개 변수를 해시 매개 변수로 변환하는 핸들러가 있습니다. 그런 다음 위치 해시 변경 리스너는 AJAX 요청 (위치 해시 매개 변수 사용)을 수행하여 문서의 특정 부분을 다시로드합니다. 새 창/탭에서 링크를 열려고 할 때 URL 매개 변수를 "정리"하여 일부 문자열로 구분 된 위치 해시에 넣을 계획입니다. URL을 "정리"할 수없는 경우 GET 매개 변수와 위치 해시 매개 변수가 있으므로 너무 길어질 수 있습니다.

+0

URL에서 아무 것도 제거 할 수 없습니다. 프로토콜 설계 기준입니다. 쿼리 문자열에 매개 변수를 표시하지 않으려면 GET 대신 POST 메서드를 사용하십시오. – Santosh

답변

0

서블릿 FilterHttpServletRequestWrapper을 사용할 수 있습니다.

doFilter 방법의 경우 Request에 영향을 줄 수 있습니다.

여기 Filter 인터페이스의 documentation 공식이며 여기 pageHttpServletRequestWrapper입니다.

마지막으로, here은 원하는 내용에 대한 좋은 SO 페이지입니다.

0

GET 매개 변수, 이 base64처럼 사용할 수있는 몇 가지 인코딩 방법이 있습니다 http://www.w3schools.com/tags/ref_httpmethods.asp이 정의 된 방식으로 URL 인코딩 이잖아,하지만 당신은에 보내려면 몇 가지 정보가있는 경우는 어쨌든 를 디코딩 할 수있다 서버를 안전하게 사용하려면 대신 POST 방법을 사용할 수 있습니다. 또한 사용자가 주변에서 게임하는 것을 방지하려면 web.xml에 페이지를 매핑하고 인증 확인 필터를 추가 할 수 있습니다.

0

URL에 요청 매개 변수를 표시하지 않으려는 귀하의 의도는 무엇입니까? 순수한 미학이라면 Stackoverflow와 같이 REST 스타일 URL을 사용할 수 있습니다. 여기서 매개 변수는 URL 내에 토큰이됩니다.

그렇지 않으면 클라이언트가 특정 URL?param1=....을 요청한 다음 서버에서 리디렉션하지 않고 단지 URL으로 끝나거나 POST가 원래 요청 인 것으로 끝날 가능성이 있다고 생각하지 않습니다. 차이점 POST and GET

관련 문제