三沣开发知识 购物 网址 游戏 小说 歌词 地图 快照 股票 美女 新闻 笑话 | 汉字 软件 日历 阅读 下载 图书馆 开发 租车 短信 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题
autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程 CSS/HTML/Xhtml
html5 CSS XML/XSLT Dreamweaver教程 经验交流 开发者乐园 Android开发资料
站长资讯 .NET新手 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA VisualStudio ASP.NET-MVC .NET控件开发 EntityFramework WinRT-Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动 Html-Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP OracleERP DynamicsCRM K2 BPM 信息安全 企业信息 Android开发 iOS开发 WindowsPhone WindowsMobile 其他手机 敏捷开发 项目管理 软件工程 SQLServer Oracle MySQL NoSQL 其它数据库 Windows7 WindowsServer Linux
  IT知识库 -> Java -> 使用Servlet处理HTTP请求 -> 正文阅读
 

[Java]使用Servlet处理HTTP请求

使用Servlet处理HTTP请求 当服务器接收到一个HTTP请求,判断请求的是静态网页还是动态网页 如果是静态网页则由服务器查询资源文件并响应给客户端,如果是动态,交由web容器处理 web容器找到对应的Servlet,调用HttpServlet的service(),再调用一个实例对象的service(),再具体调用doXXX方法 如果能处理,就将响应XMLHttpResponse对象的属性处理,不能处理就将请求转发(需要得到一个具体路径的RequestDispatcher对象)。
具体方法如下:
请求行相关方法:
getMethod()获得请求行的方法,如:get,post等 getRequestURI()获得请求的统一资源标识符(相对的,不包含QueryString)(URL是一种具体的URI,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL 则必须提供足够的信息来定位,所以,是绝对的,而通常说的relative URL,则是针对另一个absolute URL,本质上还是绝对的。),例如/lovo/index.html getRequestURL()获得统一资源定位符(用于绝对位置定位,即不知道根目录也能定位,可以有?和后面的数据)例如http://127.0.0.1:8080/lovo/index.html?name=string。 getProtocol()获取协议及版本。 getContextPath()获得上下文路径,即虚拟路径,web应用的供外部访问的根路径,如 http://localhost:8080/sun 的/sun getServletPath()获取Servlet 的映射路径。
请求头相关方法:
getHeader(String name) 返回指定的请求头的值,如request.getHeader("Accept");访问Accept的HTTP头;request.getHeader("Host")输出:192.168.0.1:8080;request.getHeader("Referer");request.getHeader("Accept-Language");request.getHeader("Accept-Encoding");request.getHeader("User-Agent");request.getHeader("Connection");request.getHeader("Cookie")
getHeaderNames() 该方法获得一个Enumeration包含特定请求中接受到的所有请求头的名称
getIntHeader(String name)   获取特定请求头的值,并转化为INT类型
getDateHeader(String name) 获得特定请求头的值,并转化为Date类型
消息体相关方法:
getParameter(String name) 获取表单参数的值 getParameterValues(String parameterName) 获取同一个参数名的多个参数值返回字符串数组对象 getParameterNames() 以枚举的方式返回请求中所有的表单参数名列表
  
请求转发和请求范围:
请求转发:
getRequestDispatcher(String path) 返回给定路径的RequestDispatcher对象
getNamedDispatcher(String name) 返回某个名称的Servlet的RequestDispatcher 对象
forward(ServletReqeust,ServletResponse) 派发请求和响应对象到RequestDispatcher 对象所确定的新资源
include(ServletReqeust,ServletResponse) 类似forward() 不过有一些限制,该方法包含服务器端得资源,被包含的资源不能改变响应状态代码或设置头信息
请求范围:
请求范围仅仅作用在与一个请求相关的两个资源之间,如果需要继续传递到第三个或者更多的Servlet,应当继续调用HttpServletRequest对象的setAttribute()和getAttribute()方法
附:request方法大全:
  协议:request.getProtocol()
