爱飞 发表于 2015-1-18 11:10:02

JAVA编程:实例详解JSP内置对象

一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。js|对象|内置对象|详解  jsp九种内置对象:request,reponse,out,session,application,config,pagecontext,page,exception.
  一.request对象:该对象封装了用户提交的信息,经由过程挪用该对象响应的办法能够猎取封装的信息,即便用该对象能够猎取用户提交信息。
  1.Request对象可使用getParameter(strings)办法猎取该表单经由过程text提交的信息。如:
Request.getParameter(“boy”)
  例:request1.jsp:
<%@pagecontentType="text/html;charset=GB2312"%>
<HTML>
<BODYbgcolor=green><FONTsize=1>
 <FORMaction="tree.jsp"method=postname=form>
   <INPUTtype="text"name="boy">
   <INPUTTYPE="submit"value="Enter"name="submit">
 </FORM>
</FONT>
</BODY>
</HTML>
  tree.jsp:
<%@pagecontentType="text/html;charset=GB2312"%>
<HTML>
<BODYbgcolor=green><FONTsize=1> 
<P>猎取文本框提交的信息:
 <%StringtextContent=request.getParameter("boy");
 %>
<BR>
 <%=textContent%>
<P>猎取按钮的名字:
 <%StringbuttonName=request.getParameter("submit");
 %>
<BR>
 <%=buttonName%>
</FONT>
</BODY>
</HTML>
  利用request对象猎取信息要分外当心,要制止利用空对象,不然会呈现NullPointerException非常,以是我们能够作以下处置.
  request3.jsp
<%@pagecontentType="text/html;charset=GB2312"%>
<HTML>
<BODYbgcolor=cyan><FONTsize=5>
 <FORM action=""method=postname=form>
    <INPUTtype="text"name="girl">
    <INPUTTYPE="submit"value="Enter"name="submit">
 </FORM> 
 <%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("<BR>"+String.valueOf(number)+"的平方根:");
       out.print("<BR>"+String.valueOf(r));
      }
     else
      {out.print("<BR>"+"请输出一个负数");
      }
    }
  catch(NumberFormatExceptione)
    {out.print("<BR>"+"请输出数字字符");
    }
  %>
</FONT>
</BODY>
</HTML>
  2.处置汉字信息:当request对象猎取客户提交的汉字字符时,会呈现乱马成绩,必需举行特别处置。起首,将猎取的字符串用ISO-8859-1举行编码,并将编码寄存到一个字节数组中,然后再将这个属组转化为字符窜对象马上。
如: StringtextContent=request.getParameter("boy");
  byte b[]=textContent.getBytes("ISO-8859-1");
textContent=newString(b);
  例:tree2.jsp
<%@pagecontentType="text/html;charset=GB2312"%>
<MHML>
<BODY> 
<P>猎取文本框提交的信息:
 <%StringtextContent=request.getParameter("boy");
  byte b[]=textContent.getBytes("ISO-8859-1");
  textContent=newString(b);
 %>
<BR>
 <%=textContent%>
<P>猎取按钮的名字:
 <%StringbuttonName=request.getParameter("submit");
  byte c[]=buttonName.getBytes("ISO-8859-1");
  buttonName=newString(c);
 %>
<BR>
 <%=buttonName%>
</BODY>
</HTML>
  3.经常使用办法举例:
getProtocol(), getServletPath(),getContentLength(),getMethod(),getRemoteAddr(),getRemoteHost(),getServerName(),getParameterName()
例:
<%@pagecontentType="text/html;charset=GB2312"%>
<%@pageimport="java.util.*"%>
<MHML>
<BODYbgcolor=cyan>
<Fontsize=5> 
<BR>客户利用的协定是:
 <%Stringprotocol=request.getProtocol();
   out.println(protocol);
 %>
<BR>猎取承受客户提交信息的页面:
 <%Stringpath=request.getServletPath();
   out.println(path);
 %>
<BR>承受客户提交信息的长度:
 <%intlength=request.getContentLength();
   out.println(length);
 %>
<BR>客户提交信息的体例:
 <%Stringmethod=request.getMethod();
   out.println(method);
 %>
<BR>猎取HTTP头文件中User-Agent的值::
 <%Stringheader1=request.getHeader("User-Agent");
   out.println(header1);
 %>
