jsp内置对象request
jsp试验报告实训4 JSP内置对象-1

实训4 JSP内置对象
实验目的:了解JSP内置对象,及其使用方法
掌握使用JSP的request对象处理页面提交信息的基本方法
实验内容:
实验一:利用request对象获取表单提交信息
制作一个用户信息提交页面,如下所示:
注意内容:
要解决其中的多项选择“爱好”这一项的信息获取,需要采用到数组,使用方法如下:String 数组1[]=request.getParameterValues("输入框名");
提交的信息便存储进入数组1中,输出时候使用循环即可。
用户填写完成后完成,提交到另一个页面,将用户信息显示出来,如下示:
要求:1.页面提交的用户姓名为中文,不能出现乱码
2.表单中的多项选择内容要求正确显示
实训项目二:request对象
在前面实验的基础上,编写程序实现,若用户提交的用户名和密码为空的时候,提示有关错误信息,并跳转回用户信息填写页面,若信息不为空,则跳转到欢迎页面,显示XX用户,欢迎您。
实验步骤:
建立工程—编写程序—编译程序—调试、运行程序。
(可以参考“实验一“中任意一种方法来进行)
实验小结:。
详解JSP内置对象request常见用法

详解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 内置对象实验报告

第四章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实验结果及分析。
chap4-JSP内置对象

request对象的常用方法举例
getProtocol(): 获取请求使用的通信协议,如 http/1.1等。
getServletPath(): 获取请求的JSP页面所在的路 径。
getContentLength(): 获取HTTP请求的长度。 getMethod(): 获取表单提交信息的方式,如POST
example4_8.jsp、example4_8_play_mp4.jsp
22
4.1.5处理超链接
超链接标记 <a href ="example4_9_receive.jsp>购买</a> 使用超链接标记时还可以增加参数: <a href
="example4_9_receive.jsp?id=A1001&price=876 5">购买</a> 获取参数: String idStr = request.getParameter("id");
algin= "top" checked="ok" />男生 (3)复选框checkbox <input type="checkbox" name= "item"
value="A" algin= "top" checked="ok" />足球 (4)口令框password <input type= "password" name= "me" size=
"12" maxlength="30" />
15
计算机专业毕业设计外文翻译--JSP内置对象

附录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。
第4章 JSP内置对象

P
例:input1.html
J
s
如何接收多个同名参数?
P
例:request02.html
J
s
P
原因:在整个操作过程中复选框的内容只能得到一个,因 为getParameter()方法,只能接收一个参数的内容,如 果想要接收多个参数,则必须使用: public String[] getParameterValues(String name) 此方法返回一个数组,表示接收同名的一组参数。
§4.1 request对象
J 在JSP中,内置对象request封装了用户请求页面时所提 交的信息,该对象调用相应的方法可以获取封装的信息.即
s
request对象可以获取用户提交的信息。
用户在请求JSP页面时,通常会使用HTML表单提交信息,表 单的一般格式是:
<FORM method=get|post action="提交信息的目的地页面"> 提交手段
J
getParameterNames()方法
此方法可以取得表单提交的所有参数名称
例:request04.html
s
P
思考:如何同时显示复选框的全部内容?
request05.jsp
4.1.5
处理HTML标记_<Select>、<Option>格式
J
下拉式列表和滚动列表通过<Select>和<Option>标记来定义。基本格式 为:
4.1.3
J
常用方法举例
可以用内置对象request对象来获取请求所提交的各类信 息,request对象的常用方法如下:
getProtocol():获取请求使用的通信协议,如http/1.1等。 getServletPath():获取请求的JSP页面所在的目录。 getContentLength():获取HTTP请求的长度。 getMethod():获取表单提交信息的方式,如POST或GET。
第三章:JSP内置对象 (request对象、response对象session对象、application对象、cookie)

