JSP规范
1 - JSP规范介绍
1)来自于JavaEE规范中一种
2)JSP规范制定了如何开发JSP文件代替响应对象将处理结果写入到响应体的开发流程
3)JSP规范制定Http服务器应该如何调用管理JSP文件
4)JSP文件在执行时,自动将文件所有内容写入到响应体,从而节省书写out.print
优势:
①JSP文件在互谅网通信过程,是响应对象代替品
②降低将处理结果写入到响应体的开发工作量降低处理结果维护难度
③在JSP文件开发时,可以直接将处理结果写入到JSP文件不需要手写out.print命令,在Http服务器调用JSP文件时,根据JSP规范要求自动的将JSP文件书写的所有内容通过输出流写入到响应体
2 - 响应对象存在的弊端
1)适合将数据量较少的处理结果写入到响应体
2)如果处理数量过多,使用响应对象增加开发难度
3 - Servlet 与 JSP分工
Servlet:负责处理业务并得到处理结果 --- 大厨师
JSP:不负责处理业务,主要任务将Servlet中处理结果写入到响应体 --- 传菜员
Servlet 与 JSP之间的调用关系:Servlet工作完毕后,一般通过请求转发方式向Tomcat申请调用JSP
4 - Servlet与JSP之间如何实现数据共享
Servlet将处理结果添加到【请求作用域对象(ServletContex)】
JSP文件在运行时从【请求作用域对象(ServletContex)】得到处理结果
代码示例:
在Servlet接口实现类下(OneServlet.java)
Person p1 = new Person(1,"a");
Person p2 = new Person(2,"b");
List<Person> personList = new ArrayList<>();
personList.add(p1);
personList.add(p2);
// 将处理结果添加到请求作用域对象
request.setAttribute("key",personList);
// 通过请求转发方案,向Tomcat申请调用user_show.jsp,同时将request与response通过Tomcat交给user_show.jsp使用
request.getRequestDispatcher("/user_show.jsp").forward(request,response);
5 - Http服务器调用JSP文件步骤(面试题)
1.Http服务器将JSP文件内容【编辑】为一个Servlet接口实现类(.java)
2.Http服务器将Servlet接口实现类【编译】为class文件(.class)
3.Http服务器负责创建这个class的实例对象,这个实例对象就是Servlet实例对象
4.Http服务器通过Servlet实例对象调用jsp_service方法,将JSP文件内容写入到响应体
Http服务器【编辑】与【编译】JSP文件位置:
C:\Users\[登录Windows系统用户角色名]\.IntelliJIdea2019.3\system\tomcat\[网站工作空间]\work\Catalina\localhost\[网站别名]\org\apache\jsp