实例详解JSP内置对象.docx

上传人:b****5 文档编号:4059904 上传时间:2022-11-27 格式:DOCX 页数:23 大小:24.25KB
下载 相关 举报
实例详解JSP内置对象.docx_第1页
第1页 / 共23页
实例详解JSP内置对象.docx_第2页
第2页 / 共23页
实例详解JSP内置对象.docx_第3页
第3页 / 共23页
实例详解JSP内置对象.docx_第4页
第4页 / 共23页
实例详解JSP内置对象.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

实例详解JSP内置对象.docx

《实例详解JSP内置对象.docx》由会员分享,可在线阅读,更多相关《实例详解JSP内置对象.docx(23页珍藏版)》请在冰豆网上搜索。

实例详解JSP内置对象.docx

实例详解JSP内置对象

JSP九种内置对象:

request,response,session,out,application,config,pagecontext,page,exception.

一、request对象

●request封装了用户提交给服务器的所有信息,通过request对象的方法可以获取用户提交的信息。

●用户通常使用HTML中的Form表单向服务器的某个JSP或者Servlet提交信息。

form表单格式:

提交手段

注意:

(1)Get方法和post方法的主要区别:

使用get方法提交的信息会在提交的过程中显示在浏览器的地址栏中;而post方法提交的信息不会显示在地址栏中。

(2)提交内容的方式:

文本框、密码框、下拉列表、单选按钮、多选按钮、文本区域等。

1、获取用户提交信息

request对象可以使用getParameter(strings)方法获取该表单通过text提交的信息。

如:

request.getParameter(“boy”)

例:

request1.jsp:

<%@pagecontentType="text/Html;charset=GB2312"%>

 

   

   

 

  tree.jsp:

<%@pagecontentType="text/html;charset=GB2312"%>

 

获取文本框提交的信息:

 <%StringtextContent=request.getParameter("boy");

 %>


 <%=textContent%>

获取按钮的名字:

 <%StringbuttonName=request.getParameter("submit");

 %>


 <%=buttonName%>

注意:

使用request对象获取信息要格外小心,要避免使用空对象,否则会出现NullPointerException异常,所以我们可以作以下处理.:

request3.jsp

