??xml version="1.0" encoding="utf-8" standalone="yes"?>国产成人亚洲综合色影视,久久久久亚洲国产,亚洲综合国产精品第一页http://m.tkk7.com/microlab4321/articles/137304.html冬天的猪冬天的猪Thu, 16 Aug 2007 08:05:00 GMThttp://m.tkk7.com/microlab4321/articles/137304.htmlhttp://m.tkk7.com/microlab4321/comments/137304.htmlhttp://m.tkk7.com/microlab4321/articles/137304.html#Feedback0http://m.tkk7.com/microlab4321/comments/commentRss/137304.htmlhttp://m.tkk7.com/microlab4321/services/trackbacks/137304.html
在一个JSP文gW一ơ被hӞJSP引擎把该JSP文g转换成ؓ一个servlet。而这个引擎本w也是一个servletQ在JSWDK或WEBLOGIC中,它就是JspServlet?nbsp;JSP引擎先把该JSP文g转换成一个Java源文Ӟ在{换时如果发现jsp文g有Q何语法错误,转换q程中断,q向服务端和客户端输出出错信息;如果转换成功Q?nbsp;JSP引擎用javac把该Java源文件编译成相应的class文g。然后创Z个该SERVLET的实例,该SERVLET的jspInit()Ҏ被执行,jspInit()Ҏ在servlet的生命周期中只被执行一ơ。然后jspService()Ҏ被调用来处理客户端的h。对每一个请求,JSP引擎创徏一个新的线E来处理该请求。如果有多个客户端同时请求该JSP文gQ则JSP引擎会创建多个线E。每个客Lh对应一个线E。以多线E方式执行可大大降低对系l的资源需?提高pȝ的ƈ发量及响应时?但应该注意多U程的编E限Ӟ׃该servlet始终M内存Q所以响应是非常快的?nbsp;如果.jsp文g被修改了Q服务器根据设|决定是否对该文仉新编译,如果需要重新编译,则将~译l果取代内存中的servletQƈl箋上述处理q程?nbsp;虽然JSP效率很高Q但在第一ơ调用时׃需要{换和~译而有一些轻微的延迟?nbsp;此外Q如果在M时候如果由于系l资源不的原因QJSP引擎以某种不确定的方式servlet从内存中Ud。当q种情况发生时jspDestroy()Ҏ首先被调? 然后servlet实例便被标记加入"垃圾攉"处理?nbsp;jspInit()及jspDestory()格式如下Q可在jspInit()中进行一些初始化工作,如徏立与数据库的q接Q或建立|络q接Q从配置文g中取一些参数等Q在jspDestory()中释攄应的资源?nbsp; 

<%! 
public void jspInit() 

       System.out.println("jspinit");  

  
%> 
  
<%! 
public void jspDestory() 

       System.out.println("jspDestory");  

%> 

二、服务端的输出缓冲区 

~省情况?服务端要输出到客L的内?不直接写到客L,而是先写C个输出缓冲区?只有在下面三中情况下Q才会把该缓冲区的内容输出到客户端上Q?nbsp;


该JSP|页已完成信息的输出  
输出~冲区已?nbsp; 
JSP中调用了out.flush()或response.flushbuffer()  
输出~冲区的大小可以?或response.setBufferSize()讄,如下Q?nbsp; 
讄输出~冲区的大小?KB。或response.setBufferSize(1);  
讄输出~冲区的大小?Q即不缓册Ӏ或response.setBufferSize(0);  
用response.getBufferSize()或out.getBufferSize()可取的输出缓冲区的大?单位为字? 用response.isCommitted()可检查看服务端是否已数据输出到客户? 如果q回值是TRUE则已数据输出到客户?是FALSE则还没有.  

三、服务端输出重定?nbsp;

有以?U方法可以做到输出重定向:  

RESPONSE.SETREDERECT("URL") 该方法通过修改HTTP协议的HEADER部分,Ҏ览器下达重定向指令的,使浏览器昄重定向网늚内容. response.sendRedirect("http://localhost:7001/index.html");  
下面的方法也能改变HTTP HEADER属性,它的原理?nbsp;1 是一L.  
<%  
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);  
String newLocn="/index.html";  
response.setHeader("Location",newLocn);  
% >  
采用<JSP:FORWORD> 该方法是利用服务器端先将数据输出到缓冲区的机?在把~冲区的内容发送到客户端之?原来的不发?改ؓ发送该面的内?如果?lt;JSP:FORWORD>之前有很多输?前面的输出已使缓冲区?自动输出到客户?那么该语句将不v作用,q一点应该特别注? 如下面的例子?1)会输出index.html的内容,2 不会输出index.html的内容,而是输出out.println("@@@@@@@@@@@@@@@@@"); 中的内容,q且在服务端会抛?java.lang.IllegalStateException: Response already committed 异常Q但客户端没有Q何错误输出?nbsp; 
(1) 
<%@page buffer="1kb"%> 
  
