客户请求处理表单数据.ppt_第1页
客户请求处理表单数据.ppt_第2页
客户请求处理表单数据.ppt_第3页
客户请求处理表单数据.ppt_第4页
客户请求处理表单数据.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、客户请求处理:表单数据,主讲:刘晓涛,议程,表单数据的功用 HTML表单的创建和提交 单个请求参数的读取 整个系列请求参数的读取 数据缺失或者异常时的处理 不完整表单提交的应对 请求参数中特殊字符的过滤,表单数据的功用,在线旅行社可能会用到的URL http:/host/path?user=Marty+Hall 从英文(Latin-1)转换成中文 String firstNameWrongEncoding = request.getParameter(firstName); String firstName = new String(firstNameWrongEncoding.getByte

2、s(),“GBK); 接收英文或中文 request.setCharacterEncoding(“GB2312); String firstName = request.getParameter(firstName);,含有三个参数的HTML表单, First Parameter: Second Parameter: Third Parameter: ,读取三个参数,public class ThreeParams extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse resp

3、onse) throws ServletException, IOException out.println(docType + n + +title + n + n + + title + n + n + param1: + request.getParameter(param1) + n + param2: + request.getParameter(param2) + n + param3: + request.getParameter(param3) + n + n + ); ,读取所有参数,public class ShowParameters extends HttpServle

4、t public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType(text/html); PrintWriter out = response.getWriter(); String docType = n; String title = Reading All Request Parameters; out.println(docType +n + +title + n+ n + +

5、 title + n + n + n + Parameter NameParameter Value(s);,读取所有参数(续),Enumeration paramNames = request.getParameterNames(); while(paramNames.hasMoreElements() String paramName = (String)paramNames.nextElement(); out.print( + paramName + n); String paramValues = request.getParameterValues(paramName); if (

6、paramValues.length = 1) String paramValue = paramValues0; if (paramValue.length() = 0) out.println(No Value); else out.println(paramValue); else out.println(); for(int i=0; i + paramValuesi); out.println(); out.println(n); ,读取所有参数(续),public void doPost(HttpServletRequest request, HttpServletResponse

7、 response) throws ServletException, IOException doGet(request, response); ,数据缺失或异常的检查,缺失 表单中缺失某个字段 getParameter返回null 表单提交时字段为空 getParameter返回空字符串(或者由空格组成的字符串) 在检查字符串是否为空之前必须检查它是否为null String param = request.getParameter(someName); if (param = null) | (param.trim().equals() doSomethingForMissingValu

8、es(.); else doSomethingWithParameter(param); 异常 值为非空字符串,但格式错误,缺失或异常数据的处理,使用默认值 用应用程序特定的标准值来替代缺失的值 参见随后的例子 再次显示表单 再次显示表单,将缺失的值标示出来 之前已经输入的值应该保留 实现这个功能有四种选择: 由同一个servlet呈现表单、处理数据、并呈现结果。 由一个servlet呈现表单;由另一个servlet处理数据并呈现结果。 由JSP页面“手动地”呈现表单;由servlet或JSP页面处理数据并呈现结果。 由JSP页面呈现表单,自动用从数据对象获得的值填充各个字段。由servlet

9、或JSP页面处理数据并呈现结果。 具体的例子请参考本书的内容,servlet代码,headingFont = replaceIfMissing(headingFont, ); int headingSize = getSize(request.getParameter(headingSize),32); String bodyFont = request.getParameter(bodyFont); bodyFont = replaceIfMissing(bodyFont, ); int bodySize = getSize(request.getParameter(bodySize), 1

10、8); String fgColor = request.getParameter(fgColor); fgColor = replaceIfMissing(fgColor, BLACK); String bgColor = request.getParameter(bgColor);,servlet代码(续),private String replaceIfMissing(String orig,String replacement) if (orig = null) | (orig.trim().equals() return(replacement); else return(orig)

11、; ,过滤字符串中的HTML特殊字符,并非任何字符串都可以安全地插入到servlet的输出中 在任何地方都会引起问题 StringBuffer filtered = new StringBuffer(input.length(); char c; for(int i=0; i: filtered.append( ,显示代码示例的servlet: 没有过滤措施,public class BadCodeServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse respo

12、nse) throws ServletException, IOException out.println(docType +n + +title+n + n + + title + n+ n +getCode(request) +n + Now, wasnt that an interesting samplen + of code?n +); protected String getCode(HttpServletRequest request) return(request.getParameter(code); ,显示代码示例的servlet: 进行过滤,public class GoodCodeServlet extends BadCodeServlet protected String getCode(HttpServletRequest request) return (ServletUtilities.filter(super.getCode(request); ,小结,HTML表单发送

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论