<%@pagecontentType="text/html;charset=GB2312"%>

 

    

    

  

 <%StringtextContent=request.getParameter("girl");

  doublenumber=0,r=0;

  if(textContent==null)

    {textContent="";

    }

  try{number=Double.parseDouble(textContent);

     if(number>=0)

      {r=Math.sqrt(number);

       out.print("
"+String.valueOf(number)+"的平方根:

");

       out.print("
"+String.valueOf(r));

      }

     else

      {out.print("
"+"请输入一个正数");

      }

    }

  catch(NumberFormatExceptione)

    {out.print("
"+"请输入数字字符");

    }

  %>

2、处理汉字信息

当request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。

首先,将获取的字符串用ISO-8859-1进行编码,并将编码存放到一个字节数组中,然后再将这个属组转化为字符窜对象即刻。

StringtextContent=request.getParameter("boy");

byteb[]=textContent.getBytes("ISO-8859-1");

textContent=newString(b);

例:

tree2.jsp

<%@pagecontentType="text/html;charset=GB2312"%>

 

获取文本框提交的信息:

 <%StringtextContent=request.getParameter("boy");

  byte b[]=textContent.getBytes("ISO-8859-1");

  textContent=newString(b);

 %>


 <%=textContent%>

获取按钮的名字:

 <%StringbuttonName=request.getParameter("submit");

  byte c[]=buttonName.getBytes("ISO-8859-1");

  buttonName=newString(c);

 %>


 <%=buttonName%>

3、常用方法举例:

1.getProtocol()获取客户向服务器提交信息所使用的通信协议,比如http/1.1等。

2.getServletPath()获取客户请求的JSP页面文件的目录。

3.getContentLength()获取客户提交的整个信息的长度。

4.getMethod()获取客户提交信息的方式,比如:

post或get。

5.getHeader(Strings)获取HTTP头文件中由参数s指定的头名字的值,一般来说s参数可取的头名有:

accept、referer、accept-language、content-type、accept-encoding、user-agent、host、content-length、connection、cookie等,比如,s取值user-agent将获取客户的浏览器的版本号等信息。

6.getHeaderNames()获取头名字的一个枚举

7.getHeaders(Strings)获取头文件中指定头名字的全部值的一个枚举

8.getRemoteAddr()获取客户的IP地址。

9.getRemoteHost()获取客户机的名称(如果获取不到,就获取IP地址)。

10.getServerName()获取服务器的名称。

11.getServerPort()获取服务器的端口号。

12.getParameterNames()获取客户提交的信息体部分中name参数值的一个枚举。

例:

tree3.jsp

<%@pagecontentType="text/html;charset=GB2312"%>

<%@pageimport="Java.util.*"%>

 


客户使用的协议是:

 <%Stringprotocol=request.getProtocol();

   out.println(protocol);

 %>


获取接受客户提交信息的页面:

 <%Stringpath=request.getServletPath();

   out.println(path);

 %>


接受客户提交信息的长度:

 <%intlength=request.getContentLength();

   out.println(length);

 %>


客户提交信息的方式:

 <%Stringmethod=request.getMethod();

   out.println(method);

 %>


获取HTTP头文件中User-Agent的值:

 <%Stringheader1=request.getHeader("User-Agent");

   out.println(header1);

 %>


获取HTTP头文件中accept的值:

 <%Stringheader2=request.getHeader("accept");

   out.println(header2);

 %>


获取HTTP头文件中Host的值:

 <%Stringheader3=request.getHeader("Host");

   out.println(header3);

 %>


获取HTTP头文件中accept-encoding的值:

 <%Stringheader4=request.getHeader("accept-encoding");

   out.println(header4);

 %>


获取客户的IP地址:

 <%String IP=request.getRemoteAddr();

   out.println(IP);

 %>


获取客户机的名称:

 <%StringclientName=request.getRemoteHost();

   out.println(clientName);

 %>


获取服务器的名称:

 <%StringserverName=request.getServerName();

   out.println(serverName);

 %>


获取服务器的端口号:

 <%intserverPort=request.getServerPort();

   out.println(serverPort);

%>


获取客户端提交的所有参数的名字:

 <%Enumerationenum=request.getParameterNames();

   while(enum.hasMoreElements())

      {Strings=(String)enum.nextElement();

      out.println(s);

      }   

   %>


获取头名字的一个枚举:

 <%Enumerationenum_headed=request.getHeaderNames();

   while(enum_headed.hasMoreElements())

      {Strings=(String)enum_headed.nextElement();

      out.println(s);

      }   

 %>


获取头文件中指定头名字的全部值的一个枚举:

 <%Enumerationenum_headedValues=request.getHeaders("cookie");

   while(enum_headedValues.hasMoreElements())

      {Strings=(String)enum_headedValues.nextElement();

      out.println(s);

      }   

 %>


4、获取HTML表单提交的数据

1)单选框radio

例:

 radio.jsp

<%@pagecontentType="text/html;charset=GB2312"%>

诗人李白是中国历史上哪个朝代的人:

 

   宋朝

   唐朝

   明朝

   元朝

    

小说红楼梦的作者是:

    

   曹雪芹

   罗贯中

   李白

   司马迁

   

   

 

answer.jsp:

<%@pagecontentType="text/html;charset=GB2312"%>

<%intn=0;

  Strings1=request.getParameter("R");

  Strings2=request.getParameter("P");

  if(s1==null)

   {s1="";}

  if(s2==null)

   {s2="";}

   if(s1.equals("b"))

   {n++;}

   if(s2.equals("a"))

   {n++;}

%>

您得了<%=n%>分

2)列表框

选择n的值:


   

     n=10

     n=20

     n=30

     n=40

     n=50

     n=100

   

    

  

 

sum.jsp:

<%@pagecontentType="text/html;charset=GB2312"%>

<%longsum=0;

  Strings1=request.getParameter("sum");

  Strings2=request.getParameter("n");

  if(s1==null)

   {s1="";}

  if(s2==null)

   {s2="0";}

  if(s1.equals("1"))

   {intn=Integer.parseInt(s2);

    for(inti=1;i<=n;i++)

      {sum=sum+i;

      }

   }

   elseif(s1.equals("2"))

   {intn=Integer.parseInt(s2);

    for(inti=1;i<=n;i++)

      {sum=sum+i*i;

      }

   }

   elseif(s1.equals("3"))

   {intn=Integer.parseInt(s2);

    for(inti=1;i<=n;i++)

      {sum=sum+i*i*i;

      }

   }

%>

您的求和结果是<%=sum%>

 

二、Response对象

对客户的请求做出动态的响应,向客户端发送数据。

1、Response重定向

在某些情况下,当响应客户时,需要将客户重新引导至另一个页面,可以使用response的sendRedirect(URL)方法实现客户的重定向。

例如:

response2.jsp:

Wheretogo

<%

Stringaddress=request.getParameter("where");

if(address!

=null){

if(address.equals("ChinaWebber"))

 response.sendRedirect("http:

//www.ChinaW");

 elseif(address.equals("Yahoo"))

  response.sendRedirect("");

 elseif(address.equals("Sun"))

  response.sendRedirect("");

}

%>

Pleaseselect:


 gotoChinaWebber

 gotoSun

 gotoMicrosoft

2、动态响应contenType属性

当一个用户访问一个jsp页面时,如果该页面用page指令设置页面的contentType属性是text/html,那么jsp引擎将按照这种属性值作出反映。

如果要动态改变这个属性值来响应客户,就需要使用response对象的setContentType(Strings)方法来改变contentType的属性值。

格式:

response.setContentType(Strings)

参数s可取text/html,,application/x-msExcel,application/msWord等。

例如:

response1.jsp

<%@pagecontentType="text/html;charset=GB2312"%>

我正在学习response对象的


setContentType方法

将当前页面保存为word文档吗?

 

  

 

<%Stringstr=request.getParameter("submit");

   if(str==null)

    {str="";

    }

   if(str.equals("yes"))

    {response.setContentType("application/msword;charset=GB2312");

    }

%>

 

response对象是一个javax.servlet.http.HttpServletResponse类的子类的对象

主要方法:

addCookie(Cookiecook)

addheader(Stringname,Stringvalue)

constrainsHeader(Stringname)

encodeURL()

flushBuffer()

getBufferSize()

getOutputStream()

sendError(int)

sendRedirect(Stringurl)

setContentType(StringcontentType)

setHeader(Stringname,Stringvalue)

例子:

addCookie设置Cookie

cookie是客户端保存的一种资源,常用来自动登录网站等。

index.jsp:

<%@pagecontentType="text/html;chars

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1