<% 
long i=0; 
  
for(i=0;i<10;i++) 

       out.println("@@@@@@@@@@@@@@@@@"); 

%> 
  
<jsp:forward page="./index.html" /> 
  
  
(2) 
<%@page buffer="1kb"%> 
  
<% 
long i=0; 
  
for(i=0;i<600;i++) 
{                  
       out.println("@@@@@@@@@@@@@@@@@"); 

%> 
  

说明Q?nbsp;
1. Ҏ(1),(2)可以使用变量表示重定向的地址;Ҏ(3)不能使用变量表示重定向的地址?nbsp;
String add="./index.html";  
<jsp:forward page= add />  
无法重定向到index.html中去  

String add=http://localhost:7001/index.html  
response.sendRedirect(add);  
可以重定向到http://localhost:7001/index.html中去?nbsp; 

2. 采用Ҏ(1),(2)request中的变量(通过request.setAttribute()保存到request中的?不能在新的页面中采用,采用Ҏ(3)? lg,我们应该采用(1),(2)重定向比较好.  


四、JSP中正应用类:  

应该把类当成JAVA BEAN来用Q不要在<% %> 中直接? 如下的代?1)l过JSP引擎转化后会变ؓ代码(2): 
从中可看出如果把一个类在JSP当成JAVA BEAN 使用,JSP会根据它的作用范围把它保存到相应的内部对象中. 
如作用范围ؓrequest,则把它保存到request对象?q且只在W一ơ调?对象的gؓnull)它时q行实例? 而如果在<% %>中直接创cȝ一个对?则每ơ调用JSP?都要重新创徏该对?会媄响性能.  

代码(1) 
<jsp:useBean id="test" scope="request" class="demo.com.testdemo"> 
</jsp:useBean> 
  
<% 
test.print("this is use java bean"); 
  
testdemo td= new testdemo(); 
td.print("this is use new"); 
%> 
  


代码(2) 
demo.com.testdemo test = (demo.com.testdemo)request.getAttribute("test");  
if (test == null)  
{  
       try  
       {  
                 test = (demo.com.testdemo) java.beans.Beans.instantiate(getClass().getClassLoader(),"demo.com.testdemo");  
       }  
       catch (Exception _beanException)  
       { 
               throw new weblogic.utils.NestedRuntimeException("cannot instantiate 'demo.com.testdemo'",_beanException);  
       }  
       request.setAttribute("test", test);  
       out.print("\r\n"); 
}  
out.print("\r\n\r\n\r\n"); 
test.print("this is use java bean");  
  
testdemo td= new testdemo(); 
td.print("this is use new"); 

  



五、JSP的调?nbsp; 

JSP的调试比较麻?特别是当bean是在一个session中存在时Q更加困难。得从好几个面开始往里面走才行。通常是用out.println()或System.out.print()来打一大堆的信息来查问题。如果是用jbuilder做开?它能直接调试JSP.不过更重要的是知道错误生的原因及解x法。下面对一些JSP~程常见错误q行分析?nbsp; 

(1).java.lang.NullPointerException异常 
一般是对一个ؓNULL值的变量q行操作引v?如下面的操作׃抛出 
java.lang.NullPointerException 
String a = null;  
a.substring(0,1);  
  
为避免这U异常最好在对变量操作之前检查看它是否ؓNULL?? 
<% String ss=Session.getAttribute("NAME")  
if isnull(ss)  
{  

}  
else  
{  

}  
%>  

(2).JSP是用JAVA写的Q所以它是大写敏感的,用过其他~程语言的h最Ҏ犯这个错误。另外在览器的地址栏中输入的访问JSP的地址也是区分大小写的.如http://localhost:7001/demo/t.jsp与http://localhost:7001/Demo/t.jsp是不一L 

