版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、客户请求处理:表单数据,议程,表单数据的功用 HTML表单的创建和提交 单个请求参数的读取 整个系列请求参数的读取 数据缺失或者异常时的处理 不完整表单提交的应对 请求参数中特殊字符的过滤,表单数据的功用,在线旅行社可能会用到的URL http:/host/path?user=Marty+Hall 从英文(Latin-1)转换成中文 String firstNameWrongEncoding = request.getParameter(firstName); String firstName = new String(firstNameWrongEncoding.getBytes(),“GB
2、K); 接收英文或中文 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 response) t
3、hrows 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 HttpServlet publi
4、c 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 + + title
5、+ 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 (paramVa
6、lues.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 respon
7、se) throws ServletException, IOException doGet(request, response); ,数据缺失或异常的检查,缺失 表单中缺失某个字段 getParameter返回null 表单提交时字段为空 getParameter返回空字符串(或者由空格组成的字符串) 在检查字符串是否为空之前必须检查它是否为null String param = request.getParameter(someName); if (param = null) | (param.trim().equals() doSomethingForMissingValues(.);
8、else doSomethingWithParameter(param); 异常 值为非空字符串,但格式错误,缺失或异常数据的处理,使用默认值 用应用程序特定的标准值来替代缺失的值 参见随后的例子 再次显示表单 再次显示表单,将缺失的值标示出来 之前已经输入的值应该保留 实现这个功能有四种选择: 由同一个servlet呈现表单、处理数据、并呈现结果。 由一个servlet呈现表单;由另一个servlet处理数据并呈现结果。 由JSP页面“手动地”呈现表单;由servlet或JSP页面处理数据并呈现结果。 由JSP页面呈现表单,自动用从数据对象获得的值填充各个字段。由servlet或JSP页面处
9、理数据并呈现结果。 具体的例子请参考本书的内容,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), 18); Str
10、ing 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 response) th
12、rows 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026河南郑州市招生考试中心公益性岗位招聘10人备考题库含答案详解(巩固)
- 2026四川甘孜州泸定县招聘“一村一幼”辅导员8人备考题库及1套完整答案详解
- 2026北京大学电子学院招聘劳动合同制工作人员1人备考题库附答案详解
- 2026广东广州白云区招聘内勤文职1名备考题库及答案详解(必刷)
- 2026广东河源市连平县城乡投资有限公司招聘7人备考题库及答案详解(网校专用)
- 2026吉林梅河新区(梅河口市)事业单位人才回引22人备考题库附答案详解(基础题)
- 2026年福建泉州晋江市第七实验小学招聘食堂财务管理员备考题库及答案详解(考点梳理)
- 2026内蒙古阿吉泰蒙医医院有限公司招聘72人备考题库附答案详解(培优a卷)
- 2026河南郑州市公园广场事务中心公益性岗位招聘135人备考题库含答案详解(基础题)
- 2026福建省龙岩中龙科技有限公司招聘5人备考题库带答案详解
- 2025年广西贵港桂平市城区学校公开选调教师145人考试模拟试题及答案解析
- 市政照明施工专项施工方案
- 光伏发电工程建设标准工艺手册(2023版)
- 广东省惠州市2025届高三化学下学期一模试题【含答案】
- 2025至2030电子束曝光系统(EBL)行业项目调研及市场前景预测评估报告
- 辽宁党校研究生法学考试真题(附答案)
- GB/T 20165-2025稀土抛光粉
- 国家药品监督管理局医疗器械技术审评检查长三角分中心2024年度公开招聘笔试备考题库及答案详解一套
- 小型光伏发电并网系统的设计与实现
- 学堂在线 唐宋词鉴赏 期末考试答案
- 中国移动集成公司招聘笔试题库2025
评论
0/150
提交评论