客户请求地处理表单数据.ppt
文本预览下载声明
客户请求处理:表单数据 议程 表单数据的功用 HTML表单的创建和提交 单个请求参数的读取 整个系列请求参数的读取 数据缺失或者异常时的处理 不完整表单提交的应对 请求参数中特殊字符的过滤 表单数据的功用 在线旅行社可能会用到的URL http://host/path?user=Marty+Hallorigin=bwidest=lax 名称由HTML制作者指定,而值由最终用户提供。 传统CGI中对表单(查询)数据的解析 采用不同的方式读取GET请求(QUERY_STRING)和POST请求(标准输入)的数据。 在符号处将名/值对拆分开来,然后将参数名(等号左边)和参数值(等号右边)分开。 对值进行URL解码(比如,“%7E”变为~“) 在servlet中这一切得到极大简化 所有情况下都使用request.getParameter。 直接给出经过URL解码后的结果 表单数据的创建:HTML窗体 !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transitional//EN HTML HEADTITLEA Sample Form Using GET/TITLE/HEAD BODY BGCOLOR=#FDF5E6 H2 ALIGN=CENTERA Sample Form Using GET/H2 FORM ACTION=http://localhost:8088/SomeProgram CENTER First name: INPUT TYPE=TEXT NAME=firstName VALUE=JoeBR Last name: INPUT TYPE=TEXT NAME=lastName VALUE=HackerP INPUT TYPE=SUBMIT !-- Press this to submit form -- /CENTER /FORM /BODY /HTML 插入语: HTML文件的安装 HTML文件不放置在WEB-INF/classes目录中 它们需要放置在含有WEB-INF目录的目录中。 Tomcat install_dir\webapps\ROOT\Form.html 或 install_dir\webapps\ROOT\SomeDir\Form.html URL http://localhost/Form.html 或 http://localhost/SomeDir/Form.html 自定义Web应用 使用不同于默认Web应用的目录,但使用相同的结构 在URL中使用目录名(http://host/dirName/…) POST数据的发送 !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transitional//EN HTML HEADTITLEA Sample Form Using POST/TITLE/HEAD BODY BGCOLOR=#FDF5E6 H2 ALIGN=CENTERA Sample Form Using POST/H2 FORM ACTION=http://localhost:8088/SomeProgram” METHOD=POST” CENTER First name: INPUT TYPE=TEXT NAME=firstName VALUE=JoeBR Last name: INPUT TYPE=TEXT NAME=lastName VALUE=HackerP INPUT TYPE=SUBMIT /CENTER /FORM /BODY/HTML servlet中表单数据的读取 request.getParameter(name) 返回查询字符串中name首次出现时所对应的值,已经完成URL解码 无论GET和POST请求都以相同的方式工作 如果在查询数据中没有这个参数,则返回null request.getParameterValues(name) 返回查询字符中name所对应的所有值构成的数组如果参数没有重复出现,则返回仅有一个元素的数组 如果在查询中没有这个参数则返回null request.getParameterNames()或request.getParameterMap() 返回请求参数构成的Enumeration或Map 常常仅用于调试目的 多语言输入的处理 使用server的默认字符集 String firstName = request.getParameter(firstName); 从英文(Latin-1)转换成中文 String firstNameWrongEncoding = request.getParameter(firstName); String firstName = new S
显示全部