`
YOUNG918
  • 浏览: 188396 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JSP 问题解答

    博客分类:
  • java
阅读更多

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>
  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>
  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

 

 

 

<转贴>

一般常见问题

什么是 JSP 技术?
JSP 技术的工作原理?
什么是 servlet?
我已经采用了servlets,为何还需要 JSP 技术呢?
从哪里可以获得最新版本的 JSP 规范?
JSP 规范与 Java 2 Platform, Enterprise Edition 的关系如何?
有哪些web服务器支持JSP 技术?
Sun 公司是否提供 JSP 规范的参考实现?
JSP 技术与其他产品技术相比有什么不同?
从那里可获得关于 JSP 技术的更多信息?

技术常见问题

JSP 页面是什么?
JSP 页面如何工作?
JSP 技术需要使用其他 Java 平台 API 吗?
JSP 页面如何进行调用和编译?
JSP 技术的语法是怎样的?
能否使用 JSP 技术来生成 XML 页面?
能否使用 XML 工具来生成和处理 JSP 页面?
在 JSP 页面中怎样使用 Javabeans 组件(bean)?

一般常见问题

什么是 JSP 技术?
JavaServer Pages(JSP) 技术提供了一种简单快速的方法来创建显示动态生成内容的 Web 页面。由业界处于领先地位的 Sun 公司制定了相关的 JSP 技术规范,该规范定义了如何在服务器和 JSP 页面间进行交互,还描述了页面的格式和语法。
JSP 技术的工作原理?

JSP 页面使用 XML 标签和 scriptlets(一种使用 Java 语言编写的脚本代码),封装了生成页面内容的逻辑。它将各种格式的标签(HTML 或者 XML)直接传递回响应页面。通过这种方式,JSP 页面实现了页面逻辑与其设计和显示的分离。

JSP 技术是 Java 系列技术的一部分。JSP 页面被编译成 servlets,并可能调用 JavaBeans 组件(beans) 或 Enterprise JavaBeans 组件(企业 beans),以便在服务器端处理。因此,JSP 技术在构建可升级的基于 web 的应用程序时扮演了重要角色。

JSP 页面并不局限于任何特定的平台或 web 服务器上。JSP 规范在业界有着广泛的适应性。
什么是 servlet?

相对于浏览器上运行的 applets 而言,servlet 是在服务器上运行的,用 Java 语言编写的程序。详细信息可访问 http://java.sun.com/products/servlet .
我已经采用了servlets,为何还需要 JSP 技术呢?

既然 JSP 页面也要被编译成 servlets,那么理论上,您可以直接写 servlets 来支持您的基于 web 的应用程序。然而,JSP 技术通过将页面内容和显示逻辑分开,简化了创建网页的过程。在许多应用程序中,需将模板内容和动态生成的数据一块发送到客户端。基于此考虑,使用 JSP 页面技术将比全部用 servlets 来写要方便得多。
从哪里可以获得最新版本的JSP 规范?

最新的 JavaServer Pages 2.0 规范可以 从此 下载。
JSP 规范与 Java 2 Platform, Enterprise Edition 的关系如何?

JSP 2.0 规范是 Java 2 Platform, Enterprise Edition 1.4 的重要组成部分。 在构建基于 web 前端显示的分布式企业应用程序方面,JSP 和 EJB 技术的结合显示出强大的力量。
有哪些 web 服务器支持 JSP 技术?

有许多 JSP 技术实现可用于不同的 web 服务器。要获取最新已被官方支持的 web 服务器信息 ,请访问 http://java.sun.com/products/jsp/industry.html
Sun 公司是否提供对 JSP 规范的参考实现?

J2EE SDK 是 JavaTM 2 Platform, Enterprise Edition 的参考实现。Sun 在 J2EE SDK 中改装并集成了 Tomcat JSP 和 Java Servlet 实现。在应用程序部署和发布之前,可将J2EE SDK作为开发环境。

Tomcat 是免费和开放源代码的 Java Servlet 和 JSP 技术的实现,它由 Apache Software Foundation 的Jakarta 项目组开发。可从 http://jakarta.apache.org 下载。Tomcat 的商业应用需要有 Apache Software Foundation(ASF)的许可,并且可在 Apache 的网站上获取二进制和源代码的版本。JSP 技术的实现是 J2EE SDK 的一部分。
JSP 技术与其他产品技术相比有什么不同?

JSP 技术是行业协作的结果,它的设计是开放的,符合行业标准的,并支持绝大多数的服务器、浏览器和相关工具。由于使用可重用的组件和标签取代了对页面本身脚本 语言的严重依赖,JSP 技术大大加快了开发的速度。所有 JSP 的实现均支持以 Java 编程语言为基础的脚本语言,它有与生俱来的可适应性,支持复杂的操作。
从那里可获得关于 JSP 技术的更多信息?

获得关于 JSP 技术信息的最佳地方是 http://java.sun.com/products/jsp/ 。这里有大量的资源,还有 JSP 相关技术主题的邮件列表和讨论组等信息。


技术常见问题

JSP 页面是什么?

JSP 页面是 web 开发人员使用 JSP 内置标签和自定义标签,结合其他静态标签(HTML 或 XML 标签)生成的页面。JSP 页面的扩展名为 .jsp 或.jspx,web 服务器通过此扩展名通知 JSP 引擎处理该页面中的元素。通过部署描述文件 web.xml,也可使用其他扩展名和 JSP 引擎联系。

JSP 规范里描述了 JSP 页面的确切格式。
JSP 页面如何工作?

通过 JSP 引擎解释 JSP 页面中的标签,生成所需内容。例如,调用一个 bean 来访问一个使用JDBC API 的数据库或者是包含一个文件。然后 JSP 引擎把返回的结果以 HTML(或XML)页面的形式发送到浏览器。实质上是把生成内容的业务逻辑封装在服务器端处理的标签和 beans 中。
JSP 技术需要使用其他 Java 平台 API 吗?

JSP 页面通常被编译成 Java 平台 servlet 类。因此,JSP 页面的运行需要有能支持 Java 平台 servlet 规范的 Java 虚拟机。
JSP 页面如何进行调用和编译?

JSP 页面实际上只是在第一次被调用的时候被编译一次。页面被编译成 Java Servlet 类 ,并驻留在服务器内存中,这样以后调用该页面时将很快。
JSP 技术的语法是怎样的?

有关 JSP 的 语法和参考 可以到我们的网站上浏览和下载。
能否使用 JSP 技术来生成 XML 页面?

当然,JSP 规范支持 XML 文档的创建。对于简单的 XML 文档生成,XML 标签将以静态的部分包含在 JSP 页面中。动态的 XML 生成则需要使用 bean 组件或者自定义标签来实现。参阅白皮书 Developing XML Solutions with JavaServer Pages Technology (PDF)可以获得更多的细节。
能否使用 XML 工具来生成和处理 JSP 页面?

JSP 2.0 规范描述了 JSP 页面和 XML 文档之间的映射。通过该映射可以使用 XML 工具来生成和处理 JSP 页面。
在 JSP 页面中怎样使用 Javabeans 组件(bean)?

JSP 规范包括了标准的标签,用于使用和处理 bean。使用 useBean 标签生成一个特定 JavaBeans 的实例。如果这个类的实例已经存在,则直接使用。否则,创建一个新的实例。setProperty 和 getProperty 标签允许您操作给定对象的属性。这些标签在 JSP 规范和指南中有详细描述。

分享到:
评论

相关推荐

    JSP开发解析器

    **JSP开发解析器详解** JavaServer Pages (JSP) 是一种动态网页技术,它允许开发者将HTML代码与Java代码结合起来,以创建交互式的Web应用。在JSP中使用XML时,我们需要理解如何处理和解析XML文档。XML(eXtensible ...

    jsp问题处理集,解决大多数jsp的常见问题

    总之,这个"jsp问题处理集"很可能是对上述知识点的详细解答和实例演示,对于想要深入学习JSP的初学者来说,它会是一个很好的学习资源。通过阅读和实践其中的内容,初学者可以逐步克服JSP开发中的障碍,成为更熟练的...

    Apache服务器支持JSP解析

    Apache服务器支持JSP解析主要涉及以下几个关键步骤和技术: 1. **Apache服务器的安装与配置**: Apache HTTP Server是世界上最流行的Web服务器软件之一,用于发布静态网页和动态内容。首先,你需要安装Apache...

    jsp实现XML解析文档

    【JSP实现XML解析】是Web开发中常见的一项任务,主要涉及到XML文档的处理和解析。XML(eXtensible Markup Language)是一种可扩展标记语言,常用于数据交换和存储结构化信息。JSP(JavaServer Pages)是Java平台上的...

    面试中常见的有关JAVA和JSP的问题

    【JAVA和JSP面试常见问题解析】 1. **Struts工作原理** Struts是一个用于构建Java Web应用程序的MVC框架。它的工作流程主要包括: - **Controller Servlet**:作为入口点,接收并转发用户的请求至相应的Action...

    jsp页面文档编码问题

    在Java Web开发中,编码问题始终是一个常见的挑战,特别是涉及到JSP页面时。JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,以实现服务器端的数据处理和逻辑控制。然而,由于...

    jsp程序设计第2版习题解答含题目.docx

    jsp程序设计习题解答 本资源提供了jsp程序设计的习题解答,涵盖了jsp基础知识、jsp页面设计、jsp服务器配置、jsp变量作用域、jsp指令标记和动作标记的使用等多方面的知识点。 jsp基础知识 jsp程序设计是基于Java...

    JSP中js传递和解析URL参数以及中文转码和解码问题

    1.传递参数: 代码如下: var pmt = ‘sensor=’+ encodeURI(encodeURI(sensor))... top.location.href = ‘jsp/print/diagnosticAnaPrint.jsp?’+pmt; 2.接收和解析参数 代码如下: //获取URL参数 function GetRequest()

    JSP页面解析XML并且存入数据库

    本项目中,我们探讨的是如何在JSP页面中解析XML文件,并将解析得到的数据存入MySQL数据库。 首先,让我们深入了解XML。XML是一种自描述的、结构化的数据格式,它允许我们以树形结构来组织数据,便于机器理解和处理...

    Jsp中常见异常解答

    ### JSP中常见异常解答 在Java Server Pages (JSP) 开发过程中,开发者经常会遇到各种各样的异常情况。正确理解和处理这些异常对于确保应用程序的稳定性和用户体验至关重要。本文将详细解析JSP开发中常见的异常及其...

    jsp运行时的问题集合

    特定版本的Tomcat(如6.0)可能会有特定的兼容性或配置问题,文件可能针对这些问题提供了解答。 10. **jsp页面传值问题.txt** JSP页面间的值传递可以通过请求参数、会话、cookies等方式。文件可能涵盖了这些方法...

    jsp调用javabean的问题

    本篇文章将详细探讨“jsp调用javabean的问题”,以及如何有效地解决这些问题。 首先,我们需要了解JSP调用JavaBean的基本原理。在JSP页面中,我们通常使用`&lt;jsp:useBean&gt;`标签来实例化或查找JavaBean。例如: ```...

    JSP常见问题

    JSP常见问题解析 JSP(Java Server Pages)是一种基于Java技术的服务器端脚本语言,用于生成动态网页。下面我们将讨论JSP中的一些常见问题及其解决方法。 1. 如何混合使用Jsp和SSI #include? 在JSP中,可以使用...

    学习jsp碰到各种问题收集的处理办法

    6. **错误处理和调试**:JSP页面上的错误通常会在服务器日志中显示,学会阅读和解析这些日志对于定位问题至关重要。同时,了解如何使用断点、单步执行等调试工具,可以帮助定位和修复代码错误。 7. **MVC(Model-...

    jsp配置问题 教你一步一步解决

    本篇文章将针对"jsp配置问题"进行详细解析,通过图文并茂的方式帮助你逐步解决问题。 1. **JSP基础配置** - **安装JDK**:首先,确保你的开发环境已经安装了Java Development Kit(JDK),因为JSP是基于Java的。 ...

    JSP解析xml成绩管理系统

    【JSP解析XML成绩管理系统详解】 在开发一个基于JSP的学生成绩管理系统时,我们需要考虑如何有效地存储和处理成绩数据。在这个系统中,XML(eXtensible Markup Language)被用作数据交换格式,因为它提供了结构化...

    标准jsp标准jsp

    9. **容器角色**:JSP运行在Web应用服务器(如Tomcat、Jetty等)中,这些服务器被称为JSP容器,负责解析JSP、管理JSP页面的生命周期和执行上下文。 标准JSP与MVC(Model-View-Controller)模式的关系:JSP通常作为...

    jsp宝典,JSP

    7. **JSP生命周期**:了解JSP页面从创建到销毁的过程,包括解析、编译、实例化、初始化、服务和销毁六个阶段。 8. **MVC模式**:学习如何使用JSP实现Model-View-Controller(MVC)设计模式,以分离业务逻辑、数据...

    爬虫jsp获取网页源码

    如果发生错误,如网络问题或URL无效,我们会捕获异常并返回错误信息。 前端部分,我们可以使用HTML和JavaScript来构建用户界面,让用户输入网址并提交请求。例如: ```html &lt;!DOCTYPE html&gt; 网页源码获取 ...

    jsp eclipse乱码问题

    ### JSP Eclipse 乱码问题解析与解决方案 在开发基于Java的Web应用时,经常会遇到JSP页面在Eclipse环境中出现乱码的情况。这不仅会影响程序的正常运行,还可能导致用户体验下降。本文将针对JSP在Eclipse中的乱码...

Global site tag (gtag.js) - Google Analytics