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] 职责不同

    • Servlet的职责是:收集数据
      • Servlet最强项的是逻辑处理,业务处理,然后连接数据库,获取/收集数据
    • JSP的职责是:展示数据
      • JSP最强项的是做数据的展示

        4、JSP的page指令,解决响应时的中文乱码问题

  • [x] 配置指:<%@page contentType="text/html;charset=UTF-8" %>表示响应内容时text/html,采用的字符集是UTF-8

image.png
image.png

5、实现

5.1 jsp在本地的编译位置

image.png
image.png


5.2 JSP的理解预览

image.png
image.png
image.png
image.png


image.png
image.png
image.png