输出:HTTP/1.1
服务器信息 getServletConfig().getServletContext().getServerInfo()
输出:JavaServer Web Dev Kit/1.0 EA (JSP 1.0; Servlet 2.1; Java 1.2; Windows NT 5.0 x86; java.vendor=Sun Microsystems Inc.)
客户端IP: request.getRemoteAddr()
输出:192.168.0.106
客户端主机名:request.getRemoteHost()
输出:abc
编码:request.getCharacterEncoding()
输出:GB2312
所发送的字节数:request.getContentLength()
输出:-1
数据类型:request.getContentType()
输出:null
Authorization头:request.getAuthType()
输出:basic或者digest
请求类型:request.getMethod()
输出:通常是GET或者POST。但偶尔也会出现HEAD,PUT, Delete,OPTIONS,或者 TRACE.
URL中的附加路径信息: request.getPathInfo()
输出:URL中Servlet路径之后、查询字符串之前的那部分。
request.getPathTranslated()
映射到服务器实际路径之后的路径信息。
request.getQueryString()
这是字符串形式的附加到URL后面的查询字符串,数据仍旧是URL编码的。在Servlet中很少需要用到未经解码的数据,一般使用getParameter访问各个参数。
request.getRemoteUser()
如果提供了Authorization头,则代表其用户部分。它代表发出请求的用户的名字。
request.getRequestedSessionId() 
输出SessionId
request.getRequestURI()
请求URL
request.getServletPath()
URL中调用Servlet的那一部分,不包含附加路径信息和查询字符串。
request.getHeader("Accept")
访问Accept的HTTP头。
request.getHeader("Host")   
输出:192.168.0.1:8080
request.getHeader("Referer")
      
request.getHeader("Accept-Language")
request.getHeader("Accept-Encoding")   
request.getHeader("User-Agent")
request.getHeader("Connection")
request.getHeader("Cookie")
   
返回协议名称:request.getScheme()
输出:HTTP
Web服务器名字:request.getServerName()
输出:192.168.0.1
服务器监听的端口:request.getServerPort()
输出:8080
原文地址:获取request里的所有参数名及其参数值作者:橡皮擦
request里有两个方法
request.getParameterMap();
request.getParameterNames();
我想用这两种方法获取。
1。用request.getParameterNames();
Enumeration enu=request.getParameterNames();
while(enu.hasMoreElements()){
String paraName=(String)enu.nextElement();
System.out.println(paraName+": "+request.getParameter(paraName));
}
2。request.getParameterMap();
访问URL:http://127.0.0.1:8080/test.jsp?a=1&b=2&c=3
test代码:
Map map=request.getParameterMap();
    Set keSet=map.entrySet();
    for(Iterator itr=keSet.iterator();itr.hasNext();){
        Map.Entry me=(Map.Entry)itr.next();
        Object ok=me.getKey();
        Object ov=me.getValue();
        String[] value=new String[1];
        if(ov instanceof String[]){
            value=(String[])ov;
        }else{
            value[0]=ov.toString();
        }
        for(int k=0;k<value.length;k++){
            System.out.println(ok+"="+value[k]);
        }
      }
  
  Java 最新文章
初入山门,需记门规
java 操作本地数据库 mysql
spring boot 整合 mybatis
单表(SSM、SpringBoot、SpringCloud、Free
Mybatis框架中Mapper动态代理方式
IDEA报错:Error starting ApplicationCont
多订单多支付方式分配金额问题
从源码来理解slf4j的绑定,以及logback对配
ThreadLocal的使用及介绍
java基础知识(一)
上一篇文章      下一篇文章      查看所有文章
加:2016-03-28 20:30:05  更:2017-05-15 10:19:02 
 
技术频道: 站长资讯 .NET新手区 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA Visual Studio ASP.NET MVC .NET控件开发 Entity Framework WinRT/Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动设计 Html/Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP Oracle ERP Dynamics CRM K2 BPM 信息安全 企业信息化其他 Android开发 iOS开发 Windows Phone Windows Mobile 其他手机开发 敏捷开发 项目与团队管理 软件工程其他 SQL Server Oracle MySQL NoSQL 其它数据库 Windows 7 Windows Server Linux
脚本语言: vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题 autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程
网站开发: CSS/HTML/Xhtml html5 CSS XML/XSLT Dreamweaver教程 经验交流 开发者乐园 Android开发资料
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2017年12日历
2017-12-14 6:38:37
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT知识库