JSP问答集

发表于:2007-06-11来源:作者:点击数: 标签:
如何混合使用Jsp和SSI#include? 在JSP中可以使用如下方式包含纯HTML:!--#includefile="data.inc"-- 但是如果data.inc中包含JSPCODE,我们可以使用%@includefile="data.inc"% 如何执行一个线程 安全 的JSP? 只需增加如下指令:%@pageisThreadSafe="false"% J

如何混合使用Jsp和SSI#include?

在JSP中可以使用如下方式包含纯HTML:<!--#includefile="data.inc"-->

但是如果data.inc中包含JSPCODE,我们可以使用%@includefile="data.inc"%

如何执行一个线程安全的JSP?

只需增加如下指令:<%@pageisThreadSafe="false"%>

JSP如何处理HTMLFORM中的数据?

通过内置的request对象即可,如下:

<%<br>

Stringitem=request.getParameter("item");

inthowMany=newInteger(request.getParameter("units")).intvalue();

%>

在JSP如何包含一个静态文件?

静态包含如下:<%@includefile="copyright.html"%>

动态包含如下:<jsp:includepage="copyright.html"flush="true"/>

在JSP中如何使用注释?

主要有四中方法:

1 <%--与--%>

2 //

3 /**与**/

4 <!--与-->

在JSP中如何执行浏览复位向?

使用如下方式即可:response.sendRedirect("http://ybwen.home.chinaren.com/index.html";);

也能物理地改变HTTPHEADER属性,如下:

<%

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);

StringnewLocn="/newpath/index.html";

response.setHeader("Location",newLocn);

%>

如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中?

把如下脚本加入到JSP文件的开始即可:

<%

response.setHeader("Cache-Control","no-store");file://HTTP1.1

response.setHeader("Pragma","no-cache");file://HTTP1.0

response.setDateHeader("Expires",0);file://preventscachingattheproxyserver

%>

在JSP中如何设置COOKIE?

COOKIE是作?HTTPHEADER的一部分被发送的,如下方法即可设置:

<%

Cookiemycookie=newCookie("aName","avalue");

response.addCookie(mycookie);

%>

在JSP中如何删除一个COOKIE?

<%

CookiekillMyCookie=newCookie("mycookie",null);

killMyCookie.setMaxAge(0);

killMyCookie.setPath("/");

response.addCookie(killMyCookie);

%>

在一个JSP的请求处理中如何停止JSP的执行?如下例:

<%

if(request.getParameter("wen")!=null){

//dosomething

}else{

return;

}

%>

在JSP中如何定义方法?

你可以定义方法,但是你不能直接访问JSP的内置对象,而是通过参数的方法传递。如下:

<%!

publicStringhowBadFrom(HttpServletRequestreq){

HttpSessionses=req.getSession();

...

returnreq.getRemoteHost();

}

%>

<%

out.print("ingeneral,laoleeisnotbaddie");

%>

<%=howBadFrom(request)%>

如果BROWSER已关闭了COOKIES,在JSP中我如何打开SESSION来跟踪?

使用URL重写即可,如下:

hello1.jsp

<%@pagesession="true"%>

<%

Integernum=newInteger(100);

session.putvalue("num",num);

Stringurl=response.encodeURL("hello2.jsp");

%>

hello2.jsp</a>

hello2.jsp

<%@pagesession="true"%>

<%

Integeri=(Integer)session.getvalue("num");

out.println("Numvalueinsessionis"+i.intvalue());

%>

在JSP中能发送EMAIL吗?

可以使用SUN的专用包:sun.net.smtp包。如下脚本使用SmtpClient类发送EMAIL。

<%@pageimport="sun.net.smtp.SmtpClient,java.io.*"%>

<%

Stringfrom="ybwen@sina.com";

Stringto="hewenjun@yeah.net,lei@who.com.cn";

try{

SmtpClientclient=newSmtpClient("mail.xxxxx.xxx");

client.from(from);

client.to(to);

PrintStreammessage=client.startMessage();

message.println("To:"+to);

message.println("Subject:SendingemailfromJSP!");

message.println("ThiswassentfromaJSPpage!");

message.println();

message.println("Cool!:-)");

message.println();

message.println("GoodBoy");

message.println("I'mingenius.com");

message.println();

client.closeServer();

}

catch(IOExceptione){

System.out.println("ERRORSENDINGEMAIL:"+e);

}

%>

在SERVLET中我能调用一个JSP错误页吗?

当然没问题,如下展示了如何在一个SERVLET控制逻辑单元内调用一个JSP错误页面。

protectedvoidsendErrorRedirect(HttpServletRequestrequest,

HttpServletResponseresponse,StringerrorPageURL,

Throwablee)

throwsServletException,IOException{

request.setAttribute("javax.servlet.jsp.jspException",e);

getServletConfig().getServletContext().

getRequestDispatcher(errorPageURL).forward(request,

response);

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse){

try{

//dosomething

}catch(Exceptionex){

try{

sendErrorRedirect(request,response,"/jsp/MyErrorPage.jsp",ex);

}catch(Exceptione){

e.printStackTrace();

}

}

}

JSP如何与EJBSessionBean通讯?

下面的代码段作了很好的示范

<%@pageimport="javax.naming.*,javax.rmi.PortableRemoteObject,

foo.AccountHome,foo.Account"%>

<%!

file://定义一个对SessionBeanHome接口实例的全局引用

AccountHomeaccHome=null;

publicvoidjspInit(){

file://获得Home接口实例

InitialContextcntxt=newInitialContext();

Objectref=cntxt.lookup("java:comp/env/ejb/AccountEJB");

accHome=(AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);

}

%>

<%

file://实例化SessionBean

Accountacct=accHome.create();

file://调用远程方法

acct.doWhatever(...);

//如此等等

%>



原文转自:http://www.ltesting.net

...