第三章: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作用域

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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、response重定向
对于response对象,最常用到的是 sendRedirect()方法,可以使用这个 方法将当前客户端的请求转到其它 页面去。相应的代码格式为:
“response.sendRedirect("URL地址");”
2、response重定向
和<jsp:forward>指令的最大区别就是: <jsp:forward>只能在本网站内跳转 response.sendRedirect可以跳转到任何 一个地址的页面
HTTP请求信息的结构 请求信息的结构
POST方法 POST方法
等价的发出GET请求的Html页 <html> <head> <title></title> </head> <body> <form action="index.jsp" method=“GET"> User Name:<input type="text" name="userName"/><br/> Password:<input type="password" name="passWord"/><br/> <input type="submit" name="submit" value="submit"/> </form> </body> </html>
详见课本 P36
reponse对象
对客户的请求做出动态的响应,向客户端发 送数据。
1、动态contentType响应
使用response对象的setContentType(String s) 方法来改变contentType的属性值。 格式:response.setContentType(String s) 参数s可取text/html,application/x-msexcel, application/msword等。
得到Form表单的信息
也可以通过request对象的getParameterNames() 方法得到客户端传递过来的所有参数名字,如:
Enumeration params = request.getParameterNames();
第二种读取值的方法是利用集合
案例名称:使用request对象获取用户提交数据的所有参数名字和值 案例名称:使用request对象获取用户提交数据的所有参数名字和值 request 程序名称: 程序名称:3-2.jsp <%@page contentType="text/html;charset=GBK"%> <%@page import="java.util.*"%> <% String current_param = ""; request.setCharacterEncoding("GBK"); Enumeration params = request.getParameterNames(); while(params.hasMoreElements()) { current_param = (String)params.nextElement(); out.println("Name: " + current_param + "<br>"); out.println("Values: " + request.getParameter(current_param) + "<br>"); } %>
JSP根据Servlet API而提供了某些 (内置)隐含对象。 不用编写任何额外的代码,在JSP程 序中可以直接使用获得的主要的6个隐含对象变量为: request对象:功能是用来获取客户端的请求信息 功能是用来获取客户端的请求信息; 功能是用来获取客户端的请求信息 response对象:功能是在服务器端生成对客户端的响应 功能是在服务器端生成对客户端的响应; 功能是在服务器端生成对客户端的响应 application对象:用来保存网站的一些全局变量; session对象:用来保存单个用户访问时的一些信息; out对象:功能是把信息回送到客户端的浏览器中; cookie对象:将服务器端的一些信息写到客户端的浏览器中。
根据HTTP协议规范,每个HTTP请求主要包含以下信息
理解HTTP协议工作机制 协议工作机制 理解
HTTP请求-响应的基本过程如下:
HTTP响应信息的结构 响应信息的结构
按照HTTP协议的规定,一个HTTP响应信息应当包含下列信息:
HTTP响应信息的结构 响应信息的结构
一个典型的HTTP响应信息 响应信息 一个典型的 HTTP/1.1 200 OK Last-Modified: Sun, 24 Oct 2004 02:44:41 GMT Content-Type: text/html Content-Length: 113 Date: Sun, 12 Dec 2004 14:39:37 GMT Server: Apache Coyote/1.0 <html> <head> <title>Welcome to tomcat!</title> </head> <body> <h1>Welcome to tomcat!</h1> </body> </html>
第3章 JSP内置对象 章 内置对象
第四次课 内容提要
HTTP协议的工作机制 协议的工作机制 request对象与response对象
HTTP协议
http协议规定了信息在Internet 上的传输方法,特别规定了浏览 器与服务器的交互方法。 http协议是“请求和响应”协议。
理解HTTP协议工作机制 协议工作机制 理解 ----请求(request) 请求( 请求 )
HTTP请求信息的结构 请求信息的结构
POST方法 POST方法
POST请求文本 POST /MyWeb/index.jsp HTTP/1.1 Host: 127.0.0.1 User-Agent: ICEBrowser 5.31 Accept: */* content-type: application/x-www-form-urlencoded Connection: Keep-Alive userName=JBuilder&passWord=Borland
request对象
当客户端请求一个JSP页面时,JSP容器会将 客户端的请求信息包装在这个request对象中
得到Form表单的信息
通常我们用得最多的就是客户端请求的参数名 称和参数值信息。得到某参数值的语法为: request.getParameter( “paramName”); (P34 例1) 注: 空指针异常 见课本P35
JSP常用的六大内置对象 JSP常用的六大内置对象
request对象 request对象 response对象 response对象 session对象 session对象 application对象 application对象 out对象 out对象 cookie对象 cookie对象
JSP内置(隐含)对象概述
练习
参见补充练习
HTTP请求信息的结构 请求信息的结构
GET方法 GET方法
GET请求文本 GET HTTP/1.1 Host: 127.0.0.1 User-Agent: ICEBrowser 5.31 Accept: */* Connection: Keep-Alive
HTTP 请求信息的结构
request对象
当客户端请求一个JSP页面时,JSP容器会将 客户端的请求信息包装在这个request对象中
得到客户的信息(分析头域)
利用request对象可以获得客户提交的信息, 比如:客户端的地址、以及服务器的端口等 P39 例子4 例子4
汉字问题两种解决方法
当利用request.getParameter得到Form元素的 时候,默认的情况字符编码为ISO-8859-1,有 时这种编码不能正确的显示汉字。 目前有两种解决方法: 一种是在执行操作之前,设置request的编 码格式,语法是: “request.setCharacterEncoding("GBK");” 另一种方法是转换字符编码
HTTP请求-响应的基本过程如下:
HTTP 请求信息的结构
根据HTTP协议规范,每个HTTP请求主要包含以下信息
HTTP请求信息的结构 请求信息的结构
POST方法 POST方法
发出POST请求的Html页 <html> <head> <title></title> </head> <body> <form action="index.jsp" method="POST"> User Name:<input type="text" name="userName"/><br/> Password:<input type="password" name="passWord"/><br/> <input type="submit" name="submit" value="submit"/> </form> </body> </html>