1、如何混合使用jsp和ssi #include?
在jsp中可以使用如下方式包含纯html:
< !--#include file="data.inc"-- >
但是如果data.inc中包含jsp code ,我们可以使用:
< %@include file="data.inc"% >
2、如何执行一个线程安全的jsp?
只需增加如下指令
< %@ page isthreadsafe="false" % >
3、jsp如何处理html form中的数据?
通过内置的request对象即可,如下:
< %
string item = request.getparameter("item");
int howmany = new integer(request.getparameter("units")).intvalue();
% >
4、在jsp如何包含一个静态文件?
静态包含如下:< %@ include file="copyright.html" % >
动态包含如下:< jsp:include page="copyright.html" flush="true"/ >
5、在jsp中如何使用注释?
主要有四中方法:
1。< %-- 与 --% >
2。//
3。/**与**/
4。< !--与-- >
6、在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);
% >
7、如何防止在jsp或servlet中的输出不被browser保存在cache中?
把如下脚本加入到jsp文件的开始即可:
< %
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
% >
8、在jsp中如何设置cookie?
cookie是作为http header的一部分被发送的,如下方法即可设置:
< %
cookie mycookie = new cookie("aname","avalue");
response.addcookie(mycookie);
% >
9、在jsp中如何删除一个cookie?
< %
cookie killmycookie = new cookie("mycookie", null);
killmycookie.setmaxage(0);
killmycookie.setpath("/");
response.addcookie(killmycookie);
% >
10、在一个jsp的请求处理中如何停止jsp的执行
如下例:
< %
if (request.getparameter("wen") != null) {
// do something
} else {
return;
}
% >
11、在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) % >
12、如果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");
% >
< a href=< %=url% > >hello2.jsp< /a >
hello2.jsp
< %@ page session="true" % >
< %
integer i= (integer )session.getvalue("num");
out.println("num value in session is "+i.intvalue());
% >
13、在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);
}
% >
14、在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();
}
}
}
15、jsp和applet如何通讯
jsp如何与ejb sessionbean通讯
下面的代码段作了很好的示范
< %@ page import="javax.naming.*, javax.rmi.portableremoteobject,
foo.accounthome, foo.account" % >
< %!
//定义一个对sessionbeanhome接口实例的全局引用
accounthome acchome=null;
public void jspinit() {
//获得home接口实例
initialcontext cntxt = new initialcontext( );
object ref= cntxt.lookup("java:comp/env/ejb/accountejb");
acchome = (accounthome)portableremoteobject.narrow(ref,accounthome.class);
}
% >
< %
//实例化sessionbean
account acct = acchome.create();
//调用远程方法
acct.dowhatever(...);
// 如此等等
% >
16、当我使用一个结果集时,如何防止字段为"null"的字域显示在我的html输入文本域中?
可以定义一个简单的函数来达到目的,如下:
< %!
string blanknull(string s) {
return (s == null) ? "" : s;
}
% >
然后在jsp的form中,可以这样使用
< input type="text" name="shoesize" value="< %=blanknull(shoesize)% >" >
17、如何中servlet或jsp下载一个文件(如:binary,text,executable)?
现提供两个解决方案:
a:使用http,
b:在servlet中,通过设置contenttype和使用java.io包的stream等类可作到.例如:
response.setcontenttype("application/x-msword");
然后想输出缓冲中写一些东东即可。
18、使用usebean标志初始化bean时如何接受初始化参数
使用如下两标签即可:
< jsp:getproperty name="wenbean" property="someproperty"/ >
< jsp:setproperty name="wenbean" property="someproperty" value="somevalue"/ >
19、使用jsp如何获得客户浏览器的信息?
使用request.getheader(string)即可
20、能象调用子程序一样调用jsp吗?
当然可以,用< jsp:include page="relativeurl" flush="true"/ >
21、当我重编译我的jsp使用的一个类后,为什么jvm继续使用我的老class?
< %@include file="abc.jsp"% >与< jsp:include page="abc.jsp"/ >之间的差别?
前一个为静态包含,而后一个为动态包含
22、jsp的缺点?
1。对java程序进行调试没有好东东
2。因大多数的servlet引擎不支持connection pooling
3。servlet引擎没有标准
4。jsp与其它脚本语言的交互
23、jsp能进行递归调用吗?
当然可以,如对form的提交给本页
34、如何实现jsp的国际化?
为各种版本提供resource bundles属性文件即可
25、在jsp中如何写文本文件?
使用printwriter对象,如:
< %@ page import="java.io.*" % >
< %
string str = "print me";
string nameoftextfile = "/usr/anil/imp.txt";
try {
printwriter pw = new printwriter(new fileoutputstream(nameoftextfile));
pw.println(str);
pw.close();
} catch(ioexception e) {
out.println(e.getmessage());
}
% >
26、如何在jsp中包括绝对路径文件?
使用urlconnection即可。
27、在servlets和jsp之间能共享session对象吗?
当然可以,
httpsession session = request.getsession(true);
session.putvalue("variable","value");
28、javascript的变量能复制到jsp的session中吗?
29、如何设置cookie在某一时间后过期?
用cookie.setmaxage(int)
30、如何获得当前的sessions数?
可以使用httpsessionbindinglisteners来跟踪
31、能设置一些代码在我所有的jsp文件之上运行?如果可以,能共享吗?
当然可以,可以为你的jsp文件定义一个别名:/jsp/=ybwen.genius.mypreprocessingservlet,而以/jsp/为前缀的文件可以使用
32、对一个jsp页,如果多个客户端同时请求它,同步可能吗?
在jsp:usebean语法中使用beanname有何好处?
beanname使用beans.instantiate()初始化bean
33、当我使用< jsp:forward >时,在浏览器的地址栏没有改变?
使用response.sendredirect("newurl")
34、如何转换jsp 0.9版本的文件到jsp1.1?
可使用sed/awk即可
35、使用jsp能设置html form中输入域的焦点,不用javascript?
没办法
36、使用jsp连接到数据库连接缓冲池的最好方法是什么?
1。使用jdbc2。0中带有此服务的driver
2.使用提供有此服务的application server
闽公网安备 35060202000074号