• IDEA中JSP创建和小案例


    JSP入门

    第一步:导入JSP坐标

    1. <dependency>
    2. <groupId>javax.servlet.jspgroupId>
    3. <artifactId>jsp-apiartifactId>
    4. <version>2.2version>
    5. <scope>providedscope>
    6. dependency>

    第二步创建JSP文件

    webapp->new->jsp

    第三步 写jsp代码

    1. <%--
    2. Created by IntelliJ IDEA.
    3. User: ASUS
    4. Date: 2022/9/5
    5. Time: 19:46
    6. To change this template use File | Settings | File Templates.
    7. --%>
    8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    9. <html>
    10. <head>
    11. <title>Titletitle>
    12. head>
    13. <body>
    14. <h1> 你好jsph1>
    15. <%
    16. System.out.println("hello");
    17. %>
    18. body>
    19. html>

    JSP的原理

    概念:Java Server Pages  ,  Java服务端页面

    JSP=HTML+Java  ,用于简化开发

    JSP本质上就是一个Servlet

    JSP在被访问是,有JSP容器(Tomcat)将其转化为Java文件(Servlet),有容器(Tomcat)将其编译,最终对外提供服务的其实就是这个字节码文件

    JSP脚本

    用于在JSP页面定义java代码

    JSP脚本分类    (在idea中直接 <% 回车就会自动打出)

    <%...%> :内容会直接放到_jspService()方法中

    <%=...%>: 内容会放到out.print() 中,作为out.print()的参数

    <%!....>: 内容会放到_jspService()方法之外,被类直接包含。也就是成员变量的位置

    这里来写个小案例模拟,从数据库拿数据输出到页面表格中

    创建个学生类

    1. package com.chen.pojo;
    2. public class Student {
    3. private String name;
    4. private int age;
    5. private String ClassName;
    6. public Student(String name, int age, String className) {
    7. this.name = name;
    8. this.age = age;
    9. ClassName = className;
    10. }
    11. public String getName() {
    12. return name;
    13. }
    14. public void setName(String name) {
    15. this.name = name;
    16. }
    17. public int getAge() {
    18. return age;
    19. }
    20. public void setAge(int age) {
    21. this.age = age;
    22. }
    23. public String getClassName() {
    24. return ClassName;
    25. }
    26. public void setClassName(String className) {
    27. ClassName = className;
    28. }
    29. }

    创建JSP代码

    这里要注意一下,你在使用List集合中,要完整的写

    List slist=new ArrayList();

    你要是像在java中写代码写成这样

    List slist=new ArrayList<>();

    一会运行jsp的时候就会给你报错nable to compile class for JSP: 尖括号 operator is not allowed for source level below 1.7  我当时就搞了半天没看出来是那里有毛病

     在jsp中,<% %> 中没有办法直接嵌套html代码,需要给他分割开, 本案例就是for循环嵌套html代码

    1. <%@ page import="java.util.List" %>
    2. <%@ page import="com.chen.pojo.Student" %>
    3. <%@ page import="java.util.ArrayList" %><%--
    4. Created by IntelliJ IDEA.
    5. User: ASUS
    6. Date: 2022/9/6
    7. Time: 7:43
    8. To change this template use File | Settings | File Templates.
    9. --%>
    10. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    11. Title
    12. <%
    13. List slist=new ArrayList();
    14. slist.add(new Student("张三",20,"软件一班")); //模拟数据
    15. slist.add(new Student("李四",21,"软件二班"));
    16. slist.add(new Student("王五",22,"软件三班"));
    17. %>
    18. <%
    19. for (int i = 0; i < slist.size(); i++) {
    20. Student student = slist.get(i);
    21. %>
    22. <%
    23. }
    24. %>
    25. 姓名年龄班级
      <%=student.getName()%><%=student.getAge()%><%=student.getClassName()%>

    遍历完如下

     

     JSP缺点

    由于JSP页面内,既可以定义HTML标签,又可以定义Java代码,造成一下问题

    书写麻烦,特别是复杂的页面

    阅读麻烦

    复杂度高,运行需要依赖各种环境,JRE,JSP容器,javaEE

    占内存和磁盘:JSP会自动生成.java和.class文件占磁盘,运行的是.class文件占内存

    调试空难:出错后,需要找到自动生成的.java文件进行调试

    不利于团队协作:前端人员不会java,后端人员不精HTML

    JSP已逐渐退出历史舞台

  • 相关阅读:
    k8s-8 ingress-nginx
    curl命令介绍
    java计算机毕业设计校园外卖零食商城系统源码+数据库+系统+lw文档+部署
    nacos和eureka的区别
    npm run build 打包报错 - 添加 parallel: false, 解决
    Linux文件系统调用接口&&文件描述符的理解
    DFT Compiler极简示例1
    Python装饰器探究
    ffmpeg安装及使用
    leetcode_17电话号码的组合
  • 原文地址:https://blog.csdn.net/m0_64365315/article/details/126712412