1、Servlet的编写:
/**
* @author CSDN_LQR
* @TODO request之与请求正文相关的方法
*/
public class ServletDemo3 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userName = request.getParameter("userName");
String password = request.getParameter("password");
String sex = request.getParameter("sex");
String[] habbys = request.getParameterValues("habby");// 如果找不到habby,habbys不是长度为0,而是null
String city = request.getParameter("city");
userName = new String(userName.getBytes("ISO-8859-1"), "UTF-8");
password = new String(password.getBytes("ISO-8859-1"), "UTF-8");
sex = new String(sex.getBytes("ISO-8859-1"), "UTF-8");
city = new String(city.getBytes("ISO-8859-1"), "UTF-8");
System.out.println(userName);
System.out.println(password);
System.out.println(sex);
for (int i = 0; habbys != null && i < habbys.length; i++) {
System.out.println(new String(habbys[i].getBytes("ISO-8859-1"),
"UTF-8"));
}
System.out.println(city);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 告诉服务器使用UTF-8格式接收以下Post参数(register.html中已经在<head>中申明使用UTF-8编码)
request.setCharacterEncoding("UTF-8");
// getParamterTest(request);
// getParamterNamesTest(request);
// getParamterMapTest(request);
}
/**
* getParameterMap()常用于框架,可以参考Apache的commons-beanutils-1.8.3.jar
*
* @param request
*/
private void getParamterMapTest(HttpServletRequest request) {
try {
User user = new User();
System.out.println("填充前:" + user.toString());
Map<String, String[]> map = request.getParameterMap();
for (Map.Entry<String, String[]> entry : map.entrySet()) {
String key = entry.getKey();
String[] value = entry.getValue();
// 反射得到User类中属性的setter方法
PropertyDescriptor pb = new PropertyDescriptor(key, User.class);
Method setter = pb.getWriteMethod();
if (value.length == 1) {
setter.invoke(user, value[0]);
} else {
setter.invoke(user, (Object) value);
}
}
System.out.println("填充后:" + user.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
private void getParamterNamesTest(HttpServletRequest request) {
Enumeration<String> names = request.getParameterNames();
while (names.hasMoreElements()) {
String name = names.nextElement();
String[] values = request.getParameterValues(name);
for (int i = 0; values != null && i < values.length; i++) {
System.out.println(name + "\t" + values[i]);
}
}
}
private void getParamterTest(HttpServletRequest request) {
String userName = request.getParameter("userName");
String password = request.getParameter("password");
String sex = request.getParameter("sex");
String[] habbys = request.getParameterValues("habby");// 如果找不到habby,habbys不是长度为0,而是null
String city = request.getParameter("city");
System.out.println(userName);
System.out.println(password);
System.out.println(sex);
for (int i = 0; habbys != null && i < habbys.length; i++) {
System.out.println(habbys[i]);
}
System.out.println(city);
}
}!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="demo3" method="post">
用户名:<input type="text" name="userName" /><br/>
密码:<input type="password" name="password"/><br/>
性别:<input type="radio" name="sex" value="男" checked="checked"/>男
<input type="radio" name="sex" value="女" />女<br/>
爱好:<input type="checkbox" name="habby" value="篮球"/>篮球
<input type="checkbox" name="habby" value="足球"/>足球
<input type="checkbox" name="habby" value="乒乓球"/>乒乓球<br/>
城市:
<select name="city">
<option>-------请选择城市--------</option>
<option value="bj">北京</option>
<option value="sh">上海</option>
<option value="gz">广州</option>
</select>
<br/>
<input type="submit" value="提交">
</form>
</body>
</html>
3、User类的编写
public class User {
private String userName;
private String password;
private String sex;
private String city;
private String[] habby;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String[] getHabby() {
return habby;
}
public void setHabby(String[] habby) {
this.habby = habby;
}
@Override
public String toString() {
return "User [userName=" + userName + ", password=" + password
+ ", sex=" + sex + ", city=" + city + ", habby="
+ Arrays.toString(habby) + "]";
}
}