一、

我们先思考一下,我们这个网络访问的过程是若何的?

1、http协议特点。

jsp保留字内置对象的特色 Ruby

超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网做事器之间相互通信的规则,通过因特网传送万维网文档的数据传送协议。
q超文本传输协议 q 无状态协议 q 用于通过 Internet 发送要乞降相应 q 利用端口吸收和发送,默认为80端口HTTP是基于客户/做事器模式且是面向连接的,HTTP能够传送任意类型数据工具。
HTTP连接是一种一次性连接,每次连接只处理一个要求,HTTP是一种无状态协议,即做事器不保留与客户交易时的任何状态,

2、http头

我们平时上网觉得便是输入网址,然后从做事器下载网页显示就可以了,事实这个过程非常繁芜,须要传输的内容也非常多,在一个每一次访问都是一个要求(request),做事器对这个要求都会做出应答(response),在这个过程中传输的内容都是根据http的协议封装到http的头中的。
http的头有其固定个格式规范,从这个头里面我们可以得到很多信息,虽然大部分信息对普通用户而言都是无关主要的,但是对我们程序员来说可能是非常有用的。
头的内容都已经封装到jsp的内置工具里了,以是我们并不须要自己手动的去解析它,这里我们只须要大略的理解就可以了。

二、内置工具

qJSP 隐式工具是 Web 容器加载的一组类 q它不像一样平常的Java工具那样用”new”去获取实例,而是可以直接在JSP页面利用的工具 q隐式工具的名称是 JSP 的保留字 qJSP 利用 Java 定义的隐式工具来访问网页的动态内容。

事实上我们已经利用过jsp的隐式工具了,比如out工具,不是多有的工具在利用前都必须先new出来吗,为什么这些工具不须要呢,你可以再去查看jsp转译后的java文件,事实这个java文件不是一个普通的java文件,它已经帮助我们布局了很多很有用的工具了,所有这些工具我们并不须要自己手动的去new出来,就可以直策应用了。

常用的隐式工具有:

输入/输出工具:request,response,out。

浸染域通信工具:session,application,pageContext。

Servlet 工具:page,config。

缺点工具:exception。

上面这些工具我们往后都会学习到,这里先讲解一下exception、request和response三个内置工具。

1、exception工具

qexception工具用于处理 JSP 页面中的缺点 qexception 工具用于访问实行 JSP 的过程中引发的非常 qexception 工具是 java.lang.Throwable 类的实例。

先要修正page指令为isErrorPage=\"大众true\"大众

然后就可以在页面上面直接打印了。

<body>

<%=exception %>

</body>

2、request工具

request是一个非常主要的工具,它会把用户的要求操作封装在这个工具中。
http头中一些很有用的信息都可以取得,详细方法如下:

String encodString = request.getCharacterEncoding();//要求编码

int contentLength = request.getContentLength();//要求内容的长度,get提交是-1,post则有长度

String ContentType = request.getContentType();//要求内容的类型,get提交是null,post则为application/x-www-form-urlencoded

String contextPath = request.getContextPath();//页面传来的要求路径,form中的action

String LocalAddr = request.getLocalAddr();

String LocalName = request.getLocalName();

int LocalPort = request.getLocalPort();

String RemoteAddr = request.getRemoteAddr();// 得到客户真个IP地址

String RemoteHost = request.getRemoteHost();// 得到客户端电脑的名字,若失落败,则返回客户端电脑的IP地址

String RemoteUser = request.getRemoteUser();

String Method = request.getMethod();//页面提交的方法

String QueryString = request.getQueryString();//要求字符串,get提交则有,post为null

String RequestURI = request.getRequestURI();// 得到发出要求字符串的客户端地址

String ServerName = request.getServerName();// 得到做事器的名字

int ServerPort = request.getServerPort();// 得到做事器的端口号

String ServletPath = request.getServletPath();// 得到客户端所要求的脚本文件的文件路径

System.out.println(\"大众编码:\公众 + encodString + \"大众;要求内容的长度:\"大众 + contentLength

+ \"大众;要求类型:\公众 + ContentType + \"大众;要求路径:\公众 + contextPath);

System.out.println(\公众本地地址:\公众 + LocalAddr + \"大众;本地名称:\公众 + LocalName

+ \"大众;本地端口:\"大众 + LocalPort);

System.out.println(\"大众远程地址:\公众 + RemoteAddr + \公众;远程用户名:\"大众 + RemoteUser

+ \公众;远程端口:\公众 + RemoteHost);

System.out.println(\"大众要求方法:\公众 + Method);

System.out.println(\"大众要求字符串:\"大众 + QueryString + \"大众;要求url:\"大众 + RequestURI);

System.out.println(\公众做事名称:\公众 + ServerName + \"大众;做事端口:\"大众 + ServerPort);

System.out.println(\"大众路径:\"大众 + ServletPath);

String user_agent = request.getHeader(\公众User-agent\公众);// 返回客户端浏览器的版本号、类型

System.out.println(\公众user_agent>>\公众 + user_agent);

// 返回所有request header的名字,结果集是一个Enumeration(列举)类的实例

System.out.println(\"大众浏览器和客户真个信息\"大众);

Enumeration enumeration = request.getHeaderNames();

while (enumeration.hasMoreElements()) {

String elent = (String) enumeration.nextElement();

System.out.println(elent + \公众>>\"大众 + request.getHeader(elent));

}

其余还有三个很有用的方法是

request.getParameter(\"大众uanme\公众);

request.setAttribute(\"大众name\"大众, \"大众value\"大众);

request.getAttribute(\"大众name\公众);

小编整理了一些java进阶学习资料和口试题,须要资料的请私信小编回答java