<BR>猎取HTTP头文件中accept的值:
 <%Stringheader2=request.getHeader("accept");
   out.println(header2);
 %>
<BR>猎取HTTP头文件中Host的值:
 <%Stringheader3=request.getHeader("Host");
   out.println(header3);
 %>
<BR>猎取HTTP头文件中accept-encoding的值:
 <%Stringheader4=request.getHeader("accept-encoding");
   out.println(header4);
 %>
<BR>猎取客户的IP地点:
 <%String IP=request.getRemoteAddr();
   out.println(IP);
 %>
<BR>猎取客户机的称号:
 <%StringclientName=request.getRemoteHost();
   out.println(clientName);
 %>
<BR>猎取服务器的称号:
 <%StringserverName=request.getServerName();
   out.println(serverName);
 %>
<BR>猎取服务器的端标语:
 <%intserverPort=request.getServerPort();
   out.println(serverPort);
 %>
<BR>猎取客户端提交的一切参数的名字:
 <%Enumerationenum=request.getParameterNames();
   while(enum.hasMoreElements())
      {Strings=(String)enum.nextElement();
      out.println(s);
      }   
   %>
<BR>猎取头名字的一个列举:
 <%Enumerationenum_headed=request.getHeaderNames();
   while(enum_headed.hasMoreElements())
      {Strings=(String)enum_headed.nextElement();
      out.println(s);
      }   
 %>
<BR>猎取头文件中指定头名字的全体值的一个列举:
 <%Enumerationenum_headedValues=request.getHeaders("cookie");
   while(enum_headedValues.hasMoreElements())
      {Strings=(String)enum_headedValues.nextElement();
      out.println(s);
      }   
 %>
<BR>
</Font>
</BODY>
</HTML>
  4.猎取HTML表单提交的数据
  单选框radio
  例:
  radio.jsp:
<HTML>
<%@pagecontentType="text/html;charset=GB2312"%>
<BODYbgcolor=cyan><Fontsize=1>
<P>墨客李白是中国汗青上哪一个朝代的人:
 <FORMaction="answer.jsp"method=postname=form>
   <INPUTtype="radio"name="R"value="a">宋代
   <INPUTtype="radio"name="R"value="b">唐代
   <INPUTtype="radio"name="R"value="c">明代
   <INPUTtype="radio"name="R"value="d"checked="ok">元代
    <BR>
<P>小说红楼梦的作者是:
    <BR>
   <INPUTtype="radio"name="P"value="a">曹雪芹
   <INPUTtype="radio"name="P"value="b">罗贯中
   <INPUTtype="radio"name="P"value="c">李白
   <INPUTtype="radio"name="P"value="d">司马迁
   <BR>
   <INPUTTYPE="submit"value="提交谜底"name="submit">
 </FORM>
</FONT>
</BODY>
</HTML>
answer.jsp:
<HTML>
<%@pagecontentType="text/html;charset=GB2312"%>
<BODYbgcolor=cyan><Fontsize=1>
<%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++;}
%>
<P>您得了<%=n%>分
</FONT>
</BODY>
</HTML>
  列表框<select><Option>
  例:
  select.jsp:
<HTML>
<%@pagecontentType="text/html;charset=GB2312"%>
<BODYbgcolor=cyan><Fontsize=1>
<P>选择盘算和的体例
 <FORMaction="sum.jsp"method=postname=form>
   <Selectname="sum"size=2>
     <OptionSelectedvalue="1">盘算1到n的一连和
     <Optionvalue="2">盘算1到n的平方和
     <Optionvalue="3">盘算1到n的立方和
   </Select>
<P>选择n的值:<BR>
   <Selectname="n">
     <Optionvalue="10">n=10
     <Optionvalue="20">n=20
     <Optionvalue="30">n=30
     <Optionvalue="40">n=40
     <Optionvalue="50">n=50
     <Optionvalue="100">n=100
   </Select>
    <BR><BR>
  <INPUTTYPE="submit"value="提交你的选择"name="submit">
 </FORM>
</FONT>
</BODY>
</HTML>
  sum.jsp:
<HTML>
<%@pagecontentType="text/html;charset=GB2312"%>
<BODYbgcolor=cyan><Fontsize=1>
<%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;
      }
   }
