一、
我们先思考一下,我们这个网络访问的过程是若何的?
1、http协议特点。
超文本传输协议 (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