[转帖]jsp常见问题_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3072 | 回复: 0   主题: [转帖]jsp常见问题        下一篇 
mengyuanye
注册用户
等级:少校
经验:1413
发帖:108
精华:7
注册:2012-11-14
状态:离线
发送短消息息给mengyuanye 加好友    发送短消息息给mengyuanye 发消息
发表于: IP:您无权察看 2012-11-19 16:16:03 | [全部帖] [楼主帖] 楼主

1、如何混合使用JspSSI #include?
JSP中可以使用如下方式包含纯HTML

<!--#include file="data.inc"-->


但是如果data.inc中包含JSP CODE ,我们可以使用:

<%@include file="data.inc"%>


2、如何执行一个线程安全的JSP?
只需增加如下指令

<%@ page isThreadSafe="false" %>


3JSP如何处理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); //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("I''m 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();
            }
      }
}


15JSPAPPLET如何通讯 
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"/>之间的差别?


前一个为静态包含,而后一个为动态包含

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

23JSP能进行递归调用吗?
当然可以,如对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、在servletsJSP之间能共享session对象吗?
当然可以,
HttpSession session = request.getSession(true); 
session.putValue("variable","value");

28javascript的变量能复制到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.自己写




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论