struts2请求相关知识
-
Struts2的环境需求...Struts2的环境需求:1、Servlet API 2.4及以上;2、JSP API 2.0及以上;3、JDK5及以上<br> PS:在Struts2中会用到Annotation(注解),所以JDK版本需要1.5及以上<br> 搭建Struts2环境步骤如下: [ 查看全文 ] ...................................................................................
-
struts2学习笔记(1)主要内容: 1.struts2的工作原理 2.web.xml的配置说明 3.struts.xml的配置说明 词汇: filter:过滤器 Interceptors:拦截器 proxy:代理 execute:实施 一、Struts2的工作原理 1.客户发送一个请求。 2.这个请求通过一系列的过滤器。 3.过滤器询问ActionMapper,决定调用那个Action 4.过滤器把调用某个action过的请求交给ActionProxy 5.ActionProxy通过Configuration Manager询问配置文件,找到需要调用的Action类 6.执行该Action类。返回JSP或者FreeMarker给用户 二、实现第一
-
Struts2的工作原理及文件结构一 工作原理 在Struts2框架中的处理大概分为以下几个步骤 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action 4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给Act
-
SpringMVC与Struts2区别与比较总结、Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。2、由上边原因,SpringMVC的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量,而Struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的,这不会影响程序运行,却给我们编码 读程序时带来麻烦,每次来了请求就创建一个Action,一个Action对象对应一个request上下文。3、由于Struts2需要针对每个request进行封装,把request,session等se
struts2请求相关课程
struts2请求相关教程
- 3. GET 请求 在数据交互中,我们经常会使用 GET 请求来查询数据,现在假设我们有一个简单的GET请求,查询接口 http://localhost:8080/simple/get,附带 query参数 为 mk=慕课网,那么我们可以构建代码块:xhr.open("GET", "http://localhost:8080/simple/get?mk=慕课网");xhr.send();查看效果图:从上图可以看到,浏览器控制台面板上显示,我们进行 GET 发送请求的过程中,在 Headers 上,可以看到 Query String Parameters 附带的信息完全正确,我们的 GET 请求构造成功。
- 2. 请求头 从第二行开始,都是请求头部的信息,比如我第二行的 Host: www.imooc.com,用来表明请求的地址是什么。还有一些其他的信息,比如浏览器可接受的语言类型,字体编码,Cookie 等信息。接下来是空行,不必多说。最后面的一部分是我们的请求的具体内容,请求内容可以是表单,也可以是 JSON 等格式。
- 2.1 请求协议 请求协议是 Zookeeper Client 向 Zookeeper Server 发送请求时所使用的协议,包含了请求头和请求体。在 Zookeeper 中使用了 RequestHeader 类作为请求头。// RequestHeader 类实现了 Record 接口来进行序列化操作public class RequestHeader implements Record{ // 客户端序号,记录客户端请求发起的顺序 private int xid; // 请求类型 private int type;}而请求体会根据不同的请求类型来进行封装,接下来我们以会话创建、节点查询、节点更新三种类型的请求分别介绍相对应的请求体。会话创建请求当 Zookeeper 客户端向 Zookeeper 服务端发送会话创建的请求时,使用 ConnectRequest 类来封装请求体:// ConnectRequest 类实现了 Record 接口来进行序列化操作public class ConnectRequest implements Record { // 请求协议的版本信息 private int protocolVersion; // 最后一次接收到响应的服务端 zxid private long lastZxidSeen; // 会话超时时间 private int timeOut; // 会话 id private long sessionId; // 密码 private byte[] passwd;}节点查询请求当 Zookeeper 客户端向 Zookeeper 服务端发送节点查询的请求时,使用 GetDataRequest 类来封装请求体:// GetDataRequest 类实现了 Record 接口来进行序列化操作public class GetDataRequest implements Record { // 节点全路径 private String path; // 是否对该节点开启监听 private boolean watch;}节点更新请求当 Zookeeper 客户端向 Zookeeper 服务端发送节点更新的请求时,使用 SetDataRequest 类来封装请求体:// SetDataRequest 类实现了 Record 接口来进行序列化操作public class SetDataRequest implements Record { // 节点全路径 private String path; // 节点更新的数据 private byte[] data; // 节点更新后的版本,也就是在当前版本上加 1 private int version;}介绍了 Zookeeper 的请求协议之后,接下来我们继续学习 Zookeeper 的响应协议。
- 3.2 请求结果 如图所示,请求正确接口的 Ajax 请求都得到了正确的返回。而访问服务端暂时没有的接口则返回了 404 错误。同时,GET 请求中没有显式提供 method,默认配置也能够及时生效,默认为 GET。
- 1.1 Http 请求 请求头的内容有很多,这里给大家做一个记录当做资料,不需要都记住,在实际使用中用到可以过来查阅即可。Header解释示例Accept指定客户端能够接收的内容类型Accept: text/plain, text/htmlAccept-Charset浏览器可以接受的字符编码集。Accept-Charset: iso-8859-5Accept-Encoding指定浏览器可以支持的web服务器返回内容压缩编码类型。Accept-Encoding: compress, gzipAccept-Language浏览器可接受的语言Accept-Language: en,zhAccept-Ranges可以请求网页实体的一个或者多个子范围字段Accept-Ranges: bytesAuthorizationHTTP授权的授权证书Authorization: Basic QWxhZIRpbjpvcGAuIHNlc2FtZQ==Cache-Control指定请求和响应遵循的缓存机制Cache-Control: no-cacheConnection表示是否需要持久连接。(HTTP 1.1默认进行持久连接)Connection: closeCookieHTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。Cookie: $Version=1; Skin=new;Content-Length请求的内容长度Content-Length: 348Content-Type请求的与实体对应的MIME信息Content-Type: application/x-www-form-urlencodedDate请求发送的日期和时间Date: Tue, 15 Nov 2010 08:12:31 GMTExpect请求的特定的服务器行为Expect: 100-continueFrom发出请求的用户的EmailFrom: user@email.comHost指定请求的服务器的域名和端口号Host: https://www.imooc.com/wiki/androidlesson/If-Match只有请求内容与实体相匹配才有效If-Match: “737060cd8c284d8af7ad3082f209582d”If-Modified-Since如果请求的部分在指定时间之后被修改则请求成功,未被修改则返回304代码If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMTIf-None-Match如果内容未改变返回304代码,参数为服务器先前发送的Etag,与服务器回应的Etag比较判断是否改变If-None-Match: “737060cd8c284d8af7ad3082f209582d”If-Range如果实体未改变,服务器发送客户端丢失的部分,否则发送整个实体。参数也为EtagIf-Range: “737060cd8c284d8af7ad3082f209582d”If-Unmodified-Since只在实体在指定时间之后未被修改才请求成功If-Unmodified-Since: Sat, 29 Oct 2010 19:43:31 GMTMax-Forwards限制信息通过代理和网关传送的时间Max-Forwards: 10Pragma用来包含实现特定的指令Pragma: no-cacheProxy-Authorization连接到代理的授权证书Proxy-Authorization: Basic QWxhZGbpbjpAcGVuIHNlc2FtZQ==Range只请求实体的一部分,指定范围Range: bytes=500-999Referer先前网页的地址,当前请求网页紧随其后,即来路https://www.imooc.com/wiki/androidlesson/TE客户端愿意接受的传输编码,并通知服务器接受接受尾加头信息TE: trailers,deflate;q=0.5Upgrade向服务器指定某种传输协议以便服务器进行转换(如果支持)Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11User-AgentUser-Agent的内容包含发出请求的用户信息User-Agent: Mozilla/5.0 (Linux; X11)Via通知中间网关或代理服务器地址,通信协议Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)Warning关于消息实体的警告信息Warn: 199 Miscellaneous warning
- 1. 请求行 我们先来看下第一部分,请求行:GET / HTTP/1.1请求行里的 GET 是请求方法。请求方法主要是告诉服务器端,客户端要对资源实行什么样的具体操作,方便服务器进行响应的处理。HTTP 1.0 规定的方法: GET,POST,HEAD;HTTP 1.1 新增的请求方法:OPTIONS,PUT,DELETE,TRACE,CONNECT;HTTP 规定的主要请求如下表所示,我们主要使用的实际上就是 get,post 这两个请求。常用的请求方法序号请求方法方法描述1GET用来获取服务器的信息。2POST用于创建一个文件,请求是非幂等的。3HEAD通过这个来获取响应的报头文件,不包含的具体内容。4PUT主要是用来更新文件,这个方法对服务器来讲,应该是幂等的。5DELETE这个命令是用来请求让服务器端来删除特定的信息。6OPTIONS这个方法可以让客户端可以查看服务器可以提供的请求方法等信息。7TRACE这个主要用于测试和诊断,可以回显服务器的信息。8CONNECTHTTP/1.1协议中预留的请求方法,不常使用。Get 后面的 / 是来标明请求的资源信息,我们这里是想访问慕课网的主页,所以写 /。 HTTP/1.1 指的是 HTTP 的协议版本。Tips:HTTP 是在 1990 左右提出的协议,距今已经有几十年的历史了。广泛使用的版本有 1.0,1.1,现在也有 2.0 的版本,不过还没有普及。除此之外,对安全要求高的一些网站,也有的开始采用 HTTPS 协议进行传输。HTTPS 提供了更多的安全校验,是利用 SSL/TLS 技术进行加密的,相对于普通的 HTTP,更加安全,隐私更不容易泄露。好了说完了请求行,让我们来介绍一下请求头部。
struts2请求相关搜索
-
s line
safari浏览器
samba
SAMP
samplerate
sandbox
sanitize
saper
sas
sass
save
smarty模板
smil
smtp
snapshot
snd
snmptrap
soap
soapclient
soap协议