1、在Servlet中编写前端代码的问题
⚠️Java程序中编写前端代码,编写难度大,麻烦
⚠️Java程序中编写前端代码,显然程序的耦合度非常高
⚠️Java程序中编写前端代码,代码非常不美观
⚠️Java程序中编写前端代码,维护成本太高(不容易发现错误)
⚠️修改一个小小的前端代码,只要有改动,就需要重新编译Java代码,生成新的class文件,打一个新的war包,重新发布
2、理解JSP
- JSP就是Java程序(JSP的本质就是Servlet)
- JSP是JavaServletPages的缩写(基于Java语言实现的服务器端的页面)
- JSP也是JavaEE中13中规范之一
- 每一个web容器/web服务器都会内置一个JSP翻译引擎
- jsp文件在WEB-INF目录之外,在webapp的根目录下
- 实际上访问
http://localhost:8080/jsp/index.jsp
这个index.jsp文件底层执行的是:index_jsp.class文件这个程序 - 这个index.jsp会被tomcat翻译生成index_jsp.java文件,然后tomcat服务器又将index.jsp编译生成index_jsp.class文件
- 访问index.jsp实际上执行的是index_jsp.class中的方法
- JSP实际上是一个Servlet
- index.jsp访问的时候,会自动翻译生成index_jsp.java,再自动百编译生成index_jsp.class,那么index_jsp这就是一个类
- index_jsp类继承HttpServlet
- jsp的生命周期和Servlet的生命周期完全相同
- JSP文件第一次访问比较慢,因为大部分运维人员在演示项目的时候,会提前把所有的jsp文件都访问一遍
[x] jsp文件中直接编写文字,被翻译到servlet类的service方法的out.writer(“翻译到这里”),直接翻译到双引号里,打印输出到浏览器
3、JSP和Servlet的本质区别(面试题)
[x] 职责不同
[x] 配置指:
<%@page contentType="text/html;charset=UTF-8" %>
表示响应内容时text/html,采用的字符集是UTF-8