发布于 2015-05-08 03:59:39 | 255 次阅读 | 评论: 0 | 来源: 网友投递
JSP JAVA公司的WEB开发编程语言
JSP全名为Java Server Pages - java服务器页面是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。
网页跳转及常用处理方式
1.href超链接标记(客户端跳转)
<a href="hello.jsp">a标签跳转</a>
2.使用javascript完成(客户端跳转)
1.javascript提交表单的写法 <script type="text/javascript"> function submit () { with (document.getElementById("submit")) { action = "hello.jsp"; method = "post"; submit (); } } </script> 2.window.location直接定位 <script type="text/javascript" > window.self.location = "hello.jsp"; window.location.replace ("http://www.cnblog.com"); </script> 3.使用history对象的foward(), back(), go()方法 其中go()方法需要一个整形入口参数 <a href="javascript:history.go(-1);">返回上一步</a>等价于 <a href="javascript:history.back();">返回上一步</a>
3.提交表单完成跳转(客户端跳转)
<form name="form1" method="post" action="hello.jsp"> <input type="text" name="name"> <input type="text" name="password"> <input type="submit" value="提交"> </form>
4.使用jsp内置对象response(客户端跳转)
1.直接使用sendRedirect()重定向,重定向后在浏览器地址栏上会出现重定向页面的URL <% response.sendRedirect("http://www.cnblogs.com"); %> ps:sendRedirect()中的URL是可以带参数的,例如sendRedirect("http://www.cnblogs.com?name="+name"),可以在跳转到时候传入参数,此外,一般response.sendRedirect()之后紧跟一句return;既然已经要做转向,那么sendRedirect之后的输出就没有任何意义,而且有可能导致转向失败。 2.使用setHeader()方法,直接修改地址栏来实现页面的重定向 <% response.setHeader("Refresh", "1; url = http://www.cnblogs.com"); %> 标准格式:response.setHeader("Refresh", "等待的秒数; url = 绝对路径或者相对路径")
5.使用requestDispatcher类(服务端跳转)
RequestDispatcher rd = request.getRequestDispatcher("目标页面"); rd.forward(response,request);
Servlet可通过两种方式得到RequestDispatcher对象:
ServletContext的getRequestDispatcher()
ServletRequest的getRequestDispatcher()
调用ServletContext的getRequestDispatcher(String path)方法,path参数指定目标组件的路径。
调用ServletRequest的getRequestDispatcher(String path)方法与上一个方式的区别在于,前者的path参数必须是绝对路径,而后者的path参数可以是绝对路径,也可以是相对路径。所谓绝对路径,就是 指以符号"/"开头的路径,"/"表示当前web应用的URL入口。
response:
forward:
1.用a标签的onclick属性或onclick时间中返回false
<a href="" onclick = "do();return false">doSomething</a> 这是个执行顺序的问题,<a>这个标签的执行顺序是先执行onclick脚本,然后执行href参数指定页面的跳转。在onclick中返回false,就可以终止<a>标签的工作流程,也就是不让页面跳转到href参数指定的页面
2.用href = "javascript:void(0)"这种伪协议
<a href="javascript:void(0)" onclick="do()">doSomething</a>
3.href = "#"
<a href="#" onclick="do()">doSomething</a> 总是跳转到当前页面顶部,页面内容较多时,会有跳转的感觉
4.href = "###" 相比3,不会回到页面顶部,较好的选择)