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에 따라 라이센스가 부여됩니다.