转发时JSP容器将使用内部方法来调用目标页面,新页面将继续处理同一请求而不被浏览器所知道,但是重定向是第一个页面通知浏览器发送新的页面请求,那么你知道Jsp中的网页重定向的方法吗?
1.可以使用:
response.sendRedirect("http://www.foo.com/path/error.html"); |
2.可以手工修改HTTP header的Location属性,如下:
<% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); String newLocn = "/newpath/index.html"; response.setHeader("Location",newLocn); %> |
3.也可以使用forward:
<jsp:forward page="/newpage.jsp" /> |
请注意:只能在任何输出还没有发送到客户端之前使用这种方式。
5.6 类似global.asa的做法
在JSP中没有global.asa的对应物。但可以有一个workaround来运行。例如,如果你需要存储或存取application scope变量,你总是可以创建一个Javabean,并在页面中需要这些变量的地方将它包含进来。
<jsp:useBean id="globals" scope="application" class="com.xxx.GlobalBean"/> |
但是,也有一些产品具有这样的对应:
Allaire公司的产品JRun 3.0将提供global.jsa。JRun 2.3.3仍然给予支持,但只对JSP 0.92。当JRun 3.0最终推出时它将支持用于JSP 1.0和1.1的global.jsa。
你可以从http://beta.allaire.com/jrun30得到JRun 3.0 beta 5
另外,Oracle的JSP支持globals.jsa。
5.7 jsp显示当前时间
<%@ page import="Java.util.*, Java.text.*" %> <HTML> <HEAD> <TITLE>JSP to display the current time</TITLE> </HEAD> <BODY> The current time is: <% Date now = new Date(); out.println(DateFormat.getTimeInstance().format(now)); %> </BODY> </HTML> |
5.8在JSP中创建目录 Mkdir(String path)
<%@ page import="Java.io.*" %> <%! String Mkdir(String path) { String msg=null; Java.io.File dir; // 新建文件对象 dir =new Java.io.File(path); if (dir == null) { msg = "错误原因:<BR>对不起,不能创建空目录!"; return msg; } if (dir.isFile()) { msg = "错误原因:<BR>已有同名文件<B>" + dir.getAbsolutePath() + "</B>存在。"; return msg; } if (!dir.exists()) { boolean result = dir.mkdirs(); if (result == false) { msg = "错误原因:<BR>目录<b>" + dir.getAbsolutePath() + "</B>创建失败,原因不明!"; return msg; } // 如果成功创建目录,则无输出。 // msg ="成功创建目录: <B>" + dir.getAbsolutePath() + "</B>"; return msg; } else { msg = "错误原因:<BR>目录<b>" + dir.getAbsolutePath() + "</b>已存在。"; } return msg; } %> <% String filepath = "/usr/home/hoyi/html/dir"; String opmsg = Mkdir(filepath); %> |
5.9将return 转为<br>函数
public static String returnToBr(String sStr) { if (sStr == null // sStr.equals("")) { return sStr; } String sTmp = new String(); int i = 0; while (i <= sStr.length()-1) { if (sStr.charAt(i) == '/n') { sTmp = sTmp.concat("<br>"); } else { sTmp = sTmp.concat(sStr.substring(i,i+1)); } i++; } return sTmp; } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持错新技术频道。
新闻热点
疑难解答