(3).在jsp中判断字W串要用compareToҎQ不要用==Q因为在java中String变量不是一个简单的变量而是一个类实例Q不同的Ҏ会得?nbsp;不同的结果,如下所C:  

   

  String str1="ABCD";  
  String str2="ABCD"; (?nbsp;String str2="AB"+"CD";   
  if (str1==str2)  
   out.print("yes");  
  else  
   out.print("no");  
  l果?yes"?nbsp; 
   

  String str1,str2,str3;  
  str1="ABCD";  
  str2="AB";  
  str3=str2+"CD";  
  if (str1==str3)  
   out.print("yes");  
  else  
   out.print("no");  
  l果?no"?nbsp; 


String str1=new String("ABCD");  
  String str2=new String("ABCD");  
  if (str1==str2)  
   out.print("yes");  
  else  
   out.print("no");  
  l果?no"?nbsp; 


String str1=new String("ABCD");  
  String str2=new String("ABCD");  
  if (str1.compareTo(str2)==0)  
   out.print("yes");  
  else  
   out.print("no");  
  l果?yes"?nbsp; 

(4)防止JSP或SERVLET中的输出被浏览器保存在缓冲区? 
览器在默认情况下会把浏览过的网保存在~冲Z,在调试时,一般不希望q样.把下面的脚本加入E序?可防止JSP或SERVLET中的输出被浏览器保存在缓冲区?nbsp; 
<%  
response.setHeader("Cache-Control","no-store"); //HTTP 1.1  
response.setHeader("Pragma","no-cache"); //HTTP 1.0  
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server  
%>  
在IE中也可通过讄实现Q把/工具/INTERNET选项/常规/讄/的检察所存页面的较新版本,设ؓ每次讉K该页旉? 


六、COOKIE 

HTTP COOKIE实质是服务端与在客户端之间传送的普通HTTP?可保存也可不保存在客L盘?如果保存,每一个文件大不过4K的文本文?多个COOKIE可保存到同一个文件中. 如果从编E角度来?在JSP中COOKIE是JAVA提供的一个类.常用的方法如下所表示Q因为客L可能不接受COOKIEQ所以徏议不用它Q改用SESSION{其他方式?nbsp; 


public class cookie  
{  
public String getDomain() //q回该COOKIE的有效域  
public int getMaxAge() //q回该COOKIE的有效期,单位为秒  
public String getName() //q回该COOKIE的名U?nbsp; 
public String getPath() //q回该COOKIE的有效\?nbsp; 
public boolean getSecure() //q回该COOKIE的安全设|?nbsp; 
public String getValue() //q回该COOKIE的?nbsp; 
public void setDomain(java.lang.String pattern) //讄该COOKIE的有效域  
public void setMaxAge(int expiry) //讄该COOKIE的有效期,单位为秒  
public void setPath(java.lang.String uri) //讄该COOKIE的有效\?nbsp; 
public void setSecure(boolean flag) //讄该COOKIE的安全设|?nbsp; 
public void setValue(java.lang.String newValue) //讄该COOKIE的?nbsp; 
}  
一个COOKIE包含以下五部?  

NAME/VALUE?讄该COOKIE的名字及它保存的?nbsp; 
COOKIE通常和服务器相关,如果域设ؓJAVA.SUN.COM,那么该COOKIE和q个域相?只对该网址起作?当浏览该|址?览器将把该COOKIE的内容发送给服务?COOKIE是作为HTTP HEADER的一部分被发送的Q如果没有设|域,那么COOKIE只和创COOKIE的服务器相关.  
路径用于指定服务器上可以使用该COOKIE的文件所在的路径,它只对该|址下的该\径下的应用v作用."/"表示服务器上所有目录都可以使用该COOKIE.  
COOKIE都有一个有效期,有效期默认gؓ-1,q表C没有保存该COOKIE,当该览器退出时,该COOKIE立即失效.  
安全选项true/false,如果讄为true,那么在服务端与在客户端之间传送该COOKIE的内Ҏ,采用HTTPS协议.  
如何查一个客L是否支持COOKIE的方?  
用下面的Ҏ写一个COOKIE到客L,q确认成?nbsp; 
try  
{  
Cookie c = new Cookie("mycookie","COOKIE TEST");  
response.addCookie(c);  
}  
catch(Exception e)  
{  
      System.out.println(e);  
}  


然后在一个新的JSP文g?用下面的Ҏ取客L的COOKIE到cookies? 如果cookies.length ==0,说明该客L的浏览器不支持COOKIE  
try  
{  
Cookie[] cookies = request.getCookies();  
if(cookies.length ==0)  
{  
      System.out.println("not support cookie");  
}  
}  
catch(Exception e)  
{  
      System.out.println(e);  
}  



七、JSP和SERVLET的区? 

SUN首先发展出SERVLETQ其功能比较强劲Q体p设计也很先q,只是Q它输出HTML语句q是采用了老的CGI方式Q是一句一句输出,所以,~写和修改HTML非常不方ѝ?nbsp;后来SUN推出了类gASP的JSPQ把JAVA代码嵌套到HTML语句中,q样Q就大大化和方便了网늚设计和修攏VASPQPHPQJSP都是嵌套型的SCRIPT语言?nbsp;一个分布式pȝ应分Z层:表示?业务逻辑?数据存取?在J2EE体系l构?SERVLET用来写业务逻辑层是很强大的Q但是对于写表示层就很不方便。JSP则主要是Z方便写表C层而设计的。ENTITY BEAN实现数据存取层,SESSION BEAN实现业务逻辑层。如果是单的应用pȝ,可采用JSP+BEANS的结构进行设?JSP中应该仅仅存放与表示层有关的东西Q也是_只放输出HTML|页的部份。而所有的数据计算Q数据分析,数据库联l处理,l统是属于业务逻辑层,应该攑֜JAVA BEANS中。通过JSP调用JAVA BEANSQ实C层的整合?nbsp;实际上,微Y的DNA技术,单说Q就是ASP+COM/DCOM技术。与JSP+BEANS完全cMQ所有的表示层由ASP完成Q所有的业务逻辑由COM/DCOM完成?nbsp;Z么要采用q些lg技术呢Q因为单U的ASP/JSP语言是非怽效率执行的,如果出现大量用户点击Q纯SCRIPT语言很快到达了他的功能上限Q而组件技术就能大q度提高功能上限Q加快执行速度。另外一斚wQ纯SCRIPT语言表C层和业务逻辑层؜在一P造成修改不方便,q且代码不能重复利用Q采用组件技术就只改lg可以了?nbsp;对于复杂的应用,应该采用ENTITY BEAN实现数据存取层,SESSION BEAN实现业务逻辑层,用JSP来调用SESSION BEANQ由SESSION BEAN调用ENTITY BEAN。即采用JSP+EJB来构Z个复杂的分布式系l。它比JSP+BEANh更高的吞吐量Q可靠性,安全性。综上所qͼ对简单应用,可采用JSP+BAENQ对复杂的应用系l,应采用JSP+EJBQSERVLET变的无轻重。用JSP完全可替代它?

冬天的猪 2007-08-16 16:05 发表评论
]]>
如何解决JSP面昄q问题 http://m.tkk7.com/microlab4321/articles/137187.html冬天的猪冬天的猪Thu, 16 Aug 2007 04:15:00 GMThttp://m.tkk7.com/microlab4321/articles/137187.htmlhttp://m.tkk7.com/microlab4321/comments/137187.htmlhttp://m.tkk7.com/microlab4321/articles/137187.html#Feedback0http://m.tkk7.com/microlab4321/comments/commentRss/137187.htmlhttp://m.tkk7.com/microlab4321/services/trackbacks/137187.html一、JSP面昄q

