版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年个人与企业共建的品牌策划与推广服务合同3篇
- 2024年度特种设备安全检验与维修服务合同2篇
- 2024年度建筑工程消防系统设计与安装合同4篇
- 2024年度企业管理制度与劳动合同履行监督合同3篇
- 2024年医疗诊所经营权转让协议3篇
- 2024年度三人合伙开展无人机巡检服务的合同2篇
- 2024年度人力资源外包合同of财务和行政岗位3篇
- 2024年度教育行业合作与发展协议3篇
- 2024年EPS装饰线条工程环保技术研发与应用合同2篇
- 2024年能源管理班组劳务承揽合同2篇
- 内审检查表完整版本
- 2024年秋季国家开放大学《形势与政策》大作业及答案
- 上海市复旦附中2025届高一上数学期末检测模拟试题含解析
- 义务教育劳动课程标准2022年版考试题库及答案5
- 肿瘤所治疗所致血小板减少症诊疗指南
- 建筑制图基础-国家开放大学电大机考网考题目答案
- 中考英语词汇
- 3.3 场域与对话-公共空间里的雕塑 课件-高中美术人美版(2019)美术鉴赏
- 2024年永州职业技术学院单招职业技能测试题库及答案解析
- SMP-10-003-00 药品上市后风险管理规程
- 沟通的艺术智慧树知到期末考试答案章节答案2024年湖南师范大学
评论
0/150
提交评论