JSP面试36问(经典)
1、如何混合使用JspSSI #include?
 在JSP中可以使用如下方式包含纯HTML:
 
 但是如果data.inc中包含JSP CODE ,我们可以使用:
 <%@include file="data.inc"%> 
2、如何执行一个线程安全的JSP?
 只需增加如下指令
 <%@ page isThreadSafe="false" %> 
3JSP如何处理HTML FORM中的数据?
 通过内置的request对象即可,如下:
 <%
 String item = Parameter("item");
 int howMany = new Parameter("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("ybwen.home.chinaren/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的执行
 如下例:
jsp定义
 <%
 if (Parameter("wen") != null) {
 // do something
 } else {
 return;
 }
 %> 
11、在JSP中如何定义方法
 你可以定义方法,但是你不能直接访问JSP的内置对象,而是通过参数的方法传递。如下:
 <%!
 public String howBadFrom(HttpServletRequest req) {
 HttpSession ses = Session();
 ...
 RemoteHost();
 }
 %>
 <%
 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 =deURL("hello2.jsp");
 %>
 <a href=<%=url%>>hello2.jsp</a>  hello2.jsp
 <%@ page session="true" %>
 <%
 Integer i= (Integer )Value("num");
 out.println("Num value in session is "+i.intValue());
 %> 
13、在JSP中能发送EMAIL
 可以使用SUN的专用包:sun.smtp包。如下脚本使用SmtpClient类发送EMAIL。
 <%@ page import="sun.smtp.SmtpClient, java.io.*" %>
 <%
 String from="ybwen@sina";
 String to="hewenjun@yeah, lei@who";
 try{
 SmtpClient client = new SmtpClient("");
 client.from(from);
&(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");
 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();
 }
 }
 } 
15JSPAPPLET如何通讯
 JSP如何与EJB SessionBean通讯
 下面的代码段作了很好的示范
 <%@ page import="javax.naming.*, i.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);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。