二、表单提交中文时出现q

三、数据库q接时出Cؕ?

大家在JSP的开发过E中Q经常出C文ؕ码的问题Q可能一臛_扰着您,我现在把我在JSP开发中遇到的中文ؕ码的问题及解军_法写出来供大家参考?

一、JSP面昄q

下面的显C页?display.jsp)出Cؕ码:

<html>
            <head>
            <title>JSP的中文处?lt;/title>
            <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
            </head>
            <body>
            <%
            out.print("JSP的中文处?);
            %>
            </body>
            </html>

对不同的WEB服务器和不同的JDK版本Q处理结果就不一栗原因:服务器用的~码方式不同和浏览器对不同的字符昄l果不同而导致的。解军_法:在JSP面中指定编码方?gb2312),卛_面的第一行加上:

英文代码<%@ page contentType="text/html; charset=gb2312"%>

可以消除ؕ码了。完整页面如下:

<%@ page contentType="text/html; charset=gb2312"%>
            <html>
            <head>
            <title>JSP的中文处?lt;/title>
            <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
            </head>
            <body>
            <%
            out.print("JSP的中文处?);
            %>
            </body>
            </html>

二、表单提交中文时出现q

下面是一个提交页?submit.jsp)Q代码如下:

<html>
            <head>
            <title>JSP的中文处?lt;/title>
            <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
            </head>
            <body>
            <form name="form1" method="post" action="process.jsp">
            <div align="center">
            <input type="text" name="name">
            <input type="submit" name="Submit" value="Submit">
            </div>
            </form>
            </body>
            </html>


下面是处理页?process.jsp)代码Q?

<%@ page contentType="text/html; charset=gb2312"%>
            <html>
            <head>
            <title>JSP的中文处?lt;/title>
            <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
            </head>
            <body>
            <%=request.getParameter("name")%>
            </body>
            </html>

如果submit.jsp提交英文字符能正显C,如果提交中文时就会出Cؕ码。原因:览器默认用UTF-8~码方式来发送请求,而UTF-8和GB2312~码方式表示字符时不一Pq样出C不能识别字符。解军_?通过request.seCharacterEncoding("gb2312")对请求进行统一~码Q就实现了中文的正常昄。修改后的process.jsp代码如下Q?

<%@ page contentType="text/html; charset=gb2312"%>
            <%
            request.seCharacterEncoding("gb2312");
            %>
            <html>
            <head>
            <title>JSP的中文处?lt;/title>
            <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
            </head>
            <body>
            <%=request.getParameter("name")%>
            </body>
            </html>

三、数据库q接出现q

只要涉及中文的地方全部是qQ解军_法:在数据库的数据库URL中加上useUnicode=true&characterEncoding=GBKOK了?

四、数据库的显CZؕ?

