jsp和servlet的区别
元问题来自JSP与Servlet的比较。
我们知道Servlet能够使得JAVA代码不用像Applet那样在客户浏览器中运行,它会在你控制的一个应用服务器上运行。在没有什么背景知识的前提下我默认这是一种规则,即Servlet就是这样发展起来的。在实际应用中当我们请求一个JSP页面的时候,JSP首先被转化为Servlet,然后再进行编译,执行,最后将结果返回给浏览器。
问题一: 那么既然是这样,也就是说先有JSP后有Servlet,那么为何要把它们拿到一些来进行比较呢?是我这种"先有JSP后有Servlet"的认为有错吗?
自己这样认为:
不一定是先有JSP后才有Servlet的,因为同是一种语言,JSP只是在HTML中“封装”了JAVA 语言,JSP 标签。而Servlet 是在JAVA 中“封装”了JSP标签,HTML标签。因此它们是平等的。我们可以直接编写Servlet,当然我们也可以直接编写JSP罗。
问题二:为什么要把JSP先交给服务器进行处理?
自己这样认为:
1.因为JSP是一种服务器端嵌入了JAVA代码的脚本语言因为JAVA代码是不能没有JVM的条件下编译,执行,再运行的。所以要将处理JAVA代码的这一步交给能够处理JAVA代码的服务器来进行处理。
2.因为JSP页面中包含有JSP标签,JAVA代码,HTML代码。其中JSP标签,JAVA代码是不能够被浏览器解释执行的。因此必须通过某种手段将它转变成浏览器能够理解的代码。
问题三:将JSP页面交给服务器进行处理也就罢了,但为什么不是直接进行处理而是先将其转为Servlet呢?
自己这样认为:
因为JSP页面中包含有JSP标签,JAVA代码,HTML代码。我们的目的是要得到浏览器能够理解的代码,所以为了把它们进行统一处理必须把它们变成一致的格式,即另外一种语言---Servlet。
引出的一个新问题:
那到底浏览器能够理解哪些代码呢?我又作如下想法:
最开始的时候,浏览器是只能够理解HTML的,随着时间的推移人们对WEB页面的要求逐渐变高,以往的静态页面慢慢的过渡到动态页面。因此浏览器不得不努力健身以承担更为艰巨的翻译任务。所以慢慢的就开始支持 VBscript,Javascript等脚本语言了。并且又因为要常常支持一下动态的页面效果如FLASH等,所以就必须得需要一些额外的控件了。
相关文档:
用了commons-fileupload-1.2.jar和commons-io-1.3.2.jar这两个包。
save.jsp
<%@ page language="java" contentType="text/html;charset=utf-8"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.regex.*"%>
<%@ page import="org.apache.co ......
对于HTM网页,加入:
<meta HTTP-EQUIV="pragma" CONTENT="no-cache">
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<meta HTTP-EQUIV="expires" CONTENT="0">
然后,jsp页面中加入:
<%
response.setHeader("Cache-Control","no-store") ......
前几天,湖南SEO在用jsp写一个企业站程序的时候,因为要参加项目答辩竞选,所以就想为自己写的程序搞几个亮点,因为搞SEO久了,不自觉就会想到伪静态,但是在百度查了一个下午,只查到了urlrewrite架包的下载地方,和架设方面的文章,并没有jsp(JAVA)伪静态的具体操作示范,有的也只是,单页面的伪静态的写法,这里我就重头 ......
也许很多高手都不削解决这个问题,但是我觉得对初学者来说这个问题还是要研究一会的,所以就记录下来了。
问题描述:
当你在Eclipse的程序中加入一个JSP文件后,整个Project 会报一个这样的Error.
问题原因:
默认Eclipse的编译环境是JRE,而JRE是不带编译器的,只有JDK才带编译器。所以必须把JDK作为你项目的Installe ......