jsp内置对象request
- 格式:ppt
- 大小:352.50 KB
- 文档页数:29
实训4 JSP内置对象
实验目的:了解JSP内置对象,及其使用方法
掌握使用JSP的request对象处理页面提交信息的基本方法
实验内容:
实验一:利用request对象获取表单提交信息
制作一个用户信息提交页面,如下所示:
注意内容:
要解决其中的多项选择“爱好”这一项的信息获取,需要采用到数组,使用方法如下:String 数组1[]=request.getParameterValues("输入框名");
提交的信息便存储进入数组1中,输出时候使用循环即可。
用户填写完成后完成,提交到另一个页面,将用户信息显示出来,如下示:
要求:1.页面提交的用户姓名为中文,不能出现乱码
2.表单中的多项选择内容要求正确显示
实训项目二:request对象
在前面实验的基础上,编写程序实现,若用户提交的用户名和密码为空的时候,提示有关错误信息,并跳转回用户信息填写页面,若信息不为空,则跳转到欢迎页面,显示XX用户,欢迎您。
实验步骤:
建立工程—编写程序—编译程序—调试、运行程序。
(可以参考“实验一“中任意一种方法来进行)
实验小结:。
详解JSP内置对象request常见⽤法request 对象是 HttpServletRequestWrapper 类的实例。
它的继承体系如下:_request 对象继承层次结构图.pngServletRequest 接⼝的唯⼀⼦接⼝是 HttpServletRequest ,HttpServletRequest 接⼝的唯⼀实现类HttpServletRequestWrapper ,单从 request 对象⼀脉单传的类继承体系可以看出,javaweb 标准类库只⽀持了 http 协议。
Servlet/JSP 中⼤量使⽤了接⼝⽽不是实现类,这恰恰就是⾯向接⼝编程的最佳应⽤啊。
request 内置对象是由 Tomcat 创建的,可以⽤来封装 HTTP 请求参数信息、进⾏属性值的传递以及完成服务端跳转,这就是request 对象最重要的三个功能了。
request 对象的创建流程⼀旦 http 请求报⽂发送到 Tomcat 中, Tomcat 对数据进⾏解析,就会⽴即创建 request 对象,并对参数赋值,然后将其传递给对应的 jsp/servlet 。
⼀旦请求结束,request 对象就会⽴即被销毁。
服务端跳转,因为仍然是同⼀次请求,所以这些页⾯会共享⼀个 request 对象。
1、访问请求参数<a href="login.jsp?name=张三&sex=man&id=" rel="external nofollow" >传递参数</a>login.jsp关键代码<%= "name:"+new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8") %><br><%= "sex:"+request.getParameter("sex") %><br><%= "id:"+request.getParameter("id") %><br><%= "pwd:"+request.getParameter("pwd") %><br>说明:如果指定的参数不存在,将返回null;如果指定了参数名,但未指定参数值,将返回空的字符串"。
第四章JSP 内置对象4.6 实验一:request对象1,相关知识点在就是jsp中,内置对象request封装了用户请求信息时所提交的信息,那么该对象调用相应的方法可以获取封装的信息,即使用该对象可以获取用户提交的信息。
2,参考代码:Register.jsp:<%@page contentType="text/html;charset=gb2312"%><head><%@ include file="head.txt"%></head><%@taglib tagdir="/WEB-INF/tags" prefix="look"%><html><body bgcolor=pink><font size=2><form action="Register_1.jsp" method=post>请输入注册信息,用户名必须由字母或数字组成,带*为必填项。
<table border=1><tr><td>员工编号:</td><td><Input type=text name="id">*</td></tr><tr><td>用户名:</td><td><Input type=text name="name">*</td></tr><tr><td>用户密码:</td><td><Input type=text name="password">*</td></tr><tr><td>用户权限(Y/N):</td><td><Input type=text name="right">*</td></tr><tr><td>性别:</td><td><Input type=text name="sex">*</td></tr><tr><td>联系电话:</td><td><Input type=text name="phone"></td></tr><tr><td>备注:</td><td><Input type=text name="remark"></td></tr></table><br><Input type="submit" name="b" value="提交"><br>注册前<look:QueryTag dataSource="SupermarketMS" tableName="Staff" user="sa" password="sa"/><br><%=queryResult%></font></body></html>Register_1.jsp<%@page contentType="text/html;charset=gb2312"%><%@ taglib tagdir="/WEB-INF/tags" prefix="inquire"%><html><body bgcolor=pink><font size=2><%String ID=request.getParameter("id");String aa=request.getParameter("name");String PassWord=request.getParameter("password");String Right=request.getParameter("right");String Sex=request.getParameter("sex");String Phone=request.getParameter("phone");String Remark=request.getParameter("remark");byte bb[]=aa.getBytes("iso-8859-1");aa=new String(bb);%><inquire:Register_2 ID="<%=ID%>" nn="<%=aa%>" pw="<%=PassWord%>"right="<%=Right%>"sex="<%=Sex%>"phone="<%=Phone%>"remark="<%=Remark%>"/><br>注册后所有员工信息<inquire:QueryTag dataSource="SupermarketMS" tableName="Staff" user="sa" password="sa"/><br><%=queryResult%></font></body></html>Register_2.tag代码如下:<%@tag pageEncoding="gb2312"%><%@tag import="java.sql.*"%><%@ attribute name="ID" required="true"%><%@ attribute name="nn" required="true"%><%@ attribute name="pw" required="true"%><%@ attribute name="right" required="true"%><%@ attribute name="sex" required="true"%><%@ attribute name="phone" required="true"%><%@ attribute name="remark" required="true"%><%out.print("hello world");%><% int id=Integer.parseInt(ID);String insert="insert into Staff values("+id+",'"+nn+"','"+pw+"','"+right+"','"+sex+"','"+phone+"','"+remark+"')";try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(Exception e){}Connection con;Statement sql;ResultSet rs;try{String uri="jdbc:odbc:SupermarketMS";con=DriverManager.getConnection(uri,"sa","sa");sql=con.createStatement();sql.executeUpdate(insert);con.close();}catch(Exception e){out.print(""+e);}%>实验2:session对象1,相关知识点Jsp的session是使用bean的一个生存期限,一般为page,session意思是在这个用户没有离开网站之前一直有效,如果无法判断用户何时离开,一般依据系统设定,tomcat中设定为30分钟. 我们使用session功能,可以达到多个jsp程序从操作同一个java bean, 那么这个java bean可以作为我们传统意义上的"全局变量池".(在java中我们可以使用static静态化一个变量和方法,使用singleton唯一化对象.) 2,参考代码inputGuess.jsp<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY bgcolor=cyan><FONT Size=2><P>随机分给了你一个1到100之间的数,请猜!<%int number=(int)(Math.random()*100)+1;session.setAttribute("count",new Integer(0));session.setAttribute("save",new Integer(number));%><FORM action="result.jsp" method="post" name=form>输入你的猜测:<INPUT type="text" name="boy"><INPUT TYPE="submit" value="送出" name="submit"></FORM></FONT></BODY></HTML>Result.jsp 的代码如下:<% String str=request.getParameter("boy");if(str.length()==0){response.sendRedirect("inputGuess.jsp");}int guessNumber=-1;try{guessNumber=Integer.parseInt(str);Integer integer=(Integer)session.getAttribute("save");int realnumber=integer.intValue();if(guessNumber==realnumber){int n=((Integer)session.getAttribute("count")).intValue();n=n+1;session.setAttribute("count",new Integer(n));response.sendRedirect("success.jsp");}else if(guessNumber>realnumber){int n=((Integer)session.getAttribute("count")).intValue();n=n+1;session.setAttribute("count",new Integer(n));response.sendRedirect("large.jsp");}else if(guessNumber<realnumber){int n=((Integer)session.getAttribute("count")).intValue();n=n+1;session.setAttribute("count",new Integer(n));response.sendRedirect("small.jsp");}}catch(Exception e){response.sendRedirect("inputGuess.jsp");}%>Small.jsp参考代码为:<%@ page contentType="text/html;charset=GB2312" %> <HTML><BODY bgcolor=cyan><FONT Size=2><FORM action="result.jsp" method="get" name=form>猜小了,请再猜:<INPUT type="text" name="boy"><INPUT TYPE="submit" value="送出" name="submit"></FORM></FONT></BODY></HTML>Large.jsp 参考代码如下:<%@ page contentType="text/html;charset=GB2312" %> <HTML><BODY bgcolor=cyan><FONT Size=2><FORM action="result.jsp" method="get" name=form>猜大了,请再猜:<INPUT type="text" name="boy"><INPUT TYPE="submit" value="送出" name="submit"></FORM></FONT></BODY></HTML>Success.jsp 的参考代码如下:<%@ page contentType="text/html;charset=GB2312" %> <HTML><BODY bgcolor=cyan><FONT Size=2><%int count=((Integer)session.getAttribute("count")).intValue(); int num=((Integer)session.getAttribute("save")).intValue(); %><P>恭喜你,猜对了<BR>您共猜了<%=count%>次,这个数字就是<%=num%> <BR>单机超链接返回到inputGuess.jsp页面:<BR><A href="inputGuess.jsp">inputGuess.jsp</A></FONT></BODY></HTML>3实验结果及分析。
附录1 外文参考文献(译文)JSP内置对象有些对象不用声明就可以在JSP页面的Java程序片和表达式部分使用,这就是JSP 的内置对象。
JSP的内置对象有:request、response、session、application、out.response和request对象是JSP内置对象中较重要的两个,这两个对象提供了对服务器和浏览器通信方法的控制。
直接讨论这两个对象前,要先对HTTP协议—Word Wide Wed底层协议做简单介绍。
Word Wide Wed是怎样运行的呢?在浏览器上键入一个正确的网址后,若一切顺利,网页就出现了。
使用浏览器从网站获取HTML页面时,实际在使用超文本传输协议。
HTTP规定了信息在Internet上的传输方法,特别是规定吧浏览器与服务器的交互方法。
从网站获取页面时,浏览器在网站上打开了一个对网络服务器的连接,并发出请求。
服务器收到请求后回应,所以HTTP协议的核心就是“请求和响应”。
一个典型的请求通常包含许多头,称作请求的HTTP头。
头提供了关于信息体的附加信息及请求的来源。
其中有些头是标准的,有些和特定的浏览器有关。
一个请求还可能包含信息体,例如,信息体可包含HTML表单的内容。
在HTML表单上单击Submit 键时,该表单使用ACTION=”POST”或ACTION=”GET”方法,输入表单的内容都被发送到服务器上。
该表单内容就由POST方法或GET方法在请求的信息体中发送。
服务器发送请求时,返回HTTP响应。
响应也有某种结构,每个响应都由状态行开始,可以包含几个头及可能的信息体,称为响应的HTTP头和响应信息体,这些头和信息体由服务器发送给客户的浏览器,信息体就是客户请求的网页的运行结果,对于JSP 页面,就是网页的静态信息。
用户可能已经熟悉状态行,状态行说明了正在使用的协议、状态代码及文本信息。
例如,若服务器请求出错,则状态行返回错误及对错误描述,比如HTTP/1.1 404 Object Not Found。
第三章:Jsp隐式对象(request对象、response对象session对象、application对象、cookie)Jsp隐式对象概述:由JSP规范提供,不用编写者实例化。
通过Web容器实现和管理。
所有JSP页面均可使用。
只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>)。
常用九大内置对象的作用和方法1、out对象:代表提供输出流的访问。
2、request对象:request对象是从客户端向服务器端发出请求,包括用户提交的信息以及客户端的一些信息。
常用方法:getparameter()getParameterValues()setAttribute() getAttribute()3、response对象:允许直接访问HttpServletResponse对象常用方法:sendRedirect()4、session对象:允许直接访问HttpServletResponse对象常用方法:setAttribute()、getAttribute()5、application对象:用于多个程序或者多个用户之间共享数据。
常用方法:setAttribute()、getAttribute()6、config :将初始化数据传递给一个JSP页面7、page :代表JSP页面对应的Servlet类实例8、exception:针对错误网页,未捕捉的例外9、pageContext :管理网页的属性内置对象的作用域:◆application:服务器启动到停止这段时间◆session:HTTP会话开始到结束这段时间◆request:HTTP请求开始到结束这段时间◆page:当前页面从打开到关闭这段时间对于每一个用户都共享同一个对象的是:application对象,而每个用户分别使用不同对象实例的是:session对象forword和sendRedirect的区别:forword仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;sendRedirect则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接getParameter(String name);例题一:文件名:input.html<html>< body bgcolor="white"><font size=1><form action="requestdemo1.jsp" method=post name=form><input type="text" name="boy"><input type="submit" value="Enter" name="submit"></form></font></body></html>文件名:requestDemo1.jsp:<%@ page contentType="text/html;charset=GB2312" %><html><body bgcolor="white"><font size=4><p>获取文本框提交的信息:<%String strContent=request.getParameter("boy");%><%=strContent%> // 输出文本框boy提交的信息<p> 获取按钮的名字:<%String strButtonName=request.getParameter("submit");%><%=strButtonName%> // 输出按钮的value名字</font></body></html>例题二:设计一个简单的“JSP程序设计网上测试系统”,如下图所示。
JSP request作用域在前面的内置对象的章节学习中,学习了一个对象request,使用该对象可以获得另外一个页面提交给本页面的信息。
同样JavaBean的request作用域和request对象的作用域相同。
当JSP页面中使用<jsp:forward>操作指令向另外一个JSP程序或者使用<jsp:include>指令导入另外的JSP页面时,第一个JSP页面会把request对象传递到下一个JSP页面,而属于request作用域的JavaBean类也将伴随着request 对象送出,被第二个JSP页面接收。
因此,所有通过的两种操作指令连接在一起的JSP程序都可以共享一个request 对象,共享这种作用域的JavaBean组件。
使用这种类型的JavaBean组件对象使得JSP页面传递信息更容易,但是由于客户端不能执行JSP程序创建新的JavaBean对象,所以JavaBean不能够用于客户端与服务器端之间传递信息。
request的作用域范围的JavaBean对象存储在当前ServletRequest中,有request 范围的JavaBean实例可以在处理请求所有JSP页面中都存在,这个对象只有在请求全部处理完毕后才会被释放掉,request范围的JavaBean常用于共享同一次请求的JSP页面中,比如判断用户登录功能,如果用户名密码合法就可以forward到一个合法页面中,否则就forward到一个出错页面,当然转移后的页面仍然能够得到用户的输入。
如果要使用request作为JavaBean的作用域范围,语法格式为:现在创建一个案例,演示JavaBean的request作用域范围的用法。
在本案例中使用的JavaBean是4.2.1节中的JavaBean,这里就不再重新创建。
创建JSP页面,打开记事本,在里面输入下列代码:语句<%@ page import="test.Beanscope"%>引入要JavaBean类,再使用useBean标记创建一个JavaBean对象girl,然后对象gril调用setNumbr()方法,设置积分变量的值为18。
jsp有哪些内置对象?作⽤分别是什么?
JSP共有以下9种基本内置组件
1、request对象客户端请求,此请求会包含来⾃GET/POST请求的参数通过它才能了
解到客户的需求,然后做出响应。
2、response对象响应客户请求的有关信息
3、session对象它指的是客户端与服务器的⼀次会话,从客户端连到服务器的⼀个WebApplication开始,直到客户端与服务器断开连接为⽌。
4、out对象它是JspWriter类的实例,是向客户端输出内容常⽤的对象
5、page对象它是指向当前JSP页⾯本⾝,有点象类中的this指针,它是 ng.Object类的实例
6、application对象它实现了⽤户间数据的共享,可存放全局变量。
它开始于服务器的启动,直到服务器的关闭
7、exception对象它是⼀个例外对象,当⼀个页⾯在运⾏过程中发⽣了例外,就产⽣这个对象。
8、pageContext对象它提供了对JSP页⾯内所有的对象及名字空间的访问
9、config对象它是在⼀个Servlet初始化时,JSP引擎向它传递信息⽤的。
JSP9⼤内置对象详解内置对象特点:1. 由JSP规范提供,不⽤编写者实例化。
2. 通过Web容器实现和管理3. 所有JSP页⾯均可使⽤4. 只有在脚本元素的表达式或代码段中才可使⽤(<%=使⽤内置对象%>或<%使⽤内置对象%>)常⽤内置对象:1. 输出输⼊对象:request对象、response对象、out对象2. 通信控制对象:pageContext对象、session对象、application对象3. Servlet对象:page对象、config对象4. 错误处理对象:exception对象对象常⽤⽅法说明:1.out对象(数据流 javax.servlet.jsp.jspWriter)⽅法名说明print或println输出数据newLine输出换⾏字符flush输出缓冲区数据close关闭输出流clear清除缓冲区中数据,但不输出到客户端clearBuffer清除缓冲区中数据,输出到客户端getBufferSize获得缓冲区⼤⼩getRemaining获得缓冲区中没有被占⽤的空间isAutoFlush是否为⾃动输出2.request对象(请求信息 javax.servlet.http.HttpServletrequest)⽅法名说明isUserInRole判断认证后的⽤户是否属于某⼀成员组getAttribute获取指定属性的值,如该属性值不存在返回NullgetAttributeNames获取所有属性名的集合getCookies获取所有Cookie对象getCharacterEncoding获取请求的字符编码⽅式getContentLength返回请求正⽂的长度,如不确定返回-1getHeader获取指定名字报头值getHeaders获取指定名字报头的所有值,⼀个枚举getHeaderNames获取所有报头的名字,⼀个枚举getInputStream返回请求输⼊流,获取请求中的数据getMethod获取客户端向端传送数据的⽅法getParameter获取指定名字参数值getParameterNames获取所有参数的名字,⼀个枚举getParameterValues获取指定名字参数的所有值getProtocol获取客户端向端传送数据的协议名称getQueryString获取以get⽅法向传送的查询字符串getRequestURI获取发出请求字符串的客户端地址getRemoteAddr获取客户端的IP地址getRemoteHost获取客户端的名字getSession获取和请求相关的会话getServerName获取的名字getServerPath获取客户端请求⽂件的路径getServerPort获取的端⼝号removeAttribute删除请求中的⼀个属性setAttribute设置指定名字参数值3.response对象(响应 javax.servlet.http.HttpServletResponse)⽅法名说明addCookie添加⼀个Cookie对象addHeader添加Http⽂件指定名字头信息containsHeader判断指定名字Http⽂件头信息是否存在encodeURL使⽤sessionid封装URLflushBuffer强制把当前缓冲区内容发送到客户端getBufferSize返回缓冲区⼤⼩getOutputStream返回到客户端的输出流对象getOutputStream返回到客户端的输出流对象sendError向客户端发送错误信息sendRedirect把响应发送到另⼀个位置进⾏处理setContentType设置响应的MIME类型setHeader设置指定名字的Http⽂件头信息4.session对象(会话 javax.servlet.http.HttpSession)⽅法名说明getAttribute获取指定名字的属性getAttributeNames获取session中全部属性名字,⼀个枚举getCreationTime返回session的创建时间getId获取会话标识符getLastAccessedTime返回最后发送请求的时间getMaxInactiveInterval返回session对象的⽣存时间单位千分之⼀秒invalidate销毁session对象isNew每个请求是否会产⽣新的session对象removeAttribute删除指定名字的属性setAttribute设定指定名字的属性值5.pageContext对象(页⾯上下⽂ javax.servlet.jsp.PageContext)⽅法名说明forward重定向到另⼀页⾯或Servlet组件getAttribute获取某范围中指定名字的属性值findAttribute按范围搜索指定名字的属性removeAttribute删除某范围中指定名字的属性setAttribute设定某范围中指定名字的属性值getException返回当前异常对象getRequest返回当前请求对象getResponse返回当前响应对象getServletConfig返回当前页⾯的ServletConfig对象getServletContext返回所有页⾯共享的ServletContext对象getSession返回当前页⾯的会话对象6.application对象(应⽤程序 javax.servlet.ServletContext)⽅法名说明getAttribute获取应⽤对象中指定名字的属性值getAttributeNames获取应⽤对象中所有属性的名字,⼀个枚举getInitParameter返回应⽤对象中指定名字的初始参数值getServletInfo返回Servlet编译器中当前版本信息setAttribute设置应⽤对象中指定名字的属性值7.config对象(Servlet的配置信息 javax.servlet.ServletConfig)⽅法名说明getServletContext返回所执⾏的Servlet的环境对象getServletName返回所执⾏的Servlet的名字getInitParameter返回指定名字的初始参数值getInitParameterNames返回该JSP中所有的初始参数名,⼀个枚举8.page对象(当前JSP的实例,ng.object)它代表JSP被编译成Servlet,可以使⽤它来调⽤Servlet类中所定义的⽅法9.exception对象(运⾏时的异常,ng.Throwable)被调⽤的错误页⾯的结果,只有在错误页⾯中才可使⽤,即在页⾯指令中设置:<%@page isErrorPage=“true”%>Request(Javax.servlet.ServletRequest)它包含了有关浏览器请求的信息.通过该对象可以获得请求中的头信息、Cookie和请求参数。
jsp内置对象实验报告JSP内置对象实验报告实验目的:通过实验,了解JSP内置对象的作用和用法。
实验步骤:1. 创建一个简单的JSP页面,命名为index.jsp。
2. 在index.jsp中使用JSP内置对象out,输出一段文本:"Hello, JSP!"。
3. 在index.jsp中使用JSP内置对象request,获取客户端传递的参数,并输出到页面上。
4. 在index.jsp中使用JSP内置对象session,存储用户登录信息,并在其他页面中获取并显示用户信息。
5. 在index.jsp中使用JSP内置对象application,存储全局变量,并在其他页面中获取并显示全局变量的值。
实验结果:1. 使用JSP内置对象out,成功在页面上输出了文本:"Hello, JSP!"。
这说明out 对象可以用来向页面输出内容。
2. 使用JSP内置对象request,成功获取客户端传递的参数,并在页面上显示了参数的值。
这说明request对象可以用来获取客户端的请求参数。
3. 使用JSP内置对象session,成功存储了用户登录信息,并在其他页面中获取并显示了用户信息。
这说明session对象可以用来存储用户的会话信息。
4. 使用JSP内置对象application,成功存储了全局变量,并在其他页面中获取并显示了全局变量的值。
这说明application对象可以用来存储全局变量。
结论:通过本次实验,我们了解了JSP内置对象的作用和用法。
out对象可以用来向页面输出内容,request对象可以用来获取客户端的请求参数,session对象可以用来存储用户的会话信息,application对象可以用来存储全局变量。
掌握了这些内置对象的用法,可以更加灵活地开发JSP页面,实现更丰富的功能。
希望通过本次实验,同学们能够更加熟练地运用JSP内置对象,提高自己的JSP开发能力。
jsp 内置对象实验报告
JSP 内置对象实验报告
JSP(Java Server Pages)是一种用于开发动态网页的技术,它允许开发人员在HTML 页面中嵌入 Java 代码。
在 JSP 中,有许多内置对象可以帮助开发人员访问请求、会话和应用程序信息,以及执行其他常见任务。
本实验报告将探讨JSP 内置对象的使用和功能。
首先,我们创建了一个简单的 JSP 页面,并在其中使用了内置对象。
我们使用了 request 对象来获取客户端发送的请求信息,并使用了 session 对象来管理用户会话信息。
通过使用这些内置对象,我们能够轻松地访问和操作客户端请求和会话数据,从而实现更灵活和动态的网页。
接下来,我们尝试使用 application 对象来访问应用程序范围的数据。
通过将数据存储在 application 对象中,我们可以确保所有用户都能够访问和共享这些数据,从而实现更高效的应用程序设计。
此外,我们还使用了 out 对象来向客户端输出动态内容。
通过将 Java 代码嵌入到 JSP 页面中,并使用 out 对象来输出结果,我们能够实现更灵活和动态的网页内容,从而提升用户体验。
总的来说,JSP 内置对象为开发人员提供了丰富的功能和便利的操作方式,使得开发动态网页变得更加简单和高效。
通过本次实验,我们深入了解了这些内置对象的使用和功能,相信这将对我们今后的 JSP 开发工作产生积极的影响。
JSP内置对象:一.request对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
它是HttpServletRequest的实例。
JSP下面介绍request的常用方法:1,getParameter();getParameterValues();使用如下String str=request.getParameter();2,setAttribute();getAttribute();removeAttribute();getMethod();getPr otocol();getReqeustURI();getRemoteAddr();getServerPort();和getServerName();二.response对象:对客户的请求做出动态的响应,向客户端发送数据。
三.session对象1.什么是session:session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。
当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
2.session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。
当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。
当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。
JSP九大内置对象及四个作用域九大对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用1-out: out对象是JspWriter类的实例,是向客户端输出内容常用的对象javax.servlet.jsp.JspWriter类型,代表输出流的对象。
作用域为page(页面执行期)request:javax.servlet.ServletRequest的子类型,此对象封装了由WEB浏览器或其它客户端生成地HTTP客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。
它是HttpServletRequest类的实例。
请求的细节(参数,属性,头标和数据)。
作用域为request(用户请求期)。
方法由可查看APIresponse:javax.servlet.ServletResponse的子类型,此对象封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。
经常用来设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL。
作用域为page (页面执行期)。
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。
它是HttpServletResponse类的实例。
pageContext:javax.servlet.jsp.PageContext(抽象类)类型,作用域为page(页面执行期)。
此对象提供所有四个作用域层次的属性查询和修改能力,它也提供了转发请求到其它资源和包含其他资源的方法:pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
该对象的方法都是抽象方法session:javax.servlet.http.HttpSession类型,主要用于跟踪对话。