반응형
안녕하세요.
오늘은 request의 데이터가 담기는 것에 대해서 알아보려고 합니다.
request에 데이터가 담기는 곳은 2가지가 있습니다.
1. Attribute : Server 단에서 보낸 데이터가 들어가는 곳
2. Parameter : Client단에서 보낸 데이터가 들어가는 곳
기본적으로 request Attribute에는 set과 get 함수가 있지만, Parameter에는 get 함수만이 존재합니다.
* setParameter 쓰는 법
그렇기때문에 서버단에서 Parameter를 추가하려고 한다면 아래의 새로운 클래스를 선언하여 수정해야 합니다.
public class ModifiableHttpServletRequest extends HttpServletRequestWrapper {
private HashMap<String, Object> params;
@SuppressWarnings("unchecked")
public ModifiableHttpServletRequest(HttpServletRequest request) {
super(request);
this.params = new HashMap<String, Object>(request.getParameterMap());
}
public String getParameter(String name) {
String returnValue = null;
String[] paramArray = getParameterValues(name);
if (paramArray != null && paramArray.length > 0) {
returnValue = paramArray[0];
}
return returnValue;
}
@SuppressWarnings("unchecked")
public Map getParameterMap() {
return Collections.unmodifiableMap(params);
}
@SuppressWarnings("unchecked")
public Enumeration getParameterNames() {
return Collections.enumeration(params.keySet());
}
public String[] getParameterValues(String name) {
String[] result = null;
String[] temp = (String[]) params.get(name);
if (temp != null) {
result = new String[temp.length];
System.arraycopy(temp, 0, result, 0, temp.length);
}
return result;
}
public void setParameter(String name, String value) {
String[] oneParam = { value };
setParameter(name, oneParam);
}
public void setParameter(String name, String[] value) {
params.put(name, value);
}
}
새로운 클래스를 생성한 후에는 아래와 같이 사용하면 됩니다.
// 새롭게 생성한 클래스 생성
ModifiableHttpServletRequest m = new ModifiableHttpServletRequest(request);
// parameter 추가
m.setParameter("new_key", "new_value");
// request에 넣기
request = (HttpServletRequest)m;
반응형
'BE > Java' 카테고리의 다른 글
[Java] Spring Validation 을 이용하여 Validation 체크하기 (0) | 2022.02.09 |
---|---|
[Jasper] Table 안보이는 현상 해결 방법 (0) | 2022.01.24 |
[Jasper] 5. JasperStudio 기능 설명 - 2 (0) | 2021.11.14 |
[Jasper] 5. JasperStudio 기능 설명 - 1 (0) | 2021.11.13 |
[Jasper] 4. Jasper Java 예제 (0) | 2021.11.12 |