%>
<P>您的乞降了局是<%=sum%>
</FONT>
</BODY>
</HTML>
  二.Response对象:对客户的哀求做出静态的呼应,向客户端发送数据。
  1.静态呼应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"%>
<HTML>
<BODYbgcolor=cyan><Fontsize=1>
<P>我正在进修response对象的
<BR>setContentType办法
<P>将以后页面保留为word文档吗?
 <FORMaction=""method="get"name=form>
  <INPUTTYPE="submit"value="yes"name="submit">
 </FORM>
<%Stringstr=request.getParameter("submit");
   if(str==null)
    {str="";
    }
   if(str.equals("yes"))
    {response.setContentType("application/msword;charset=GB2312");
    }
%>
</FONT>
</BODY>
</HTML>
  2.Response重定向:在某些情形下,当呼应客户时,必要将客户从头引诱至另外一个页面,可使用response的sendRedirect(URL)办法完成客户的重定向。
比方:response2.jsp:
<html>
<head><title>Wheretogo</title></head>
<body>
<%
Stringaddress=request.getParameter("where");
if(address!=null){
if(address.equals("ChinaWebber"))
 response.sendRedirect("http://www.ChinaWebber.com");
 elseif(address.equals("Yahoo"))
  response.sendRedirect("http://www.yahoo.com");
 elseif(address.equals("Sun"))
  response.sendRedirect("http://www.sun.com");
}
%>
<b>Pleaseselect:</b><br>
<formaction="goto.jsp"method="GET">
<selectname="where">
 <optionvalue="ChinaWebber"selected>gotoChinaWebber
 <optionvalue="Sun">gotoSun
 <optionvalue="Microsoft">gotoMicrosoft
</select>
<inputtype="submit"value="go">
</form>
  三.Session对象
  1.甚么是Session:Session对象是一个jsp内置对象,它在第一个jsp页面被装载时主动创立,完成会话期办理。
  从一个客户翻开扫瞄器并毗连到服务器入手下手,到客户封闭扫瞄器分开这个服务器停止,被称为一个会话。当一个客户会见一个服务器时,大概会在这个服务器的几个页面之间重复毗连,重复革新一个页面,服务器应该经由过程某种举措晓得这是统一个客户,这就必要session对象。
  2.session对象的Id:当一个客户初次会见服务器上的一个jsp页面时,jsp引擎发生一个session对象,同时分派一个String范例的Id号,jsp引擎同时将这个Id号发送到客户端,寄存在Cookie中,如许session对象和客户之间就创建了逐一对应的干系。当客户再会见毗连该服务器的其他页面时,不再分派给客户新的session对象,直到客户封闭扫瞄器后,服务器端该客户的session对象才作废,而且和客户的会话对应干系消散。当客户从头翻开扫瞄器再毗连到该服务器时,服务器为该客户再创立一个新的session对象。
  3.session对象经常使用办法:
  i.publicStringgetId():猎取session对象编号。
  ii.publicvoidsetAttribute(Stringkey,Objectobj):将参数Object指定的对象obj增加到session对象中,并为增加的对象指定一个索引关头字。
  iii.publicObjectgetAttribute(Stringkey):猎取session对象中含有关头字的对象。
  iv.publicBooleanisNew():判别是不是是一个新的客户。
  比方:session1.jsp
<%@pagecontentType="text/html;charset=GB2312"%>
<HTML>
<BODYbgcolor=cyan><FONTSize=5>
<BODY>
  <%Strings=session.getId();
  %>
<P>您的session对象的ID是:
<BR>
<%=s%>
<BODY>
<HTML>
比方:session2.jsp
<%@pagecontentType="text/html;charset=GB2312"%>
<HTML>
<BODY>
  <%!intnumber=0;  
  synchronizedvoidcountPeople()
    {
         number++;
    }
 %>
 <%
  if(session.isNew())
   {
    countPeople();
    Stringstr=String.valueOf(number);
    session.setAttribute("count",str);
   }
  %>
