Javaweb에서 양식 데이터를 가져오는 다양한 방법
1. 키 값이 맞는 형식으로 폼 데이터를 얻는다
getParameter(String name): 키를 통해 value를 반환합니다.
getParameterValues(String name): 키를 통해string 그룹(여러 개의 값)을 되돌려줍니다.
getParameterNames(): form 양식의 모든 키 값을 반환합니다.
다음은 키 값을 통해 폼 데이터의 데이터를 가져오는 방법을 소개합니다.
@WebServlet({ "/FormServlet", "/form" })
public class FormServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public FormServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/json;charset=utf-8");
PrintWriter out = response.getWriter();
Enumeration<String> paramNames = request.getParameterNames();
while (paramNames.hasMoreElements()) {
String name = paramNames.nextElement();
String[] values = request.getParameterValues(name);
if(values!=null && values.length>0){
StringBuilder builder = new StringBuilder();
for (int i = 0; i < values.length; i++) {
builder.append(values[i]+" ");
}
out.println(name+" : "+builder.toString());
}
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
양식:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/TomcatDemo/form" method="post">
<input type="text" name="username"/><br/>
<input type="password" name="password"/><br/>
<input type="radio" name="sex" value="male" checked="checked"/>
<input type="radio" name="sex" value="female"/> <br/>
<input type="checkbox" name="hobby" value="basketball"/>
<input type="checkbox" name="hobby" value="football"/>
<input type="checkbox" name="hobby" value="game"/>
<input type="checkbox" name="hobby" value="media"/> <br/>
<select name="city">
<option value="bj"> </option>
<option value="sh"> </option>
<option value="sz"> </option>
<option value="hz"> </option>
</select><br/>
<input type="submit" value=" "/>
<input type="submit" value=" "/><br/>
</form>
</body>
</html>
2. 맵 형식으로 양식 데이터 가져오기getParameterMap (): 폼의 데이터를 가져와 맵 형식으로 봉인합니다
예:
@WebServlet({ "/FormServlet", "/form" })
public class FormServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public FormServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/json;charset=utf-8");
PrintWriter out = response.getWriter();
User user = new User();
out.println(" :"+user.toString());
Map<String,String[]> map = request.getParameterMap();
for (Map.Entry<String, String[]> m : map.entrySet()) {
String name = m.getKey();
String[] values = m.getValue();
// : JavaBean
PropertyDescriptor pd=null;
try {
pd = new PropertyDescriptor(name, User.class);
} catch (IntrospectionException e) {
e.printStackTrace();
}
if (values!=null&& pd !=null) {
Method setter = pd.getWriteMethod();
try {
if (values.length==1) {
setter.invoke(user, values[0]);
}else {
setter.invoke(user, (Object)values);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
out.println(" :"+user.toString());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
PropertyDescriptor의 사용,클릭하여 보기 사용자 클래스
public class User {
private String username;// name
private String password;
private String sex;
private String[] hobby;
private String city;
...
//set get
}
3. 제3자jar 패키지를 통해 봉인표 데이터 얻기제3자jar가방 사용:commons-beanutils-1.8.3.jar
@WebServlet({ "/FormServlet", "/form" })
public class FormServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public FormServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/json;charset=utf-8");
PrintWriter out = response.getWriter();
User user = new User();
out.println(" :"+user.toString());
try {
// jar
BeanUtils.populate(user, request.getParameterMap());
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
out.println(" :"+user.toString());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Javaweb에서 양식 데이터를 가져오는 다양한 방법Javaweb에서 양식 데이터를 가져오는 몇 가지 방법 1. 키 값이 맞는 형식으로 폼 데이터를 얻는다 getParameter(String name): 키를 통해 value를 반환합니다. getParameterVal...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.