Javaweb에서 양식 데이터를 가져오는 다양한 방법

6494 단어 javaweb양식
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);
 }

}
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기