JSP中可能会碰到的问题解答

zql小AN

zql小AN

2016-02-19 19:25

今天给大家分享的是由图老师小编精心为您推荐的JSP中可能会碰到的问题解答,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

  JSP中可能会碰到的问题解答 
  1、如何混合使用Jsp和SSI #include?
  在JSP中可以使用如下方式包含纯HTML:
  &lt !--#include file="data.inc"-- &gt
  但是如果data.inc中包含JSP CODE ,我们可以使用:
  &lt A href="%@includemailto:%@include"%@include/A file="data.inc"% &gt /P

   

  2、如何执行一个线程安全的JSP?
  只需增加如下指令
  &lt %@ page isThreadSafe="false" % &gt /P

   

  3、JSP如何处理HTML FORM中的数据?
  通过内置的request对象即可,如下:
  &lt %
  String item = request.getParameter("item");
  int howMany = new Integer(request.getParameter("units")).intvalue();
  % &gt /P

   

  4、在JSP如何包含一个静态文件?
  静态包含如下:&lt %@ include file="copyright.html" % &gt
  动态包含如下:&lt jsp:include page="copyright.html" flush="true"/ &gt /P

   

  5、在JSP中如何使用注释?
  主要有四中方法:
  1。&lt %-- 与 --% &gt
  2。//
  3。/**与**/
  4。&lt !--与-- &gt /P

   

  6、在JSP中如何执行浏览重定向?
  使用如下方式即可:response.sendRedirect("A href="http://ybwen.home.chinaren.com/index.htmlhttp://ybwen.home.chinaren.com/index.html"http://ybwen.home.chinaren.com/index.html/A");
  也能物理地改变HTTP HEADER属性,如下:
  &lt %
  response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
  String newLocn="/newpath/index.html";
  response.setHeader("Location",newLocn);
  % &gt /P

   

  7、如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中?
  把如下脚本加入到JSP文件的开始即可:
  &lt %
  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
  % &gt /P

   

  8、在JSP中如何设置COOKIE?
  COOKIE是作为HTTP HEADER的一部分被发送的,如下方法即可设置:
  &lt %
  Cookie mycookie = new Cookie("aName","avalue");
  response.addCookie(mycookie);
  % &gt /P

   

  9、在JSP中如何删除一个COOKIE?
  &lt %
  Cookie killMyCookie = new Cookie("mycookie", null);
  killMyCookie.setMaxAge(0);
  killMyCookie.setPath("/");
  response.addCookie(killMyCookie);
  % &gt /P

   

  10、在一个JSP的请求处理中如何停止JSP的执行
  如下例:
  &lt %
  if (request.getParameter("wen") != null) {
  // do something
  } else {
  return;
  }
  % &gt /P

   

  11、在JSP中如何定义方法
  你可以定义方法,但是你不能直接访问JSP的内置对象,而是通过参数的方法传递。如下:
  &lt %!
  public String howBadFrom(HttpServletRequest req) {
  HttpSession ses = req.getSession();
  ...
  return req.getRemoteHost();
  }
  % &gt
  &lt %
  out.print("in general,lao lee is not baddie ");
  % &gt
  &lt %= howBadFrom(request) % &gt /P

   

  12、如果BROWSER已关闭了COOKIES,在JSP中我如何打开SESSION来跟踪
  使用URL重写即可,如下:
  hello1.jsp
  &lt %@ page session="true" % &gt
  &lt %
  Integer num = new Integer(100);
  session.putvalue("num",num);
  String url =response.encodeURL("hello2.jsp");
  % &gt
  &lt a href=&lt %=url% &gt &gthello2.jsp&lt /a &gt /P

  
  hello2.jsp
  &lt %@ page session="true" % &gt
  &lt %
  Integer i= (Integer )session.getvalue("num");
  out.println("Num value in session is "+i.intvalue());
  % &gt /P

   

  13、在JSP中能发送EMAIL吗
  可以使用SUN的专用包:sun.net.smtp包。如下脚本使用SmtpClient类发送EMAIL。
  &lt %@ page import="sun.net.smtp.SmtpClient, java.io.*" % &gt
  &lt %
  String from="A href="ybwen@sina.commailto:ybwen@sina.com"ybwen@sina.com/A";
  String to="A href="hewenjun@yeah.netmailto:hewenjun@yeah.net"hewenjun@yeah.net/A, A href="lei@who.com.cnmailto:lei@who.com.cn"lei@who.com.cn/A";
  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);
  }
  % &gt /P

   

  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);
  } /P

  
  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();
  }
  }
  } /P

   

  15、JSP和APPLET如何通讯
  JSP如何与EJB SessionBean通讯
  下面的代码段作了很好的示范
  &lt %@ page import="javax.naming.*, javax.rmi.PortableRemoteObject,
  foo.AccountHome, foo.Account" % &gt
  &lt %!
  //定义一个对SessionBeanHome接口实例的全局引用
  AccountHome accHome=null; /P

  
  public void jspInit() {
  //获得Home接口实例
  InitialContext cntxt = new InitialContext( );
  Object ref= cntxt.lookup("java:comp/env/ejb/AccountEJB");
  accHome = (AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);
  }
  % &gt
  &lt %
  //实例化SessionBean
  Account acct = accHome.create();
  //调用远程方法
  acct.doWhatever(...);
  // 如此等等
  % &gt /P

   

  16、当我使用一个结果集时,如何防止字段为"null"的字域显示在我的HTML输入文本域中?
  可以定义一个简单的函数来达到目的,如下:
  &lt %!
  String blanknull(String s) {
  return (s == null) ? "" : s;
  }
  % &gt /P

  
  然后在JSP的FORM中,可以这样使用
  &lt input type="text" name="shoesize" value="&lt %=blanknull(shoesize)% &gt" &gt /P

   

  17、如何中SERVLET或JSP下载一个文件(如:binary,text,executable)?
  现提供两个解决方案:
  A:使用HTTP,
  B:在Servlet中,通过设置ContentType和使用java.io包的Stream等类可作到.例如:
  response.setContentType("application/x-msword");
  然后想输出缓冲中写一些东东即可。 /P

  
  18、使用useBean标志初始化BEAN时如何接受初始化参数
  使用如下两标签即可:
  &lt jsp:getProperty name="wenBean" property="someProperty"/ &gt
  &lt jsp:setProperty name="wenBean" property="someProperty" value="somevalue"/ &gt /P

  
  19、使用JSP如何获得客户浏览器的信息?
  使用request.getHeader(String)即可 /P

   

  20、能象调用子程序一样调用JSP吗?
  当然可以,用&lt jsp:include page="relativeURL" flush="true"/ &gt /P

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

   

  21、当我重编译我的JSP使用的一个类后,为什么JVM继续使用我的老CLASS? /P

   

  &lt A href="%@includemailto:%@include"%@include/A file="abc.jsp"% &gt与&lt jsp:include page="abc.jsp"/ &gt之间的差别?
  前一个为静态包含,而后一个为动态包含 /P

   

  22、JSP的缺点?
  1。对JAVA程序进行调试没有好东东
  2。因大多数的servlet引擎不支持connection pooling
  3。Servlet引擎没有标准
  4。JSP与其它脚本语言的交互 /P

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

   

  23、JSP能进行递归调用吗?
  当然可以,如对form的提交给本页 /P

   

  34、如何实现JSP的国际化?
  为各种版本提供resource bundles属性文件即可 /P

  
  25、在JSP中如何写文本文件?
  使用PrintWriter对象,如:
  &lt %@ page import="java.io.*" % &gt
  &lt %
  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());
  }
  % &gt /P

   

  26、如何在JSP中包括绝对路径文件?
  使用URLConnection即可。 /P

   

  27、在servlets和JSP之间能共享session对象吗?
  当然可以,
  HttpSession session = request.getSession(true);
  session.putvalue("variable","value"); /P

   

  28、Javascript的变量能复制到JSP的SESSION中吗? /P

   

  29、如何设置cookie在某一时间后过期?
  用Cookie.setMaxAge(int) /P

   

  30、如何获得当前的sessions数?
  可以使用HttpSessionBindingListeners来跟踪 /P

   

  31、能设置一些代码在我所有的JSP文件之上运行?如果可以,能共享吗?
  当然可以,可以为你的JSP文件定义一个别名:/jsp/=ybwen.genius.myPreprocessingServlet,而以/jsp/为前缀的文件可以使用 /P

   

  32、对一个JSP页,如果多个客户端同时请求它,同步可能吗?
  在jsp:useBean语法中使用beanName有何好处?
  beanName使用Beans.instantiate()初始化Bean /P

   

  33、当我使用&lt jsp:forward &gt时,在浏览器的地址栏没有改变?
  使用response.sendRedirect("newURL") /P

   

  34、如何转换JSP 0.9版本的文件到JSP1.1?
  可使用sed/awk即可 /P

   

  35、使用JSP能设置HTML FORM中输入域的焦点,不用Javascript?
  没办法 /P

   

  36、使用JSP连接到数据库连接缓冲池的最好方法是什么?
  1。使用JDBC2。0中带有此服务的Driver
  2.使用提供有此服务的Application server 

展开更多 50%)
分享

猜你喜欢

JSP中可能会碰到的问题解答

Web开发
JSP中可能会碰到的问题解答

Oracle 常见问题解答

Web开发
Oracle 常见问题解答

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

iPhone版手机QQ问题解答

电脑入门
iPhone版手机QQ问题解答

VB常见问题解答(1)

编程语言 网络编程
VB常见问题解答(1)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

《影之刃》常见问题解答

手机游戏 IOS
《影之刃》常见问题解答

Flash常见问题解答集锦

flash教程
Flash常见问题解答集锦

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

iOS 版WPS WiFi文件传输 三步将文件导入移动设备

iOS 版WPS WiFi文件传输 三步将文件导入移动设备

win7系统自带截图工具快捷键是什么

win7系统自带截图工具快捷键是什么
下拉加载更多内容 ↓