定义:
jsp一种动态网页技术,在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
注:jsp 是servlet的另一种形式,是java领域的;而javascript(js)是一种脚本语言 java和javascript两者没有关系
特点:
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行;大多数通用的 Web服务器如:Apache、Netscape和Microsoft IIS都支持JSP页面;JSP可以使用Java编程语言或JavaScript作为脚本语言,而ASP使用VBScript或Jscript作为脚本语言。
重定向:
1.RequestDispatcher.forward()
{ response.setContentType("text/html; charset=gb2312"); ServletContext sc = getServletContext(); RequestDispatcher rd = null; rd = sc.getRequestDispatcher("/index.jsp"); //定向的页面 rd.forward(request, response); }
这种方式是在服务器端作的重定向。当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件
2.sendRedirect
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html; charset=UTF-8"); response.sendRedirect("/index.jsp"); }
这种方式是在客户端作的重定向处理。由于response是jsp页面中的隐含对象,故在jsp页面中可以用response.sendRedirect()直接实现重定位。需要跳转到一个其它服务器上的资源,则必须使用此方法
3.修改HTTP header的Location属性来重定向
通过设置直接修改地址栏来实现页面的重定向。
<% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); String newLocn = "/newpath/jsa.jsp"; response.setHeader("Location",newLocn); %>
比较:
forward方法只能重定向到同一个Web应用程序中的一个资源,重定向后浏览器地址栏URL不变,而sendRedirect方法可以重定向到任何URL, 因为这种方法是修改http头来实现的,URL没什么限制,重定向后浏览器地址栏URL改变。
参数的传递方式不一样。forward的form参数跟着传递,所以在第二个实例中可以取得HTTP请求的参数。sendRedirect只能通过链接传递参数,response.sendRedirect(“login.jsp?param1=a”)。
内置对象:
request对象:
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息
session对象:
它在第一个JSP页面被装载时自动创建从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当回话结束时,session对象死亡。
application对象:
服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。