在mysql4.1.0?varcharcdQtextcd׃出现中文qQ对于varcharcd把它设ؓbinary属性就可以解决中文问题Q对于textcdp用一个编码{换类来处理,实现如下Q?

public String iso2gb(String qs)
            {
            try{
            if (qs == null) return "NULL";
            else
            {
            return new String(qs.getBytes("iso-8859-1"),"gb2312");
            }
            }
            catch(Exception e){
            System.err.println("iso2gb errorQ?+e.getMessage());
            }
            return "NULL";
            }
            public String gb2iso(String qs)
            {
            try
            {
            if (qs == null) return "NULL";
            else {
            return new String(qs.getBytes("gb2312"),"iso-8859-1"); }
            }
            catch(Exception e){ System.err.println("gb2iso errorQ?+e.getMessage());}
            return "NULL";
            }

字符存入数据库时?gb2iso()函数Q将字符从数据库取出Ӟ再用 iso2gb()函数?/p>

冬天的猪 2007-08-16 12:15 发表评论
]]>
JSP中的表达式与脚本D?http://m.tkk7.com/microlab4321/articles/137184.html冬天的猪冬天的猪Thu, 16 Aug 2007 04:09:00 GMThttp://m.tkk7.com/microlab4321/articles/137184.htmlhttp://m.tkk7.com/microlab4321/comments/137184.htmlhttp://m.tkk7.com/microlab4321/articles/137184.html#Feedback0http://m.tkk7.com/microlab4321/comments/commentRss/137184.htmlhttp://m.tkk7.com/microlab4321/services/trackbacks/137184.html包含一个符合JSP语法的表辑ּ
JSP 语法
<%= expression %>
例子
<font color="blue"><%= map.size() %></font>
<b><%= numguess.getHint() %></b>.

用于在页面上输出信息Q语法格式如下:
<%= expression %> ?br><%= 表达?%>

<%@ page language="java"  import="java.util.*" %>
<html>
<head>
<title> test </title>
</head>
<body>
<center>
<%! Date date=new Date(); %>
<%! int a, b, c; %>

<% a=12;b=a; c=a+b;%>
<font color="blue">
<%=date.toString()%>
</font> <br>
<b>a=<%= a %></b><br>
<b>b=<%= b %></b><br>
<b>c=<%= c %></b><br>
</center> 
</body>
</html>

表达式元素表C的是一个在脚本语言中被定义的表辑ּQ在q行后被自动转化为字W串Q然后插入到q个表达C在JSP文g的位|显C。因个表辑ּ的值已l被转化为字W串Q所以你能在一行文本中插入q个表达式(形式和ASP完全一?.
当你在JSP中用表辑ּ时请C以下几点Q?
你不能用一个分P"Q?Q来作ؓ表达式的l束W?但是同样的表辑ּ用在scriptlet中就需要以分号来结了Q查看Scriptlet q个表达式元素能够包括Q何在Java Language Specification中有效的表达?
有时候表辑ּ也能做ؓ其它JSP元素的属性?一个表辑ּ能够变得很复杂,它可能由一个或多个表达式组成,q些表达式的序是从左到叟?br>
JSP 语法格式如下Q?br><% code fragment %> ?br><% 代码 %>
<%@ page language="java" import="java.util.*" %>
<%! int condition;%>
<html>
 <head>
 <title> test </title>
 </head>
 <body>
<%
  condition=1;
  switch(condition){
   case 0:
   out.println("You must select condition 0!"+"<br>");
        break;
        case 1:
        out.println("You must select condition 1!"+"<br>");
          break;
       case 2:
   out.println("You must select condition 2!"+"<br>");
        break;
       default:
   out.println("Your select not in \"0,1,2\",select again!!"+"<br>");
  }
 %>               
 </body>
</html>

转义W? 双引?\“ Q单引号\’Q反斜杠\\Q回车\rQ换行\nQ制表符\tQ退?nbsp;\b



冬天的猪 2007-08-16 12:09 发表评论
]]>
JSP内置对象 http://m.tkk7.com/microlab4321/articles/137182.html冬天的猪冬天的猪Thu, 16 Aug 2007 04:08:00 GMThttp://m.tkk7.com/microlab4321/articles/137182.htmlhttp://m.tkk7.com/microlab4321/comments/137182.htmlhttp://m.tkk7.com/microlab4321/articles/137182.html#Feedback0http://m.tkk7.com/microlab4321/comments/commentRss/137182.htmlhttp://m.tkk7.com/microlab4321/services/trackbacks/137182.htmlJSP 有以下九U内|对象,包括Q?br> ·requestQ请求对?br>·responseQ响应对?br>·pageContextQ页面上下文对象
·sessionQ会话对?br>·applicationQ应用程序对?br>·outQ输出对?br>·configQ配|对?br>·pageQ页面对?br>·exceptionQ例外对?br>有几U对象看h和ASP的内|对象差不多Q功能也cMQ这是因些内|对象的构徏基础是标准化?/p>

HTTP协议。如果用过ASPQ又对Java有一定的了解的话Q那么对q几UJSP内置对象的用应该能q速掌

握。需要注意的问题是对象名的写法,包括q些对象Ҏ的调用时也要书写正确Q因为Java语言本n是大

写敏感的?br>从本质上ԌJSP的这些内|对象其实都是由特定的JavacL产生的,在服务器q行时根据情况自动生成,所以如果你有较好的Java基础Q可以参考相应的c说明,?.1l出了他们的对应关系。更q一步的讲解会在讲解Servlet的一章中展开Q如果你的Java基础不太好,可以先熟悉在q一章里所介绍的各U方法的使用?br>



冬天的猪 2007-08-16 12:08 发表评论
]]>
JSP中的声明详解 http://m.tkk7.com/microlab4321/articles/137183.html冬天的猪冬天的猪Thu, 16 Aug 2007 04:08:00 GMThttp://m.tkk7.com/microlab4321/articles/137183.htmlhttp://m.tkk7.com/microlab4321/comments/137183.htmlhttp://m.tkk7.com/microlab4321/articles/137183.html#Feedback0http://m.tkk7.com/microlab4321/comments/commentRss/137183.htmlhttp://m.tkk7.com/microlab4321/services/trackbacks/137183.htmlJSP 语法格式如下Q?br><%! declaration; [ declaration; ] ... %> ?br><%! 声明; [声明; ] ... %>
例子Q?br><%@ page language=”java” import=”java.util.*” %>
<html>
<head>
<title> test2.4.jsp </title>
</head>
<body>
<%! int i = 0; %>
<%! int a, b, c; %>
<%! Date date; %>
</body>
</html>

