如何混合使用jsp和ssi #include?
在jsp中可以使用如下方式包含純html:
<!–#include file="data.inc"–>
但是如果data.inc中包含jsp code ,我們可以使用:
<%@include file="data.inc"%>
如何執行一個線程安全的jsp?
只需增加如下指令<br>
<%@ page isthreadsafe="false" %>
jsp如何處理html form中的資料?
通過內置的request物件即可,如下:
<%<br>
string item = request.getparameter("item");
int howmany = new integer(request.getparameter("units")).intvalue();
%>
在jsp如何包含一個靜態文件?
靜態包含如下:<%@ include file="copyright.html" %>
動態包含如下:<jsp:include page="copyright.html" flush="true"/>
在jsp中如何使用注釋?
主要有四中方法:
1。<%– 與 –%>
2。//
3。/**與**/
4。<!–與–>
在jsp中如何執行瀏覽重定向?
使用如下方式即可:response.sendredirect("http://ybwen.home.chinaren.com/index.html";);
也能物理地改變http header屬性,如下:
<%
response.setstatus(httpservletresponse.sc_moved_permanently);
string newlocn="/newpath/index.html";
response.setheader("location",newlocn);
%>
如何防止在jsp或servlet中的輸出不被browser保存在cache中?
把如下腳本加入到jsp文件的開始即可:
<%
response.setheader("cache-control","no-store"); file://http 1.1
response.setheader("pragma","no-cache"); file://http 1.0
response.setdateheader ("expires", 0); file://prevents caching at the proxy server
%>
在jsp中如何設置cookie?
cookie是作?http header的一部分被發送的,如下方法即可設置:
<%
cookie mycookie = new cookie("aname","avalue");
response.addcookie(mycookie);
%>
在jsp中如何刪除一個cookie?
<%
cookie killmycookie = new cookie("mycookie", null);
killmycookie.setmaxage(0);
killmycookie.setpath("/");
response.addcookie(killmycookie);
%>
在一個jsp的請求處理中如何停止jsp的執行?
如下例:
<%
if (request.getparameter("wen") != null) {
// do something
} else {
return;
}
%>
在jsp中如何定義方法?
你可以定義方法,但是你不能直接訪問jsp的內置物件,而是通過參數的方法傳遞。如下:
<%!
public string howbadfrom(httpservletrequest req) {
httpsession ses = req.getsession();
…
return req.getremotehost();
}
%>
<%
out.print("in general,lao lee is not baddie ");
%>
<%= howbadfrom(request) %>
如果browser已關閉了cookies,在jsp中我如何打開session來跟蹤?
使用url重寫即可,如下:
hello1.jsp
<%@ page session="true" %>
<%
integer num = new integer(100);
session.putvalue("num",num);
string url =response.encodeurl("hello2.jsp");
%>
hello2.jsp</a>
hello2.jsp
<%@ page session="true" %>
<%
integer i= (integer )session.getvalue("num");
out.println("num value in session is "+i.intvalue());
%>
在jsp中能發送email嗎?
可以使用sun的專用包:sun.net.smtp包。如下腳本使用smtpclient類發送email。
<%@ page import="sun.net.smtp.smtpclient, java.io.*" %>
<%
string from="ybwen@sina.com";
string to="hewenjun@yeah.net, lei@who.com.cn";
try{
smtpclient client = new smtpclient("mail.xxxxx.xxx");
client.from(from);
client.to(to);
printstream message = client.startmessage();
message.println("to: " + to);
message.println("subject: sending email from jsp!");
message.println("this was sent from a jsp page!");
message.println();
message.println("cool! :-)");
message.println();
message.println("good boy");
message.println("im in genius.com");
message.println();
client.closeserver();
}
catch (ioexception e){
system.out.println("error sending email:"+e);
}
%>
在servlet中我能調用一個jsp錯誤頁嗎?
當然沒問題,如下展示了如何在一個servlet控制邏輯單元內調用一個jsp錯誤頁面。
protected void senderrorredirect(httpservletrequest request,
httpservletresponse response, string errorpageurl,
throwable e)
throws servletexception, ioexception {
request.setattribute ("javax.servlet.jsp.jspexception", e);
getservletconfig().getservletcontext().
getrequestdispatcher(errorpageurl).forward(request,
response);
}
public void dopost(httpservletrequest request,httpservletresponse response) {
try {
// do something
} catch (exception ex) {
try {
senderrorredirect(request,response,"/jsp/myerrorpage.jsp",ex);
} catch (exception e) {
e.printstacktrace();
}
}
}
jsp如何與ejb sessionbean通訊?
下面的代碼段作了很好的示範
<%@ page import="javax.naming.*, javax.rmi.portableremoteobject,
foo.accounthome, foo.account" %>
<%!
file://定義一個對sessionbeanhome介面實例的全局引用
accounthome acchome=null;
public void jspinit() {
file://獲得home介面實例
initialcontext cntxt = new initialcontext( );
object ref= cntxt.lookup("java:comp/env/ejb/accountejb");
acchome = (accounthome)portableremoteobject.narrow(ref,accounthome.class);
}
%>
<%
file://實例化sessionbean
account acct = acchome.create();
file://調用遠端方法
acct.dowhatever(…);
// 如此等等
%>