<P>您是第<%=(String)session.getAttribute("count")%>个会见本站的人。
<BODY>
<HTML>
  四.aplication对象
  1.甚么是application:
  服务器启动后就发生了这个application对象,当客户再所会见的网站的各个页面之间扫瞄时,这个application对象都是统一个,直到服务器封闭。可是与session分歧的是,一切客户的application对象都是统一个,即一切客户共享这个内置的application对象。
  2.Application对象经常使用办法:
  (1)publicvoidsetAttribute(Stringkey,Objectobj):将参数Object指定的对象obj增加到application对象中,并为增加的对象指定一个索引关头字。
  (2)publicObjectgetAttribute(Stringkey):猎取application对象中含有关头字的对象。
  例:application.jsp
<HTML>
<HEAD>
<TITLE>application变量的利用</TITLE>
</HEAD>
<BODY>
<CENTER>
<FONTSIZE=5COLOR=blue>application变量的利用</FONT>
</CENTER>
<HR>
<P></P>
<%
Objectobj=null;
StringstrNum=(String)application.getAttribute("Num");
intNum=0;
//反省是不是Num变量是不是可获得
if(strNum!=null)
Num=Integer.parseInt(strNum)+1;//将获得的值增添1
application.setAttribute("Num",String.valueOf(Num));//肇端Num变量值
%>
application对象中的<Fontcolor=blue>Num</Font>变量值为
<Fontcolor=red><%=Num%></Font><BR>
</BODY>
</HTML>
  五.Out对象
  Out对象是一个输入流,用来向客户端输入数据。Out对象用于各类数据的输入。
  经常使用办法:
  (1)out.print():输入各类范例数据。
  (2)out.newLine():输入一个换行符。
  (3)out.close():封闭流。
  例:out.jsp
<%@pagecontentType="text/html;charset=GB2312"%>
<%@page import="java.util.Date"%>
<HTML>
<HEAD>
<%
DateNow=newDate();
Stringhours=String.valueOf(Now.getHours());
Stringmins=String.valueOf(Now.getMinutes());
Stringsecs=String.valueOf(Now.getSeconds());
%>
如今是
<%out.print(String.valueOf(Now.getHours()));%>
小时
<%out.print(String.valueOf(Now.getMinutes()));%>

<%out.print(String.valueOf(Now.getSeconds()));%>

</FONT>
</BODY>
</HTML>
  六.Cookie
  1.甚么是Cookie:
  Cookie是Web服务器保留在用户硬盘上的一段文本。Cookie同意一个Web站点在用户的电脑上保留信息而且随后再取回它。
  举例来讲,一个Web站点大概会为每个会见者发生一个独一的ID,然后以Cookie文件的情势保留在每一个用户的呆板上。
  假如您利用IE扫瞄器会见Web,您会看到一切保留在您的硬盘上的Cookie。它们最常寄存的中央是:c:windowscookies(在Win 2000中则是C:Documents and Settings您的用户名Cookies)
  cookie是以“关头字key=值value“的格局来保留记录的.
  2.创立一个Cookie对象,挪用Cookie对象的机关函数能够创立Cookie。Cookie对象的机关函数有两个字符串参数:Cookie名字和Cookie值。
  Cookiec=newCookie(“username”,”john”);
  3.jsp中假如要将封装好的Cookie对象传送到客户端,利用response的addCookie()办法。
  格局:response.addCookie(c)
  4.读取保留到客户真个Cookie,利用request对象的getCookies()办法,实行时将一切客户端传来的Cookie对象以数组的情势分列,假如要掏出切合必要的Cookie对象,就必要轮回对照数组内每一个对象的关头字。
  例:
Cookie[]c=request.getCookies();
if(c!=null)
for(intI=0;I<c.length;I++)
if(“username”.equals(c.getName()))
out.println(c.getValue());
  5.设置Cookie对象无效工夫:setMaxAge()。
c.setMaxAge(3600);
  6.Cookie使用
  1.网站可以准确地晓得有几人扫瞄过。
  因为代办署理服务器、缓存等的利用,独一能匡助网站准确统计来访人数的办法就是为每一个会见者创建一个独一的ID。利用Cookie,网站能够完成以下事情:
  ●测定几人会见过;
  ●测定会见者有几是新用户(即第一次来访),几是老用户;
  ●测定一个用户多久会见一次网站。
  网站利用数据库到达上述方针。当一个用户第一次会见时,网站在数据库中创建一个新的ID,并把ID经由过程Cookie传送给用户。用户再次来访时,网站把该用户ID对应的计数器加1,失掉用户的来访次数。