在JSPE序中声明合法的变量和方?
JSP 语法
<%! declaration; [ declaration; ]+ ... %>
例子
<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>

描述
 声明你将要在JSPE序中用到的变量和方法。你也必这样做Q不然会出错.
 你可以一ơ性声明多个变量和ҎQ只要以";"l尾pQ当然这些声明在Java中要是合法的?
 当你声明Ҏ或变量时Q请注意以下的一些规?
 声明必须?;"l尾(Scriptlet有同L规则Q但?表达式就不同?.
 一个声明仅在一个页面中有效。如果你x个页面都用到一些声明,最好把它们写成一个单独的文gQ然后用<%@ include %>?lt;jsp:include >元素包含q来?
 <%@ include  file=“header.jsp”%>  Jsp:include的优点在?它L会检查所含文件中的变?
用jsp:include 控制动态内?br>了解include 指o与动态jsp:include 元素之间的差?br><%@include file=“test.html”%>高速缓?br><jsp:include page=“include.html” flush=“true”>



冬天的猪 2007-08-16 12:08 发表评论
]]>
JSP注释详解 http://m.tkk7.com/microlab4321/articles/137180.html冬天的猪冬天的猪Thu, 16 Aug 2007 04:07:00 GMThttp://m.tkk7.com/microlab4321/articles/137180.htmlhttp://m.tkk7.com/microlab4321/comments/137180.htmlhttp://m.tkk7.com/microlab4321/articles/137180.html#Feedback0http://m.tkk7.com/microlab4321/comments/commentRss/137180.htmlhttp://m.tkk7.com/microlab4321/services/trackbacks/137180.html在客L昄一个注?
JSP 语法
<!-- comment [ <%= expression %> ] -->
例子 1
<!-- This file displays the user login screen -->
在客L的HTML源代码中产生和上面一L数据Q?br>例子 2
<!-- This page was loaded on <%= (new java.util.Date()).toLocaleString() %> -->

在客L的HTML源代码中昄?
<!-- This page was loaded on August 3, 2007 -->
描述
q种注释和HTML中很像,也就是它可以?查看源代?中看到?/p>

