日期:2014-05-16  浏览次数:20429 次

jsp总结

?

jsp总结

定义:

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对象。


?