JSP与Servlet的对应关系

canca canca
2007-04-22 21:55
1
0

以前在QQzone写下的文章现在贴到这里来了...

最近比较忙啊!现在抽身写一篇文章。是关于JSP与Servlet的对应关系的。希望对大家有所帮助。其实我也是刚刚学的......

-------Servlet--------------JSP----------
1.ServletContext            Application
2.JspWriter                 out
3.HttpSession               Session
4.HttpServletResponse       response
5.HttpServletRequest        request
......                      ......

现在说说脚本元素的类型之间的原理^_^
一.表达式
格式:<%=expression%>

二.Scriptlet(片段)
格式:<%code%>
逐字地插入到Servlet的_JspService方法中(由Servlet调用).

三.声明
格式:<%!=code%>
逐字地插入到Servlet类的定义体中,不在任何方法之内.

现在朋友们应该知道其中的区别吧!表达式很简单就不多说了.Scriptlet与声明的区别在于两者存放的位置不同.因为Scriplet存放在_JspService方法内的.因此其代码为局部的.因此不能被外部方法调用.而声明是在方法外的.是可以给外部调用.是定义在Class下的.例:

public class servletTest {
     private int 声明变量;
     private void doIt(){
          //声明方法.
     }
     public _JspService(...){
         //片段放在这的..
     }
}

以上的例子不是真正的Servlet程序,但是基本方法是一样的...具体请查看J2EE API...

现在再说说JSP中的隐含对象吧!!这个可能大家都很感兴趣...

有一点大家一定要注意:JSP的隐含对象是_JspService方法中的,也就是说其只能被JSP中的片段代码使用.在声明中的方法里并不能直接使用...为什么说不能直接呢?具体请听我说其解决方案:用以将隐含对象作为参数传递给声明方法中...注意:使用其out对象时会抛出IOException异常的.大家在使用时一定会注意到的.

这里我就不讨论隐含对象的使用方法了...书本上到处都是...

现在讨论一下Session跟Cookie和URL重写这两种会话跟踪的联系吧...这个大家都很感兴趣的...

Session不是什么新东东.它只是Cookie与URL重写这两种技术的融合.为什么这样说呢??因为其内部都是用这两种技术的...如果客户端不支持Cookie即服务器会自动使用URL重写.还要明白的是:Cookie是存储在服务器端的...并不是存储在客户端.客户端只存储其Session的ID号.

OK,就说到这吧!!由于作者技术水平有限,难免有错.望朋友们能不吝指教.谢谢!


2006.11.21(早)

发表评论