目录
一、前言
二、表单提交多个参数_地址带有多个请求参数_接收响应处理
1、java代码:HelloServlet.java
2、配置文件:web.xml
3、表单提交代码:greeting_post_many.html
4、演示效果
5、执行流程简单介绍
(1)在浏览器输入地址
(2)找到 web项目下的 WebRoot目录下greeting_post_many.html
(3)显示 html页面,填写表单信息
(4)html表单action属性值对应web.xml的url-pattern标签值,找到 web项目对应的包类名
(5)web 项目 java类 HelloServlet 获取表单对应值 进行显示
一、前言
上一篇文章介绍了表单提交中文参数_get/post解决编码问题,还有直接写一个地址带中文参数get请求方式的编码问题,详细可见博文:原创 java服务器端开发-servlet:2_1、表单提交中文参数_get/post解决编码问题 这篇博文将介绍: 表单提交多个参数_地址带有多个请求参数_接收响应处理 的一些操作
二、表单提交多个参数_地址带有多个请求参数_接收响应处理
1、java代码:HelloServlet.java
package t02_表单提交多个参数_接收响应处理;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 后表单提交多个参数_接收响应处理
* @UpdateTime:2011年02月28日 下午17:30:00
* @ProjectName: 【项目名】
* @ClassName:【类名】
* @CategoryName:【类型】如:Activity
* @author:luminal、邮箱 luminal_yyh@163.com
* @since 1.0【版本】
* @Description:(可以在这里描述这个类的作用)
* 步骤:
* 1、地址见:web.xml
*/
public class HelloServlet extends HttpServlet{
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
System.out.println("name:" + name);
String age = request.getParameter("age");
String[] city = request.getParameterValues("city");
//String city = request.getParameter("city");//这样只能获取一个city值
int ageInt = Integer.parseInt(age) + 1;
String msg = "<h1>你好 " + name
+ " 你的年龄是 " + ageInt
+ "</h1>";
response.setContentType(
"text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//将处理结果缓存到response对象上。
//-->处理结果,打包发送给浏览器
//-->浏览器拆包,生成页面【详见Servlet执行过程介绍】
out.println(msg);
for(int i=0;i<city.length;i++){
city[i] = new String(
city[i].getBytes("iso-8859-1"),"utf-8");
out.println("<h1>所在城市:" + city[i] + "</h1>");
}
out.close();
}
}
2、配置文件:web.xml
“t01_表单提交中文参数_解决编码问题”是上篇博文代码的配置,
这篇博文的配置“t02_表单提交多个参数_接收响应处理”,
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<display-name>web02</display-name>
<!-- t01_表单提交中文参数_解决编码问题 -->
<servlet>
<servlet-name>web02</servlet-name>
<servlet-class>t01_表单提交中文参数_解决编码问题.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>web02</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<!-- t02_表单提交多个参数_接收响应处理 -->
<servlet>
<servlet-name>web02_two</servlet-name>
<servlet-class>t02_表单提交多个参数_接收响应处理.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>web02_two</servlet-name>
<url-pattern>/hello_many</url-pattern>
</servlet-mapping>
</web-app
3、表单提交代码:greeting_post_many.html
实际开发中表单提交,一般使用post方式,为了方便区别我把提交的 action 定义为"hello_many"
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<body style="font-size:30px; font-style:italic;">
<form action="hello_many" method="post">
<fieldset>
<legend>个人信息post_many</legend>
姓名:<input name="name" /><br /> 年龄:<input name="age" /><br /> 城市:
北京<input type="checkbox" name="city" value="bj" checked="checked" />
上海<input type="checkbox" name="city" value="sh" /> 武汉<input
type="checkbox" name="city" value="wh" /><br /> <input
type="submit" value="提交" />
</fieldset>
</form>
</body>
</html>
4、演示效果
启动 tomact 容器,部署项目 web02,
然后在谷歌浏览器上输入地址:http://localhost:8080/web02/greeting_post_many.html
效果如下:
5、执行流程简单介绍
(1)在浏览器输入地址
http://localhost:8080/web02/greeting_post_many.html
(2)找到 web项目下的 WebRoot目录下greeting_post_many.html
我们目前可以简单理解:WebRoot目录 对应 http://localhost:8080/web02/
(3)显示 html页面,填写表单信息
(4)html表单action属性值对应web.xml的url-pattern标签值,找到 web项目对应的包类名
(5)web 项目 java类 HelloServlet 获取表单对应值 进行显示
1) String request.getParameter(String paramName);
注意:如果paraName对应的值不存在,返回null。
2) String[] request.getParameterValues(StringparamName);
当有多个参数名相同的时候,用该方法。
如这篇博文其实已经介绍过:原创 java服务器端开发-servlet:2、Servlet执行过程介绍:常见错误及解决方式、响应数据包、get请求与post请求、编码相关等 5、如何获得请求参数值?