唯一有些不同的就是,你可以在q个注释中用表达式(例子2所C?。这个表辄是不定的Q由面不同而不同,你能够用各U表辑ּQ只要是合法的就行?br>
隐藏注释
写在JSPE序中,但不是发l客戗?br>JSP 语法
<%-- comment --%>  

例子Q?/p>

<%@ page language="java" %>
<html>
<head><title>A Comment Test</title></head>
<body>
<h2>A Test of Comments</h2>
<%-- This comment will not be visible in the page source --%>
</body>
</html>
描述
用隐藏注释标记的字符会在JSP~译时被忽略掉。这个注释在你希望隐藏或注释你的JSPE序时是很有用的?br>JSP~译器不是会?lt;%--and--%>之间的语句进行编译的Q它不会昄在客L览器中Q也不会在源代码中看到在<%-- --%>之间Q你可以L写注释语?



冬天的猪 2007-08-16 12:07 发表评论
]]>
JSP学习Scriptlet http://m.tkk7.com/microlab4321/articles/137181.html冬天的猪冬天的猪Thu, 16 Aug 2007 04:07:00 GMThttp://m.tkk7.com/microlab4321/articles/137181.htmlhttp://m.tkk7.com/microlab4321/comments/137181.htmlhttp://m.tkk7.com/microlab4321/articles/137181.html#Feedback0http://m.tkk7.com/microlab4321/comments/commentRss/137181.htmlhttp://m.tkk7.com/microlab4321/services/trackbacks/137181.htmlJSP 语法
<% code %>
例子
<%
String name = null;
if (request.getParameter("name") == null) {
%>
    <%@ include file="error.html" %>
<%
} else {
    name=request.getParameter(“name”));
}
%>
描述
 一个scriptlet能够包含多个jsp语句Q方法,变量Q表辑ּ
 因ؓscriptlet,我们便能做以下的?
 声明要用到的变量或ҎQ参?声明).
 ~写JSP表达式(参?表达?.
 使用M隐含的对象和M?lt;jsp:useBean>声明q的对象
 ~写JSP语句 (如果你在使用Java语言Q这些语句必遵从Java Language Specification,).
 M文本,HTML标记,JSP元素必须在scriptlet之外
 当JSP收到客户的请求时Qscriptlet׃被执行,如果scriptlet有显C的内容Q这些显C的内容p存在out对象中?br>

冬天的猪 2007-08-16 12:07 发表评论
]]>
JSP中的include指o http://m.tkk7.com/microlab4321/articles/137178.html冬天的猪冬天的猪Thu, 16 Aug 2007 04:06:00 GMThttp://m.tkk7.com/microlab4321/articles/137178.htmlhttp://m.tkk7.com/microlab4321/comments/137178.htmlhttp://m.tkk7.com/microlab4321/articles/137178.html#Feedback0http://m.tkk7.com/microlab4321/comments/commentRss/137178.htmlhttp://m.tkk7.com/microlab4321/services/trackbacks/137178.htmlJSP 语法格式如下Q?br><%@ include file="relativeURL" %> ?br><%@ include file="相对位置" %>
<html>
 <head>
 <title>test</title>
 </head>
  <body bgcolor="white">
 <font color="blue">
 The current date and time are
<%@ include file=“peixun2.6.1.jsp" %>
 </font>
  </body>
</html> 
<%@ page import="java.util.*" %>
<%=(new java.util.Date() ).toLocaleString() %>


包含一个静态或动态文?
 JSP 语法格式如下Q?br>1Q?lt;jsp:include page="{relativeURL | <%=expression%>}"   flush="true" />
2Q?lt;jsp:include page="{relativeURL | <%=expression %>}"   flush="true" >
<jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />
    [<jsp:param …/>]
</jsp:include>
Q?#8220;[<jsp:param … />]”指可以有多个“<jsp:param/>”标记。)

1Qpage="{relativeURL | <%=expression %>}"
  参数Z相对路径Q或者是代表相对路径的表辑ּ?br> 
2Qflush="true"
  q里必须使用flush="true"Q不能用false倹{而缺省gؓfalse ?nbsp;
3Q?lt;jsp:param name="parameterName" value="{parameterValue | <%= expression %> }" />
“<jsp:param>”用来传递一个或多个参数到指定的动态文Ӟ能在一个页面中使用多个“<jsp:param>”来传递多个参敎ͼ
<html>
 <head>
  <title>peixun.2.10.jsp</title>
 </head>
 <body> 
 <jsp:include page="peixun2.10.1.jsp" flush="true" >
 <jsp:param name="User" value="HiFi King" />
 </jsp:include>
 </body>
</html>
<%
 String username;
 username=request.getParameter("User");
 out.println("Username is "+username+"<br>");
%>


冬天的猪 2007-08-16 12:06 发表评论
]]>
JSP中的Page 指o http://m.tkk7.com/microlab4321/articles/137042.html冬天的猪冬天的猪Wed, 15 Aug 2007 13:05:00 GMThttp://m.tkk7.com/microlab4321/articles/137042.htmlhttp://m.tkk7.com/microlab4321/comments/137042.htmlhttp://m.tkk7.com/microlab4321/articles/137042.html#Feedback0http://m.tkk7.com/microlab4321/comments/commentRss/137042.htmlhttp://m.tkk7.com/microlab4321/services/trackbacks/137042.html

定义JSP文g中的全局属?
JSP 语法
<%@ page
[ language="java" ]
[ extends="package.class" ]
[ import="{package.class | package.*}, ..." ]
[ session="true | false" ]
[ buffer="none | 8kb | sizekb" ]
[ autoFlush="true | false" ]
[ isThreadSafe="true | false" ]
[ info="text" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ]
[ isErrorPage="true | false" ]
%>
例子
<%@ page import="java.util.*, java.lang.*" %>
<%@ page buffer="5kb" autoFlush="false" %>
<%@ page errorPage="error.jsp" %>
描述
 <%@ page %>指o作用于整个JSP面Q同样包括静态的包含文g。但?lt;% @ page %>指o不能作用于动态的包含文gQ比?<jsp:include>
 你可以在一个页面中用上多个<% @ page %>指oQ但是其中的属性只能用一ơ,不过也有个例外,那就是import属性。因为import属性和Java中的import语句差不?参照Java Language)Q所以你p多用此属性几ơ了.
 无论你把<% @ page %>指o攑֜JSP的文件的哪个地方Q它的作用范围都是整个JSP面。不q,ZJSPE序的可L,以及好的~程习惯Q最好还是把它放在JSP文g的顶? 

