Servlet表单数据:
有些时候,需要将数据从浏览器传递给web服务器,最终传递给后台程序。浏览器使用两种方法将数据传递给web服务器,GET方法和POST方法。
GET方法:
GET方法向页面请求发送已编码的用户信息。页面和编码信息间用?隔开 格式如:
http://www.text.com/hello?key1=value1&key2=value2
GET方法是默认的从浏览器向服务器传递信息的方法。它会产生一个很长的字符串,出现在浏览器的地址栏中。如果您要向服务器传递的是密码或其他的敏感信息,请不要使用 GET 方法。GET 方法有大小限制:请求字符串中最多只能有 1024 个字符。
Servlet使用doGet()方法处理GET请求。
POST方法:
POST 方法打包信息的方式与 GET 方法基本相同,但是 POST 方法不是把信息作为 URL 中 ? 字符后的文本字符串进行发送,而是把这些信息作为一个单独的消息。消息以标准输出的形式传到后台程序,您可以解析和使用这些标准输出。Servlet 使用 doPost() 方法处理这种类型的请求。
使用Servlet读取表单的数据:
getParameter(String); 调用request.getParameter(String)获取表单参数的值
getParameterValues(); 如果参数出现一次以上,则调用该方法,并返回参数的多个值,例如复选框
getParameterNames(); 获取当前请求中参数的所有列表
使用URL的GET方法实例:
使用 GET 方法向 HelloForm 程序传递两个值。
http://localhost:8080/TomcatTest/HelloForm?name=百度一下&url=www.baidu.com
package MyServlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.io.IOException;
/**
* Created by 1192126986 on 2017/1/14.
*/
@WebServlet(name = "HelloForm")
public class HelloForm extends HttpServlet {
private static final long serialVersionUID = 1L;
public HelloForm(){
super();
}
//处理POST请求方法
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
//处理GET请求方法
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置响应文档类型为文本文档HTML
response.setContentType("text/html");
//获取文本输出流打印对象,用于向响应文档打印响应信息
PrintWriter out=response.getWriter();
String title="使用GET方法处理表单";
//处理中文
//(1)就是将字符集改成UTF-8的形式
//(2)字符编码转换...因为tomcat容器默认采用了..iso-8859-1的编码方式
String name=new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8");
String docType="<!DOCTYPE html> \n";
out.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n" +
//bgcolor背景颜色。text文本颜色
"<body bgcolor=\"#f0f0f0\">\n" +
//align 属性规定标题的水平对齐方式
"<h1 align=\"center\">" + title + "</h1>\n" +
"<ul>\n" +
// <ul> 标签定义无序列表 <li> 标签定义列表项目 <b> 标签规定粗体文本
" <li><b>站点名</b>:"
+ name + "\n" +
" <li><b>网址</b>:"
+ request.getParameter("url") + "\n" +
"</ul>\n" +
"</body></html>");
}
}
在web.xml创建:
<?xml version="1.0" encoding="UTF-8"?>
<web-app >
<servlet>
<servlet-name>HelloForm</servlet-name>
<servlet-class>MyServlet.HelloForm</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloForm</servlet-name>
<url-pattern>/HelloForm</url-pattern>
</servlet-mapping>
</web-app>