第5章Web表单和Request对象共31页文档
- 格式:ppt
- 大小:229.50 KB
- 文档页数:21
request对象使用1.引言1.1 概述概述部分的内容可以从以下几个方面进行展开:- 引入request对象:在现代的Web应用程序开发中,request对象被广泛应用,它是作为客户端向服务器发送请求的主要方式之一。
通过request对象,可以获取客户端的请求信息,从而进行相应的处理和响应。
- 作用:request对象在Web开发中起到了承载请求数据和参数的重要作用。
它可以让我们很方便地获取到请求中的各种参数,比如URL中的查询参数、请求头中的信息、请求体中的数据等,从而能够更好地处理用户的请求。
- 对request对象的深入研究:在本文中,我们将深入研究request 对象的属性和方法,以帮助读者更好地理解和使用这个对象。
我们将介绍request对象的常见属性,比如URL、method、headers等等,以及它的常用方法,如getParameter()、getHeader()等,以及如何正确地使用这些方法来处理用户的请求。
- 重要性:了解和正确使用request对象对于Web应用程序的开发非常重要。
通过充分了解request对象的定义和作用,以及掌握它的属性和方法,我们可以更好地处理和响应用户的请求,从而提升用户体验,并提高应用程序的性能和安全性。
总之,本文将着重介绍request对象的使用,帮助读者全面了解和掌握这个在Web应用程序开发中十分重要的对象。
深入研究request对象的属性和方法,并提供一些实际的使用案例和技巧,以帮助读者正确地使用request对象,并充分发挥其作用。
接下来,我们将详细介绍request 对象的定义和作用。
1.2文章结构文章结构部分内容1.2 文章结构本文将围绕request对象展开讨论,介绍其定义、作用以及相关的属性和方法。
文章分为三个主要部分进行阐述。
在引言部分,我们将概述整篇文章的内容,并介绍文章的目的。
通过引言,读者可以获得对request对象的整体认识和本文的主要内容概览。
request对象的常⽤属性和⽅法request的属性/*1.HttpRequest.GET ⼀个类似于字典的对象,包含 HTTP GET 的所有参数。
详情请参考 QueryDict 对象。
2.HttpRequest.POST ⼀个类似于字典的对象,如果请求中包含表单数据,则将这些数据封装成 QueryDict 对象。
POST 请求可以带有空的 POST 字典 —— 如果通过 HTTP POST ⽅法发送⼀个表单,但是表单中没有任何的数据,QueryDict 对象依然会被创建。
因此,不应该使⽤if request.POST 来检查使⽤的是否是POST ⽅法;应该使⽤if request.method == "POST" 另外:如果使⽤ POST 上传⽂件的话,⽂件信息将包含在 FILES 属性中。
注意:键值对的值是多个的时候,⽐如checkbox类型的input标签,select标签,需要⽤:request.POST.getlist("hobby")3.HttpRequest.body ⼀个字符串,代表请求报⽂的主体。
在处理⾮ HTTP 形式的报⽂时⾮常有⽤,例如:⼆进制图⽚、XML,Json等。
但是,如果要处理表单数据的时候,推荐还是使⽤ HttpRequest.POST 。
4.HttpRequest.path ⼀个字符串,表⽰请求的路径组件(不含域名)。
例如:"/music/bands/the_beatles/"5.HttpRequest.method ⼀个字符串,表⽰请求使⽤的HTTP ⽅法。
必须使⽤⼤写。
例如:"GET"、"POST"6.HttpRequest.encoding ⼀个字符串,表⽰提交的数据的编码⽅式(如果为 None 则表⽰使⽤ DEFAULT_CHARSET 的设置,默认为'utf-8')。
《web程序设计》教学大纲注:课程类别是指公共基础课/学科基础课/专业课;课程性质是指必修/限选/任选。
一、课程地位与课程目标(-)课程地位web程序设计》本课程是计算机科学与技术的专业课。
本课程的目的是使学生在巩固计算机网络基础知识的基础上,初步掌握网络环境下的基本编程语言及方法,理解并掌握网络环境下人机界面交互编程技术及方法,相关基本数据库操作技术及方法,在互联网的应用层掌握建立网站和制作主页的基本方法及相关技术。
(二)课程目标1、理解ASP程序设计的基本概念,具有理解和分析动态网站架设功能设计问题的基础和能力;2、理解动态网站设计的基本概念及理论,了解典型动态网站架设的基本方法及工具软件;能够完成设计方案并分析阐明设计的合理性;3、理解ASP程序设计的基本概念,理解掌握动态网站web界面的设计及交互的基本技术及方法;3、熟练掌握ASP设计中典型工具软件EditPlus的应用,掌握利用网络资源实现文件存取等组件功能的方法及手段;4、熟练掌握ASP设计中数据交互及数据库操作的基本方法,能利用工具软件设计及实现典型基本功能的动态网站。
增强学生对新技术的兴趣,培养学生对网络技术运用于自动化领域的能力,增强学生对通过专业技能促进社会生产自动化水平提高的信心。
二、课程目标达成的途径与方法《web程序设计》课程教学以课堂教学为主,结合自主学习和实验教学,针对典型动态网站架设及功能实现的基本概念及方法,培养学生运用基础知识和专业知识,分析和解决实际问题工程问题的能力和方法。
1课堂教学主要讲述基本概念,基本原理、和设计方法。
在课堂教学中,充分引入互动环节,提高教学效果。
2设计验证性、设计性实验,采用实验教学方式,训练实验技能,培养理论知识的应用能力。
3设计与专业相结合的实际应用问题,如自动化生产线电子看板系统,培养学生分析问题、实现工程应用的能力及方法三、课程目标与相关毕业要求的对应关系注:1.支撑强度分别填写H、M或L (其中H表示支撑程度高、M为中等、L为低);2 .毕业要求须根据课程所在专业培养方案进行描述。
javaWeb中的Request对象Request对象概述⽅向: 浏览器 -> 服务器负责获取客户端的请求数据request对象是从客户端向服务器发出请求,包括⽤户提交的信息以及客户端的⼀些信息。
客户端可通过HTML表单或在⽹页地址后⾯提供参数的⽅法提交数据,然后服务器通过request对象的相关⽅法来获取这些数据。
查看Servlet中的service⽅法得知, Servlet中使⽤的ServletRequest接⼝, ⽽我们使⽤的是ServletRequest的⼦接⼝HttpServletRequest, 它继承⾃ServletRequest , 是与HTTP协议相关的Request请求对象我们使⽤的⼦接⼝HttpServletRequest, 此接⼝对象由Tomcat引擎提供可以实现客户端向服务器发出请求, 请求内容包括: 请求⾏,请求头,请求体http请求Request对象获取请求⾏API⽅法返回值描述getMethod()String获取提交的⽅式 (GET,POST)getRequestURI()String获取请求的参数,请求服务器路径getRequestURL()StringBuffer获取请求的参数,请求服务器路径getQueryString()String获取请求⾏问号后⾯的参数 (GET)getContextPath()String获取WEB应⽤名称代码演⽰protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//request对象⽅法 getMethod()获取客户端的请求⽅式String method = request.getMethod();System.out.println(method);//⽅法 String getRequestURI() 获取请求服务器路径//⽅法 StringBuffer getRequestURL() 获取请求服务器路径String URI = request.getRequestURI();StringBuffer URL = request.getRequestURL();System.out.println("URI=="+URI);// /web04/lineSystem.out.println("URL=="+URL);// http://localhost:8080/web04/line//⽅法 String getQueryString()获取请求⾏,?后⾯的所有参数String query = request.getQueryString();System.out.println(query);//user=tom&pass=123&//获取WEB应⽤名称 String getContextPath()String path = request.getContextPath();System.out.println(path);// /web04//获取WEB应⽤名称, 结合重定向使⽤//response.sendRedirect(request.getContextPath()+"/ddd");}Request对象获取请求头请求头数据格式键值对, k:v指导性信息,指导服务器⽅法返回值描述getHeader(String name)String获得⼀个key对应⼀个value的请求头getHeaderNames()Enumeration获取所有的请求头的键protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {/** Enumeration getHeaderNames() 获取所有的请求头的键* 返回值Enumeration接⼝ (向量枚举)* 集合:1.0-1.1 Enumeration 集合1.2 迭代器* Iterator迭代器接⼝: hasNext() next()* Enumeration接⼝: hasMoreElement() nextElement()*/Enumeration<String> enums = request.getHeaderNames();while (enums.hasMoreElements()){key = enums.nextElement();String value = request.getHeader(key);System.out.println(key+"=="+value);}}Request获取请求参数⽅法返回值描述getParameter(表单中的name值)String获得提交的参数(⼀个name对应⼀个value)getParameterValues(表单中的name值)String[]获得提交的参数(⼀个name对应多个value)getParameterMap()Map<String,String[]>获得提交的参数,将提交的参数名称和对应值存⼊到⼀个Map集合中<body><form action="/web02/param" method="post">⽤户名:<input type="text" name="username"><br/>密 码:<input type="password" name="password"><br/>爱 好:<input type="checkbox" name="hobby" value="Basketball">篮球<input type="checkbox" name="hobby" value="football">⾜球<input type="checkbox" name="hobby" value="pingpang">乒乒球 <br/><input type="submit"></form></body>@WebServlet(urlPatterns = "/param")public class ParamServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//获得提交的参数(⼀个name对应⼀个value)String username = request.getParameter("username");String password = request.getParameter("password");System.out.println(username +" == " +password);//获得提交的参数(⼀个name对应多个value)String[] hobbies = request.getParameterValues("hobby");System.out.println("hobbies = " + Arrays.toString(hobbies));//获得提交的参数,将提交的参数名称和对应值存⼊到⼀个Map集合中Map<String, String[]> map = request.getParameterMap();for(String key : map.keySet()){String[] values = map.get(key);System.out.println(key + " == " + Arrays.toString(values));}}Request对象接收表单请求参数的中⽂乱码处理POST⽅式接收中⽂产⽣乱码的原因:post⽅式提交的数据是在请求体中,request对象接收到数据之后,放⼊request的缓冲区中。
HTML(Hyper Text Markup Language):超文本标记语言,它是可以直接在浏览器上执行的语言。
它的标签对大小写不敏感,基本上它的标签是成对儿出现的基本结构:<html><head><title></title></head><body></body></html>用什么工具来编写html:记事本、editplus、Dreamweaver、MyEclipseHTML文件的扩展名:.html .htmHead: 可以写javascript代码、CSS样式等页面属性相关的内容Title:网页的标题Body:页面显示的内容都是写在body中的。
Body的属性:bgcolor:背景色text:文字颜色background:背景标题标签:号码越大,字体越小<h1></h1>…..<h6></h6>align属性可以确定标题在页面中的位置lefth居左center居中right居右<br/>换行<hr/>横线<p></p>段落标签<b>加粗</b><u>下划线</u><i>斜体</i><sup>上标</sup><sub>下标</sub><s>删除线</s><font></font>通过size、color、face可以设置文字的大小、颜色、字体<center></center>该标签中的内容都是居中的<a></a>超链接href:链接地址target:_self在本窗口中打开(默认的)_blank在新窗口中打开title:当鼠标悬停在链接上面的时候提示的文字name:链接的名字,方便位置查找<img/>图片标签src=”图片的位置”title: 当鼠标悬停在链接上面的时候提示的文字width:宽height:高有序列表:<ol type=”” start=””><li></li><li></li><li></li></ol>Type:默认是数字还可以写成a A i IStart:开始位置无序列表:<ul type=””><li></li><li></li><li></li></ul>Type:默认是disc 也可以写成circle square自定义列表:<dl><dt></dt><dd></dd><dd></dd></dl>服务器:应用程序的代码编写完成后,要打包,然后将打好的包部署到服务器上,开启服务器,才能把软件运行起来BEA:WebLogic, JBossIBM:WebsphereApache: apache tomcatLocalhost表示本机地址,也可以使用127.0.0.1端口号:用来唯一的标识在一台计算机上的应用<div></div>其实它就是页面中的一片区域,可以帮助我们来完成样式的设置<span></span>可以设置一段内容的样式HTML注释<!-- -->HTML用<table></table>来表示表格<tr></tr>表示行<td></td>表示列border:边框width:宽align:位置bgcolor:背景色cellspaceing:单元格之间的距离cellpadding:文字和单元格之间的距离<table border="1" width="50%" align="center" bgcolor="yellow" cellspacing="10" cellpadding="10" rules="cols">colspan合并列rowspan合并行<form></form>表单表单是用来收集信息action:表单提交的路径method:get/post表单提交的形式<form action="" method= "get" > </form><input/>标签有type属性,该属性值的不同所展示的效果也不同Text:文本框value表示文本框中显示的内容readonly表示只读,值可以是readonly也可以是truedisabled表示此文本框不可用,值可以是disabled也可以是true<input type="button" value="注册" disabled="disabled"/>Size表示文本框的长度maxlength表示方框对字符的限制数<input type="text" maxlength="15" size="30">Button:按钮value表示按钮上显示的文字<input type="button" value = “按钮” maxlength="15" size="30">Password:密码<input type="password" maxlength="15" size="30" />Radio:单选钮name要给一个统一的值来表示一组单选钮checked是否被选中,值可以是true<input type="radio" name="aa" value="1" checked="checked">checkbox:复选框, checked属性同radio<input type="checkbox" checked="checked" />hidden:隐藏域submit:提交按钮reset:重置按钮<input type="submit" value="提交" /><input type="reset" value="重置" />image:图片<input type="image" src="../img/reg.gif"><img src="../img/reg.gif"/><select></select>下拉列表Select下有属性multiple可以展开下拉列表项Select下的第一对<option></option>表示一个下拉项Selected属性表示该项是否被选中<select multiple=”multiple”><option value="a">南通</option><option>苏州</option><option selected="selected">南京</option></select><textarea></textarea>文本域<textarea rows="3" cols="40">求职信息必须真实</textarea><frameset></frameset>框架在里面可以写<frame>也可以嵌套<frameset>Noresize:边框是否可以移动<frameset rows="20%,*" bordercolor="red"><frame src="top.html" noresize="noresize"/><frameset cols="20%,*" bordercolor="green"><frame src="left.html" noresize="noresize"/><frame src="main.html" name="main"/></frameset></frameset><title>top.html</title><body bgcolor="pink"><font size="10" color="green" face="隶书">欢迎访问本页面</font></body><title>left.html</title><body><a href="myform.html" target="main">链接到页面</a><br/><a href="#">链接到页面</a><br/></body><iframe></iframe>在页面中的一片区域嵌入另一个页面src:嵌入页面的地址<iframe width="500" height="300" src="" name="frame"></iframe> CSS:(Cascading Style Sheet)层叠样式表作用:可以使表现与结构分离CSS代码有三种形式嵌入到页面:内联样式:<html标签sytle=”属性:值;……..”></html标签>嵌入样式:<style type=”text/css”>选择器{样式。