属性:
1Qlanguage="java"
声明脚本语言的种c,目前只能?java" ?br>2.import="{package.class | package.* },..."
  需要导入的Java包的列表Q这些包作用于程序段Q表辑ּQ以及声明。下面的包在JSP~译时已l导入了Q所以就不需要再指明了:
java.lang.* javax.servlet.* javax.servlet.jsp.* javax.servlet.http.*

3QerrorPage="relativeURL"
讄处理异常事g的JSP文g?
 
4QisErrorPage="true | false"
 讄此页是否为出错页Q如果被讄为true,你就能用exception对象



冬天的猪 2007-08-15 21:05 发表评论
]]>
[导入]jsp:include page="" ?include file="" 的区?http://m.tkk7.com/microlab4321/articles/136308.html冬天的猪冬天的猪Mon, 13 Aug 2007 02:28:00 GMThttp://m.tkk7.com/microlab4321/articles/136308.htmlhttp://m.tkk7.com/microlab4321/comments/136308.htmlhttp://m.tkk7.com/microlab4321/articles/136308.html#Feedback0http://m.tkk7.com/microlab4321/comments/commentRss/136308.htmlhttp://m.tkk7.com/microlab4321/services/trackbacks/136308.html下面用三个实验,更清淅的理解 <jsp:include page=""/> ?<%@ include file="" %> 的区别?br><jsp:include page=""/> 包含?include 文g的输?br><%@ include file="" %> 包含?include 文g的代?/p>

a.jsp 内容Q?/p>

< jsp:include  page ="b.jsp" />

b.jsp 内容Q?I?

_a.class a.jsp~译成类的内?

_jspService() {
    
    JspWriter jspwriter 
=  pagecontext.getOut();
    
    
// 把b.jsp的内容输出到_a.class的jspwriter
    JspRuntimeLibrary.include(httpservletrequest, httpservletresponse,  " b.jsp " , jspwriter,  false );
    
}
 

-------------------------------------------------------------------------------------
    
a.jsp 内容Q?/p>

<% @ include file = " b.jsp "   %>  

b.jsp 内容Q?/p>

abcd

_a.class a.jsp~译成类的内?/p>

// b.jsp?abcd"字符串作为_a.class的成员变?/span>
private   static   final   char  _jsp_string1[]  =   " abcd " .toCharArray(); 
_jspService()
{
    
    JspWriter jspwriter 
=  pagecontext.getOut();
    jspwriter.write(_jsp_string1);
    
}

-------------------------------------------------------------------------------------

a.jsp 内容Q?br>

<% @ include file = " b.jsp "   %>  

b.jsp 内容Q?/p>

<% out.println( " efg " ); %>

_a.class a.jsp~译成类的内?/p>

 

_jspService() {
    
    jspwriter.println(
" efg " );
    
}

以上是在?WebSphere Application Server 6.1 ~译生成的代码反~译出来?_a.class?br>
接下来要看看 jsp 指oQ如Q?br><%@page contentType="text/html; charset=UTF-8" %>
<%@page autoFlush="false" %>
<%@page buffer="20kb" %>
<%@page isThreadSafe="true" %>
<%@page errorPage="" %>
<%@page extends="" %>
....................

会体现在生成?class 文g的何处,分别起什么作用?br>



冬天的猪 2007-08-13 10:28 发表评论
]]>
վ֩ģ壺 ëƬ޾Ʒ| þֻоƷ10| ѲĻ| Ļav| ѿ13| ޹va߹ۿַ| һĿ| ޲߹ۿ| ߹ۿ˳Ƶ| ˳˳ۺ| Ů18ëƬˮѿ| þ޾Ʒϵַ| ޾ƷѶ| ޹ŷһ| Ļ߾Ʒѹۿַ| ƷؼһëƬѹۿ| Ƶ| ӰƬһѹۿ| ۺϾþۺϼþ| ԻƵ30ӳ| պ޹ۺϸ| av鶹aӰ| 99þþƷëƬѲ| Ʒa߹ۿ| Ļ߹ۿվַ| պƷרձ| һһëƬ| ɫҹƵ| ޾Ʒ˾þ| ҹʱ| ƷѹۿƵ| ޹һaëƬ| ˊ]Ƭѹۿ| Ƭѹۿ92ƵƵ| þþƷۺɫ| ߹ۿwwwѿ| ˰ǿŮ²Ƶ| 뾫Ʒþþþ..| ŷ޾ƷƵ߹ۿ | ޹ŮƷþþ| avƬ߹ۿ18Ů|