目录

一、前言

二、表单提交多个参数_地址带有多个请求参数_接收响应处理

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解决编码问题 这篇博文将介绍: 表单提交多个参数_地址带有多个请求参数_接收响应处理 的一些操作

二、表单提交多个参数_地址带有多个请求参数_接收响应处理

java项目中impl JAVA项目中service多参_流程图

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

效果如下:

java项目中impl JAVA项目中service多参_流程图_02

    

java项目中impl JAVA项目中service多参_流程图_03

5、执行流程简单介绍

(1)在浏览器输入地址

http://localhost:8080/web02/greeting_post_many.html

(2)找到 web项目下的 WebRoot目录下greeting_post_many.html 

我们目前可以简单理解:WebRoot目录 对应 http://localhost:8080/web02/

java项目中impl JAVA项目中service多参_xml_04

(3)显示 html页面,填写表单信息

java项目中impl JAVA项目中service多参_流程图_02

(4)html表单action属性值对应web.xml的url-pattern标签值,找到 web项目对应的包类名

java项目中impl JAVA项目中service多参_流程图_06

(5)web 项目 java类 HelloServlet 获取表单对应值 进行显示

1) String request.getParameter(String paramName);

注意:如果paraName对应的值不存在,返回null。

2) String[] request.getParameterValues(StringparamName);

当有多个参数名相同的时候,用该方法。

java项目中impl JAVA项目中service多参_java_07

如这篇博文其实已经介绍过:原创 java服务器端开发-servlet:2、Servlet执行过程介绍:常见错误及解决方式、响应数据包、get请求与post请求、编码相关等 5、如何获得请求参数值?