在没有使用JSP时,Servlet是使用响应对象写入html代码。==java中插入html代码
引入JSP后是在HTML中插入java

  • JSP文件在互联网通信过程,是响应对象替代品.
  • 降低将处理结果写入到响应体的开发工作量降低处理结果维护难度
  • 在JSP文件开发时,可以直接将处理结果写入到JSP文件不需要手写out.print命令,在Http服务器调用JSP文件时,根据JSP规范要求自动的将JSP文件书写的所有内容通过输出流写入到响应体
  • JSP文件只能存在项目的WEB文件夹下
  • 通常在Servlet工作完毕后,一般通过请求转发方式request.getRequestDispatcher("/index.jsp").forward(request, response)向Tomcat申请调用JSP
  • Servlet和JSP之间的数据共享
    • 使用请求作用于对象 request

JSP文件展示

  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <!-- 这一句指定了响应包中对应的头参数contentType -->
  3. <html>
  4. <head>
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. </body>
  9. </html>

在JSP文件中加入JAVA

执行标记

只有在执行标记中的内容才被当作java命令
可以写多个执行标记,并且所有执行标记都在一个域内,可以共用

  1. <%
  2. int num1 = 100;
  3. int num2 = 200;
  4. int num3 = num1 + num2;
  5. boolean num5 = num2 >= 200 && num1 == 100;
  6. // 还可以使用控制语句
  7. if(num2>=num1){
  8. } else {
  9. }
  10. for(int i =0;i < num1; i++){}
  11. %>

输出标记

通知Tomcat将输出标记中【变量的值】或则输出标记中【表达式运算结果】写入到响应体

  1. <%=java变量名%>
  2. <%=java表达式%>
  3. <%
  4. int num = 1;
  5. int num = 2;
  6. %>
  7. num1 + num2 = <%=num1+num2%>

导入java包

  1. <%@ page import="com.liangwei.dao.Student"%>
  2. <%
  3. Student stu = new Student();
  4. %>
  5. 学生姓名:<%=stu.getName()%>

使用if控制页面输出

  1. <%
  2. int age = 15;
  3. %>
  4. <%
  5. if(age > 11) {
  6. %>
  7. <p>你好</p>
  8. <%
  9. }else {
  10. %>
  11. <p>再见</p>
  12. <%
  13. }
  14. %>

for语句控制页面输出

  1. <%
  2. Student stu1 = new Student();
  3. Student stu2 = new Student();
  4. Student stu3 = new Student();
  5. List<Student> list = new ArrayList();
  6. list.add(stu1);
  7. list.add(stu2);
  8. list.add(stu3);
  9. %>
  10. <table>
  11. <tr>
  12. <td>名字</td>
  13. <td>编号</td>
  14. </tr>
  15. <%
  16. for(int i = 0; i < list.size(); i++) {
  17. Student stu = list.get(i);
  18. %>
  19. <tr>
  20. <td>stu.getName()</td>
  21. <td>stu.getId()</td>
  22. </tr>
  23. <%
  24. }
  25. %>
  26. </table>