jsp是运行在服务器端的组件,用来生成动态页面
jsp看起来就是HTML+java代码,其中HTML实现静态的部分,java实现动态的部分。
jsp也必须使用容器运行
jsp中的脚本、表达式
脚本元素:<% java代码 %>
表达式:<%=需要输出的内容%>
Servlet与jsp的作用总结
jsp主要用来显示动态页面,其中静态部分使用和文本显示,动态部分使用java代码实现。
Servlet不再用来显示动态页面,而是用来接收客户端传递过来的数据,根据业务逻辑进行处理,然后跳转到不同的页面,在跳转的过程中,如果需要传递数据,则可以使用请求中的setAttribute方法储存属性。
当业务逻辑比较复杂的时候,我们将不再在servlet中处理业务逻辑,而是使用java类,或者是ejb
jsp的运行过程
翻译 jsp文件—-》java文件
访问jsp时,Tomcat首先会按照规范把jsp文件翻译成.java文件,存放在catalina\localhost目录下
编译 java文件—-》class文件
Tomcat会编译生成的java文件,生成class文件
实例化
Tomcat创建jsp类的对象
提供服务
Tomcat调用jsp对象的 jspService方法,生成响应,返回给客户端浏览器,浏览器进行显示
销毁。
可见,即使一个jsp文件什么也没有写,是空白的,也会翻译成一个java类,而且类中已经有了一些代码,这些代码是固定的,就是说任何一个jsp文件,翻译生成的类都有这些代码。
jsp文件的本质
jsp文件的本质是一个java类,这个类也遵守Servlet的规范,可以说jsp就是一个servlet
jsp文件对应的java类是由容器翻译生成的
我们编写的jsp文件中的所有内容,都将会被翻译到java类中 jspService方法中,并且放在固定代码后面
可以说:我们写的jsp代码,无非是java类的 jspservice方法的方法体的一部分。