- <dependency>
-
- <groupId>javax.servlet.jspgroupId>
- <artifactId>jsp-apiartifactId>
- <version>2.2version>
- <scope>providedscope>
- dependency>
webapp->new->jsp
第三步 写jsp代码
- <%--
- Created by IntelliJ IDEA.
- User: ASUS
- Date: 2022/9/5
- Time: 19:46
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Titletitle>
- head>
- <body>
- <h1> 你好jsph1>
- <%
- System.out.println("hello");
- %>
- body>
- html>
概念:Java Server Pages , Java服务端页面
JSP=HTML+Java ,用于简化开发
JSP本质上就是一个Servlet
JSP在被访问是,有JSP容器(Tomcat)将其转化为Java文件(Servlet),有容器(Tomcat)将其编译,最终对外提供服务的其实就是这个字节码文件
用于在JSP页面定义java代码
JSP脚本分类 (在idea中直接 <% 回车就会自动打出)
<%...%> :内容会直接放到_jspService()方法中
<%=...%>: 内容会放到out.print() 中,作为out.print()的参数
<%!....>: 内容会放到_jspService()方法之外,被类直接包含。也就是成员变量的位置
这里来写个小案例模拟,从数据库拿数据输出到页面表格中
创建个学生类
- package com.chen.pojo;
-
- public class Student {
- private String name;
- private int age;
- private String ClassName;
-
- public Student(String name, int age, String className) {
- this.name = name;
- this.age = age;
- ClassName = className;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getAge() {
- return age;
- }
-
- public void setAge(int age) {
- this.age = age;
- }
-
- public String getClassName() {
- return ClassName;
- }
-
- public void setClassName(String className) {
- ClassName = className;
- }
- }
创建JSP代码
这里要注意一下,你在使用List集合中,要完整的写
Listslist=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代码
- <%@ page import="java.util.List" %>
- <%@ page import="com.chen.pojo.Student" %>
- <%@ page import="java.util.ArrayList" %><%--
- Created by IntelliJ IDEA.
- User: ASUS
- Date: 2022/9/6
- Time: 7:43
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
-
Title - <%
- List
slist=new ArrayList(); - slist.add(new Student("张三",20,"软件一班")); //模拟数据
- slist.add(new Student("李四",21,"软件二班"));
- slist.add(new Student("王五",22,"软件三班"));
- %>
-
-
姓名 -
年龄 -
班级 -
- <%
- for (int i = 0; i < slist.size(); i++) {
- Student student = slist.get(i);
- %>
-
-
<%=student.getName()%> -
<%=student.getAge()%> -
<%=student.getClassName()%> -
- <%
- }
- %>
遍历完如下
由于JSP页面内,既可以定义HTML标签,又可以定义Java代码,造成一下问题
书写麻烦,特别是复杂的页面
阅读麻烦
复杂度高,运行需要依赖各种环境,JRE,JSP容器,javaEE
占内存和磁盘:JSP会自动生成.java和.class文件占磁盘,运行的是.class文件占内存
调试空难:出错后,需要找到自动生成的.java文件进行调试
不利于团队协作:前端人员不会java,后端人员不精HTML
JSP已逐渐退出历史舞台