1、request对象
request对象封装了客户端的请求信息,服务端通过request对象可以了解到客户端的需求,然后做出响应。request对象是
HttpServletRequest(接口)的实例。HttpServletRequest接口继承自ServletRequest接口,只是增加了一
些HTTP相关的方法。所谓的request(在JSP中使用的)其实只是规范中的一个名称而已,它是一个对象,但并不是由SUN提供,而是由各个不同的
Servlet提供商编写的,SUN只是规定这个类要实现HttpServletRequest接口,并且规定了各个方法的用途,但具体的实现则由各个提
供商自己决定。
(1)setAttribute(String name, Object value) 和 getAttribute(String name)
(2)getParameter(String)
获得客户端传送给服务端的参数值,该参数由name指定。
(3)void setCharacterEncoding(String charEncoding)和String getCharacterEncoding()
前者用来设置请求的字符编码格式,后者返回请求的当前字符编码格式。
(4)getContextPath()和getRealPath()
前者获取相对路径,后者回去绝对路径。
(5)以下方法用来获取客户端请求中的相关信息:
int getContentLength() 返回请求体的长度(以字节数)。
String getContentType() 得到请求体的MIME类型。
String getProtocol() 返回请求用的协议类型及版本号。
String getScheme() 返回请求用的协议名,如:http.https及ftp等。
String getServerName() 返回接受请求的服务器主机名
int getServerPort() 返回服务器接受此请求所用的端口号
String getRemoteAddr() 返回发送此请求的客户端IP地址
String getRemoteHost() 返回发送此请求的客户端主机名
String getRealPath(String path) 返回一虚拟路径的真实路径
例子
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<%@ page import="java.util.Enumeration" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
<Font size=5> <BR>
客户使用的协议是:
<% String protocol=request.getProtocol();
out.println(protocol);
%> <BR>
获取接受客户提交信息的页面:
<% String path=request.getServletPath();
out.println(path);
%> <BR>
接受客户提交信息的长度:
<% int length=request.getContentLength();
out.println(length);
%> <BR>
客户提交信息的方式:
<% String method=request.getMethod();
out.println(method);
%> <BR>
获取HTTP头文件中User-Agent的值:
<% String header1=request.getHeader("User-Agent");
out.println(header1);
%> <BR>
获取HTTP头文件中accept的值:
<% String header2=request.getHeader("accept");
out.println(header2);
%> <BR>
获取HTTP头文件中Host的值:
<% String header3=request.getHeader("Host");
out.println(header3);
%> <BR>
获取HTTP头文件中accept-encoding的值:
<% String header4=request.getHeader("accept-encoding");
out.println(header4);
%> <BR>
获取客户的IP地址:
<% String IP=request.getRemoteAddr();
out.println(IP);
%> <BR>
获取客户机的名称:
<% String clientName=request.getRemoteHost();
out.println(clientName);
%> <BR>
获取服务器的名称:
<% String serverName=request.getServerName();
out.println(serverName);
%> <BR>
获取服务器的端口号:
<% int serverPort=request.getServerPort();
out.println(serverPort);
%> <BR>
获取客户端提交的所有参数的名字:
<% Enumeration enume=request.getParameterNames();
while(enume.hasMoreElements())
{String s=(String)enume.nextElement();
out.println(s);
}
%> <BR>
获取头名字的一个枚举:
<% Enumeration enum_headed=request.getHeaderNames();
while(enum_headed.hasMoreElements())
{String s=(String)enum_headed.nextElement();
out.println(s);
}
%> <BR>
获取头文件中指定头名字的全部值的一个枚举:
<% Enumeration enum_headedValues=request.getHeaders("cookie");
while(enum_headedValues.hasMoreElements())
{String s=(String)enum_headedValues.nextElement();
out.println(s);
}
%> <BR>
</Font>
</body>
</html>
HttpServletRequest的API文档:
http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletRequest.html
2、response对象
response对象包含了响应客户端请求的有关信息,它是HttpServletResponse的实例。
(1)String getCharacterEncoding()
返回响应用的是何种字符编码,该输出同page编译指令的pageEncoding是相关的。
(2)ServletOutputStream getOutputStream()
返回响应的一个二进制输出流
(3)PrintWriter getWriter()
返回可以向客户端输出字符的一个对象
(4)void setContentLength(int len)
设置响应头长度
(5)void setContentType(String type)
设置响应的MIME类型
(6) sendRedirect(java.lang.String location)
重新定向客户端的请求
3、out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象.
<%
out.println("<html>");
out.println("<head>");
out.println("<title>");
out.println("<test");
out.println("</title>");
out.println("</head>");
out.println("<body>");
out.println("<hl>");
out.println("out对象示例");
out.println("</hl>");
out.println("</body>");
out.println("</html>");
%>
4、application/session对象
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户
的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭
决定了application对象的生命。它是ServletContext类的实例。
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例。
您是第
<%
String count=(String)application.getAttribute("count");
if(count==null){
count="1";
}else{
count=Integer.parseInt(count)+1+"";
}
application.setAttribute("count",count);
%>
<% out.println(count); %>
访问者
session.isNew()方法------判断一个会话是否是新的会话!
5、page对象
page对象就是指向当前JSP
页面本身,有点象类中的this指针,它是java.lang.Object类的实例
6、exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP
页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
page1.jsp
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK" errorPage="error.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
<%
int i= 10/0;
%>
</body>
</html>
error.jsp
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK" isErrorPage="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
Error Message:getMessage() Method
<br>
<%
out.println(exception.getMessage());
%>
<br>
Error String:toString() Method
<br>
<%
out.println(exception.toString());
%>
</body>
</html>
7、pageContext对象
pageContext对象提供了对JSP
页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集成者,它的本类名也叫pageContext。
<%
JspWriter myout=pageContext.getOut();
myout.println("myout write: hello world"+"<br>");
out.println("out write: hello world"+"<br>");
String username1="george";
String password1="george";
HttpSession mySession= pageContext. getSession();
mySession.putValue("username",username1);
mySession.putValue("password", password1);
out.println("Session bind username:"+session.getValue("username")+"<br>");
out.println("Session bind password:"+session.getValue("password")+"<br><br>");
Object mypage=pageContext.getPage();
out.println("Compile Class Came:"+mypage.toString()+"<br><br>");
ServletResponse myresponse=pageContext.getResponse();
out.println("Character Encoding:"+ myresponse.getCharacterEncoding()+"<br><br>");
ServletRequest myrequest=pageContext.getRequest();
out.println(myrequest.getRemoteHost());
String username2="robin";
String password2="robin";
myrequest.setAttribute("username",username2);
myrequest.setAttribute("password", password2);
out.println("Request bind username:"+request.getAttribute("username")+"<br>");
out.println("Request bind password:"+request.getAttribute("password") +"<br><br>");
ServletContext myapplication=pageContext.getServletContext();
out.println(myapplication.getServerInfo());
String username3="java";
String password3="java";
myapplication.setAttribute("username",username3);
myapplication.setAttribute("password", password3);
out.println("Application bind username:"+application.getAttribute("username")+"<br>");
out.println("Application bind password:" +application.getAttribute("password")+"<br><br>");
%>
8、config对象
config对象是在一个Servlet初始化时,JSP
引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)。
Server Info:
<br>
<%
out.println(config.getServletContext().getServerInfo());
%>
分享到:
相关推荐
为了更深入地学习JSP内置对象,你可以参考《JSP内置对象学习笔记(查网页)》这份文档,它应该包含了详细的介绍和示例代码,可以帮助你巩固和拓展这些知识。记住,实践是检验理论的最好方式,尝试在项目中应用这些...
**JSP内置对象的学习与提高** 在Web开发领域,JavaServer Pages(JSP)是一种流行的动态网页技术,它允许开发者将HTML代码与Java代码混合编写,以实现动态内容的生成。JSP内置对象是JSP核心特性之一,它们提供了一...
【JSP内置对象详解】 JSP(JavaServer Pages)是一种基于Java的技术,用于创建动态网页。在JSP中,有九个内置对象,它们是直接由JSP引擎提供的,无需显式声明即可在JSP页面中使用。这些内置对象极大地简化了开发...
#### 四、JSP内置对象 - **内置对象**:JSP提供了多个内置对象,如request、response、session、application等,它们简化了开发者的工作,无需手动创建即可直接使用。 - **request对象**:用来获取客户端发送的...
3. **第三章:JSP内置对象** - 学习者将了解到JSP的九大内置对象,如request、response、session、application等,以及它们在处理用户请求和响应时的角色。 4. **第四章:JSP表达式和脚本元素** - 这一章涵盖了JSP...
3. **第三章:JSP内置对象** - request、response、session、application等对象的用途和使用方法,它们是JSP处理HTTP请求的核心工具。 4. **第四章:JSP标签库** - JSP标准标签库(JSTL)介绍,如fmt、fn、c等...
**五、JSP内置对象** JSP提供了一系列内置对象,可以直接在页面上使用,无需显式创建: 1. `request`:代表HTTP请求,用于获取请求参数。 2. `response`:代表HTTP响应,用于设置响应头和输出内容。 3. `session`:...
通过这次实验,学生不仅能巩固JSP的基础知识,还能提高实际项目开发中的问题解决能力,为后续更复杂的Web应用开发打下坚实基础。同时,理解JSP与软件工程的结合,有助于培养良好的软件开发规范和团队协作意识。
2. **JSP内置对象**:如request、response、session、application等,以及它们在处理HTTP请求和响应中的作用。 3. **JSP指令**:page、include、taglib等,用于配置页面属性、导入其他文件或注册自定义标签库。 4. *...
- JSP基础:包括JSP语法、内置对象(如request、response、session等)、EL表达式和JSTL标签库。 - Servlet:作为JSP的补充,可能在后台处理业务逻辑和转发请求。 - 数据库管理:如MySQL或Oracle,用于存储学生信息...
ASP的主要组件包括ASP页面、服务器对象、内置对象(如Request、Response、Session等)和控件。通过ASP,开发者能够处理用户输入、生成动态内容、管理用户会话等。与JSP类似,ASP也常常与ASP.NET MVC框架结合使用,以...
- JSP内置对象:掌握Request、Response、Session等对象的使用。 - JSP访问数据库:学习如何通过JDBC与数据库进行交互。 - JavaBean的应用:了解JavaBean的创建和在JSP中的作用。 - Servlet:理解Servlet的工作...
3. **JSP内置对象**:如request、response、session、application、pageContext等,它们提供了处理HTTP请求和响应的能力。 4. **MVC设计模式**:JSP如何与Servlet、JavaBeans(Javabean)协同工作,实现数据处理和...
2. **内置对象**:JSP提供了八大内置对象,包括request、response、session、application、pageContext、out、exception和page。理解这些对象的功能和用法是学习JSP的关键,它们可以帮助开发者处理HTTP请求、响应,...
- JSP内置对象:如request、response、session、application等,以及它们在处理用户请求和响应时的作用。 19章可能涉及: - JSP表达式语言(EL):一种简洁的语法,用于在页面上获取和显示数据,减轻了JSP页面中的...
3. **JSP内置对象**:JSP提供了九个内置对象,如request、response、session、application等,这些都是处理HTTP请求和响应的关键。实验可能要求学生使用这些对象进行数据传递和会话管理。 4. **Servlet与JSP交互**...
这包括使用JSP指令、脚本元素、内置对象以及EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)等工具。 Servlet是Java Web应用中的服务器端组件,用于接收HTTP请求并生成响应。学员会学习...
《JSP入门实例教程4-jsp内置对象及作用域》深入探讨了JSP的内置对象,如request、response、session、application等,这些对象为开发者提供了与用户交互、管理会话和共享数据的能力。同时,教程还解释了四个不同的...
3. **JSP内置对象**: - JSP提供了九个内置对象,包括request、response、session、application、pageContext、out、config、exception和page。这些对象对应于Servlet API中的类,简化了开发过程。 4. **JSP表达式...