JSP与Servlet的对应关系
以前在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(早)