网站vip怎么做,狍与女人做爰网站,excel网站链接怎么做批量,百度订单售后电话一 Http协议概述 HTTP 是一个属于应用层的面向对象的协议#xff0c;是一个基于请求与响应模式的、无状态的、应用层的协议#xff0c;常基于TCP 的连接方式。 HTTP 协议的主要特点可概括如下#xff1a; 1.支持客户/服务器模式。 2.简单快速#xff1a;客户向服务器请求服…
一 Http协议概述 HTTP 是一个属于应用层的面向对象的协议是一个基于请求与响应模式的、无状态的、应用层的协议常基于TCP 的连接方式。 HTTP 协议的主要特点可概括如下 1.支持客户/服务器模式。 2.简单快速客户向服务器请求服务时只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP 协议简单使得HTTP 服务器的程序规模小因而通信速度很快。 3.灵活HTTP 允许传输任意类型的数据对象。正在传输的类型由Content-Type 加以标记。 4.无连接无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求并收到客户的应答后即断开连接。采用这种方式可以节省传输时间。 5.无状态HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息则它必须重传这样可能导致每次连接传送的数据量增大。另一方面在服务器不需要先前信息时它的应答就较快。故而用cookies与session来确定其状态 请求 HTTP 请求由三部分组成分别是请求行、消息报头、请求正文。 请求行 请求行以一个方法符号开头以空格分开后面跟着请求的URI 和协议的版本格式如下 Method Request-URI HTTP-Version CRLF。 其中Method 表示请求方法Request-URI 是一个统一资源标识符HTTP-Version 表示请求的HTTP 协议版本CRLF 表示回车和换行除了作为结尾的CRLF 外不允许出现单独的CR 或LF 字符。 请求方法 所有方法全为大写,有多种各个方法的解释如下 GET 请求获取Request-URI 所标识的资源 POST 在Request-URI 所标识的资源后附加新的数据 还有HEAD、PUT、DELETE等方法 (消息报头)请求报头 请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。常见的请求报头域有Accept、Accept-Charset、Accept-Encoding、Accept-Language、Authorization、Host发送请求时该报头域是必需的、User-Agent 请求报头举例 GET /form.html HTTP/1.1 (CRLF) Accept:image/gif,image/x-xbitmap,image/jpeg,application/x-shockwave-flas h,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword, */* (CRLF) Accept-Language:zh-cn (CRLF) Accept-Encoding:gzip,deflate (CRLF) If-Modified-Since:Wed,05 Jan 2007 11:21:25 GMT (CRLF) If-None-Match:W/80b1a4c018f3c41:8317 (CRLF) User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.0) (CRLF) Host:www.guet.edu.cn (CRLF) Connection:Keep-Alive (CRLF) (CRLF)
二 request.setAttribute()用法
JSP1代码 String [] testnew String[2]; test[0]1; test[1]2; request.setAttribute(test,test) ; response.sendRedirect(jsp2.jsp);
JSP2代码 String test[](String[])request.getAttribute(test); out.print(test);
为什么JS P2中会找不到test? 用来在同一个request周期中保存变量使用。比如servlet调用后推出JSP页面这是一个request周期如果在Jsp页面需要servlet中的一些处理结构就从request.getAttribute中获取。 sendRedirect()方法是通过浏览器重定向的所以第二个JSP页面中获得的request并非是前一个页面的request两次请求生成了前后两个不同的 request对象了。 用RequestDispatcher接口的forward()方法试试看。
List list new CommonsDao().getAllCommons(); request.setAttribute(CommonsList, list); request.getRequestDispatcher(View.jsp).forward(request, response);
request.getAttribute()与request.setAttribute() request.getAttribute(nameOfObj)可得到JSP页面一表单中控件的Value。
其实表单控件中的Object的 name与value是存放在一个哈希表中的所以在这里给出Object的name会到哈希表中找出对应它的value。
而不同页面间传值使用request.setAttribute(position, nameOfObj)时只会从a.jsp到b.jsp一次传递之后这个request就会失去它的作用范围再传就要再设一个 request.setAttribute()。而使用session.setAttribute()会在一个过程中始终保有这个值。
P.S.JavaScript与JSP中不能相互传值因为JavaScript运行在客户端而JSP运行在服务器端。若想使它们之间可以相互传递参数可以在JSP中设置一个hidden控件用它的value结合上面所说的用法来传递所需的数值 注request.sendRedirect 与 request.getRequestDispatcher.forward 的区别 request.getAttribute()与request.setAttribute() request.getAttribute(nameOfObj)可得到JSP页面一表单中控件的Value。其实表单控件中的Object的 name与value是存放在一个哈希表中的所以在这里给出Object的name会到哈希表中找出对应它的value。 而不同页面间传值使用request.setAttribute(position, nameOfObj)时只会从a.jsp到b.jsp一次传递之后这个request就会失去它的作用范围再传就要再设一个 request.setAttribute()。而使用session.setAttribute()会在一个过程中始终保有这个值。 P.S.JavaScript与JSP中不能相互传值因为JavaScript运行在客户端而JSP运行在服务器端。若想使它们之间可以相互传递参数可以在JSP中设置一个hidden控件用它的value结合上面所说的用法来传递所需的数值。 request.getRequestDispatcher()是请求转发前后页面共享一个request response.sendRedirect()是重新定向 前后页面不是一个request sendRedirect是通知IE再次提交一个http请求 dispatcher是直接转到目的地址最直接得表现 ,应该是dispatcher后的IE地址栏地址是不变的 request.getRequestDispatcher()是服务器端跳转 response.sendRedirect()是客户端跳转 sendRedirect()是请求从定向和超连接是一个意思比如你在A页面中写一个request.setAtributesendRedirect到B页面,就是说服务器从A页面中给你一个response然后你的浏览器再去request到B页面,由于有两次request和response是不能在B页面取到request.setAtribute里的值能从地址栏看到url的改变 request.getRequestDispatcher().forward(request,response)是请求分发器 比如你在A页面中写一个request.setAtributerequest.getRequestDispatcher().forward(request,response)到B页面那就是说服务器给你的response是B页面的并且只有一次request和response所以是能在B页面取到request.setAtribute里的值地址栏的url仍然是A页面的