1.JSP(JavaServer Pages)
JSP是一种用于创建动态Web页面的Java技术。它是在Java Servlet技术的基础上发展而来的,通过在HTML页面中嵌入Java代码,可以实现动态内容的生成和交互。
写JSP类似于写HTML,但是HTML只能给用户提供静态的数据,JSP因为嵌入了JAVA代码,可以给用户提供动态的数据。
2. JSP运行原理
用户通过浏览器访问jsp页面,服务器首先找到.jsp文件,然后将其转换成一个.java文件(这个java中的类继承了HttpJspBase类),再编译成.class。本质上,jsp文件就是一个servlet。
编写index.jsp文件:<% %>内可以写java代码
浏览器访问该页面后,可以在tomcat的work目录下找到转换后的文件
index_jsp.java中的类:
该类继承了HttpJspBase类:
HttpJspBase类的继承关系如下:
java.lang.Object -> javax.servlet.GenericServlet -> javax.servlet.http.HttpServlet -> javax.servlet.jsp.HttpJspBase -> javax.servlet.jsp.HttpJspPage
所以tomcat自动转换成的index_jsp.java中的类间接继承了HttpServlet ,这个类和我们之前学习的Servlet的类是一样的,只是我们没有直接写这个类,是先写了jsp,然后自动转换的。
该类中一样有service方法:参数一样是HttpServletRequest和HttpServletResponse对象
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException
service方法中的这些对象也是可以直接在jsp页面中使用的:
service中也包括了自动转换的代码:将jsp中的内容转换成了java中的输出方法
运行结果:
3.JSP的特点:
- 动态内容:JSP允许在HTML页面中嵌入Java代码,可以通过Java代码生成动态内容,例如数据库查询结果、用户输入等。这使得开发人员可以在页面上动态地显示和处理数据。
- 与Servlet无缝结合:JSP本质上是Servlet的一种简化形式,JSP页面在服务器端被编译成Servlet,并由Servlet容器进行处理。因此,JSP可以与Servlet无缝结合,共同完成Web应用程序的开发。
- 基于标签库:JSP提供了标签库(Tag Library)机制,可以通过自定义标签和标签库来简化页面的开发。标签库可以将常用的功能封装为标签,使得页面代码更加简洁和易于维护。
- 完整的Java支持:JSP支持完整的Java语言功能,可以使用Java的控制结构、变量、方法等。开发人员可以利用Java的强大功能来处理复杂的业务逻辑和数据操作。
- 跨平台兼容性:由于JSP是基于Java技术的,所以具有很好的跨平台兼容性。开发的JSP页面可以在不同的操作系统和Web服务器上运行,无需对代码进行修改。