这里说一下Servlet是如何工作的,同时解释一下上一篇文章介绍的Servlet。
当Web应用接受到浏览器发过来的请求时,就会去服务器上寻找处理这个请求的程序,或者是Servlet,或者是JSP,如果是Servlet,那么就将这个请求封装成为HttpServletRequest,然后提交给Servlet,所以在doGet这个函数中,传递过来的是HttpServletRequest这个请求。
Servlet根据请求进行处理,这里简单的打印出几行html代码,如果在res.setContentType这个函数中设置的是text/html,那么就返回html代码,如果设置的是text/xml,那么返回的就是xml文件了。
http的请求一般来讲分为get方法和post方法,get方法比较简单,使用方便,相当于直接在浏览器里面输入参数,这个详细内容将在下一篇文章介绍,get方法的缺点也是很明显的,那就是不安全,参数都被暴露在请求地址中,所以这时候可以使用post这个方法,这个方法适合发送大量数据,而且比较安全。
这里为了简单,只写了一个doGet函数,如果是post方法传递参数的话,那么就直接调用doGet这个方法。
这就是Servlet的运行原理了,当然高级的Servlet要比这个复杂很多,这个我会在Servlet高级应用中再做介绍。
Servlet的优点是安全高效,这个Java程序被编译成类,运行速度很快,而且放在WEB-INF文件夹下,比较安全,缺点也是显而易见的,那就是html代码要一行一行打印出来,意味着如果你输出的html文件有一千行,那么就必须写一千行out.print,而且出现错误不容易被发现,直到你的html打印出来,才能够检查到哪里出现错误,一旦出现错误,就必须修改这个类文件,重新编译,比较麻烦。
有需求就有解决方式,很多人也考虑到了Servlet的这些缺点,于是SUN开发除了Servlet的升级版本:JSP,这也是我说JSP就是Servlet的原因,两者在本质上是没有区别的,只是在编程实现上有所区别。下一篇文章就会讨论一下JSP版本的HelloWorld程序,看看两者之间的区别究竟在哪里。
还行。。。
@匿名 是在夸奖我么