jsp面试题汇总

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

    <%
       response.setHeader("Cache-Control","no-store"); //HTTP 1.1
       response.setHeader("Pragma","no-cache"); //HTTP 1.0
       response.setDateHeader ("Expires", 0); //divvents 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
JSPAPPLET如何通讯

 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;
   }
 %> 
然后在JSPFORM中,可以这样使用

 <input type="text" name="shoesize" value="<%=blanknull(shoesize)%>"> 
 17
、如何中SERVLETJSP下载一个文件(如: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的提交给本页
 
 24
、如何实现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
、在servletsJSP之间能共享session对象吗?

 
当然可以,

 HttpSession session = request.getSession(true);
 session.putValue("variable","value"); 
 28
JavaScript的变量能复制到JSPSESSION中吗?
 
 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.
使用JDBC20中带有此服务的
Driver
       2.
使用提供有此服务的
Application server
    3.
自己写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值