例:Cookie.jsp
<%@pagecontentType="text/html;charset=GB2312"
  import="java.util.Date"%>
<HTML>
<HEAD>
<TITLE>Cookie的存取</TITLE>
</HEAD>
<BODY>
<CENTER>
<FONTSIZE=5COLOR=blue>Cookie的存取</FONT>
</CENTER>
<HR>
<P></P>
<%
//创建Cookie变数
CookieIntVal=newCookie("IntVal","100");
Cookietemp=null;
response.addCookie(IntVal);//将Cookie变数到场Cookie中
Cookie[]cookies=request.getCookies();
//获得Cookie材料
intcookielen=cookies.length;
//获得Cookie变数阵列的长度
if(cookielen!=0)//判别是不是乐成获得Cookie材料
{ 
  for(inti=0;i<cookielen;i++)
  { 
    temp=cookies;//获得cookies阵列中的Cookie变数
    if(temp.getName().equals("IntVal"))
    {//判别是不是获得名为DateVal的Cookie材料
      %>
      Cookie中<Fontcolor=blue>IntVal</Font>变量的值为
      <Fontcolor=red><%=IntVal.getValue()%></Font><BR>
      <%
              }
       
  } 
}
else
{
  %>
  不存在Cookie<BR>
  <%
}
%>
</BODY>
</HTML>
例:CookieDate.jsp
<%@pagecontentType="text/html;charset=GB2312"
  import="java.util.Date"%>
<HTML>
<HEAD>
<TITLE>自Cookie存取日期/工夫数据</TITLE>
</HEAD>
<BODY>
<CENTER>
<FONTSIZE=5COLOR=blue>自Cookie存取日期/工夫数据</FONT>
</CENTER>
<HR>
<P></P>
<%
DateNow=newDate();//获得今朝的体系工夫
CookieDateVal=newCookie("DateVal",String.valueOf(Now.getTime()));
//欲将贮存至Cookie工夫/日期值转换为毫秒数
response.addCookie(DateVal);//将Cookie变数到场Cookie中
Cookietemp=null;
DateVal=null;//重设Cookie变数
Cookie[]cookies=request.getCookies();
//获得Cookie材料
intcookielen=cookies.length;
//获得Cookie变数阵列的长度
if(cookielen!=0)//判别是不是乐成获得Cookie材料
{ 
  for(inti=0;i<cookielen;i++)
  { 
    temp=cookies;//获得cookies阵列中的Cookie变数
        
    if(temp.getName().equals("DateVal"))
    {//判别是不是获得名为DateVal的Cookie材料
      %>
      Cookie中<Fontcolor=blue>DateVal</Font>
      变量的值为<Fontcolor=red>
      <%=newDate(Long.parseLong(temp.getValue()))%>
      </Font><BR>
      <%
    }
  }
}
else//若没法获得Cookie材料则实行上面的叙说
{
%>
没法获得Cookie<BR>
<%
}
%>
</BODY>
</HTML>

Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)

灵魂腐蚀 发表于 2015-1-20 15:40:10

http://www.ckuyun.com/去下载,或到同济技术论坛的服务器ftp://www.ckuyun.com去下,安装上有什么问题,可以到论坛上去提问。

只想知道 发表于 2015-1-22 05:52:54

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

因胸联盟 发表于 2015-1-22 14:13:32

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

小女巫 发表于 2015-1-25 15:14:38

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

第二个灵魂 发表于 2015-1-25 16:30:33

Java 编程语言的风格十分接近C、C++语言。

冷月葬花魂 发表于 2015-2-1 19:28:46

是一种为 Internet发展的计算机语言

活着的死人 发表于 2015-2-7 14:01:16

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

小妖女 发表于 2015-2-22 03:48:11

Java是一种计算机编程语言,拥有跨平台、面向对java

老尸 发表于 2015-3-6 23:04:00

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

仓酷云 发表于 2015-3-13 22:08:55

是一种突破用户端机器环境和CPU

海妖 发表于 2015-3-20 20:23:26

是一种使网页(Web Page)产生生动活泼画面的语言
页: [1]
查看完整版本: JAVA编程:实例详解JSP内置对象