您的位置:首页 > 其它

servlet表单处理使用GET()方法实例 及复选框

2017-04-08 12:05 597 查看
1、web目录下的hello.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<form action="HelloForm" method="get">
网址名:<input type="text" name="name">
<br />
网址:<input type="text" name="url">
<input type="submit" value="提交">
</form>
</body>
</html>
2、src下的HelloForm.java
public class HelloForm extends HttpServlet {
private static final long serialVersionUID = 1L;
public HelloForm(){
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException{
//设置响应内容类型
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();//准备输入
String title ="使用get方法读取表单数据";
//表单输入的数据中有中文则需要转码
String name = new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8");
String doType = "<!DOCTYPE HTML> \n";
out.println(doType +
"<html>\n" +
"<head><title>" + title +"</title></head>\n" +
"<body bgcolor = \"#f0f0f0\">\n" +
"<h1 align =\"center\"> "+ title + "</h1>\n" +
"<ul>\n" +
"<li><b>站点名</b>:"
+ name +"\n"+
"<li><b>网址</b>:"
+ request.getParameter("url")+"\n"+
"<ul>\n" +
"</body></html>");
}

protected void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
doGet(request,response);
}
}
2、设置一下web-xml
<servlet><!--定义servlet-->
<servlet-name>HelloForm</servlet-name>
<servlet-class>HelloForm</servlet-class><!--定义包.类-->
</servlet>
<servlet-mapping><!--映射路径-->
<servlet-name>HelloForm</servlet-name>
<url-pattern>/HelloForm</url-pattern><!--页面的映射路径,路径必须对应上否则会出现404-->
</servlet-mapping>
 
3、试输入网址名和网址,然后点击"提交"按钮,Gif 演示如下:



读取所有的表单参数

1、ReadParams.java
public class ReadParams extends HttpServlet {
private static final long serialVersionUID = 1L;

public ReadParams(){
super();
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String title = "读取所有的表单数据";
String docType =
"<!doctype html public \"-//w3c//dtd html 4.0 " +
"transitional//en\">\n";
out.println(docType +
"<html>\n" +
"<head><meta charset=\"utf-8\"><title>" +title +"</title></head>\n"
+"body bgcolor=\"#f0f0f0\">\n" +
"<h1 align=\"center\">" + title +"</h1>" +
"<table width=\"100%\" border=\"1\" align=\"center\">\n" +
"<tr bgcolor=\"#949494\">\n" +
"<th>参数名称</th><th>参数值</th>\n"+
"</tr>\n");
Enumeration paramNames = request.getParameterNames();
while(paramNames.hasMoreElements()){//刚开始的时候Enumeration的游标指向-1,所以可以全部遍历
String paramName = (String)paramNames.nextElement();
out.println("<tr><td>" + paramName + "</td>\n");
String[] paramValues = request.getParameterValues(paramName);
//读取单个值的数据
if(paramValues.length == 1){
String paramValue = paramValues[0];
if(paramValue.length() == 0)
out.println("<td><i>没有值</i></td>");
else
out.println("<td>" + paramValue +"</td>");
}
else{//读取多个数据
out.println("<td><ul>");
for(int i = 0;i < paramValues.length;i++){
out.println("<li>" +paramValues[i]);
}
out.println("</ul></td>");
}
out.println("</tr>");
}
out.println("\n</table>\n</body></html>");
}

public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
doGet(request,response);
}
}

2、test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<form action="ReadParams" method="post" target="_blank">
<input type="checkbox" name="maths" checked="checked"/>数学
<input type="checkbox" name="physics" />物理
<input type="checkbox" name="chemistry" checked="checked"/>化学
<input type="submit" value="选择科学" />
</form>
</body>
</html>
3、web-xml
<servlet><!--定义servlet-->
<servlet-name>ReadParams</servlet-name>
<servlet-class>ReadParams</servlet-class><!--定义包.类-->
</servlet>
<servlet-mapping><!--映射路径-->
<servlet-name>ReadParams</servlet-name>
<url-pattern>/ReadParams</url-pattern><!--页面的映射路径,路径必须对应上否则会出现404-->
</servlet-mapping>

现在使用上面的表单调用 Servlet,将产生以下结果:



将复选框数据传递到 Servlet 程序

当需要选择一个以上的选项时,则使用复选框。
下面是一个 HTML 代码实例 checkbox.html,一个带有两个复选框的表单。<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<form action="CheckBox" method="POST" target="_blank">
<input type="checkbox" name="runoob" checked="checked" /> 菜鸟教程
<input type="checkbox" name="google" /> Google
<input type="checkbox" name="taobao" checked="checked" /> 淘宝
<input type="submit" value="选择站点" />
</form>
</body>
</html>
注意:如果doGet方法表单提交的数据中有中文数据则需要转码:String name =new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: