JSP入门

一.JSP入门

1.什么是JSP

是一种动态网页开发技术。它使用jsp标签在html网页中插入java代码。

<%
  Goods szss = new Goods("三只松鼠", "三只松鼠", 100, "三只松鼠,好吃不上火", 1);
  Goods yyk = new Goods("优衣库", "优衣库", 10, "优衣库,服适人生", 0);
  Goods xm= new Goods("小米", "小米科技有限公司", 100, "为发烧而生", 1);
  Goods[] goods= {szss,yyk,xm};
%>

二.JSP中常用的脚本

1.声明脚本

格式:<%! 声明java代码%>

作用:可以给JSP翻译出来的java类定义属性,方法,静态代码块,内部类等。

特点:不会在浏览器上显示出来,仅存于翻译后的java类中。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%--1.声明类属性--%>
    <%!
        private String name;
        private static Map<String, Object> map;
    %>
    <%--2.声明类方法--%>
    <%!
        public int sum() {
            return 12;
        }
    %>
    <%--3.声明静态代码块--%>
    <%!
        static {
            map = new HashMap<String, Object>();
            map.put("key1", "value1");
        }
    %>
</body>
</html>

<%!
  class Goods{
    private String name;
    private  String  company;
    private int sort;
    private String info;
    private int status;

    public Goods(String name, String company, int sort, String info, int status) {
      this.name = name;
      this.company = company;
      this.sort = sort;
      this.info = info;
      this.status = status;
    }

    public String getName() {
      return name;
    }


    public String getCompany() {
      return company;
    }

    public int getSort() {
      return sort;
    }



    public String getInfo() {
      return info;
    }



    public int getStatus() {
      return status;
    }


  }
%>

2.表达式脚本

格式:<%=表达式%>

作用:在浏览器的JSP页面上输出数据。

特点:(1).所有表达式脚本都会被翻译到对应的java类的_jspService()方法中,故表达式脚本可以直接使用_jspService()方法参数中的对象。

​ (2).表达式脚本都会被编译后的Java类的out.print()方法输出到浏览器页面上

​ (3).表达式中的脚本不能以分号结束。

 <%=22 %> <br/>
<%="可以输出字符串" %> <br/>
<%=map %> <br/>
<%--使用_jspService方法中的对象--%>
<%=request.getParameter("username") %>


<tr>
    <td><%=i+1%></td>
    <td><%=good.getName()%></td>
    <td><%=good.getCompany()%></td>
    <td><%=good.getSort()%></td>
    <td><%=good.getInfo()%></td>
    <td><%=(good.getStatus()==1)?"启用":"禁用"%></td>
    <td>修改删除</td>
  </tr>

3.代码脚本

格式:<%Java语句%>

作用:在JSP页面中可以编写需要的Java代码。

特点:(1).代码脚本翻译后都在_jspService()方法中,故代码脚本可以直接使用此方法参数中的对象。

​ (2).可以有多个代码块脚本块组合完成一个完整的Java语句。

​ (3).代码脚本可以和表达式脚本一起组合使用,在JSP页面上输出数据。

<%--1.if语句--%>
<%
    int i = 1;
    if (i == 1) {
        System.out.println("我爱祖国!");
    } else {
        System.out.println("我很爱祖国!");
    }
%> <br/>
<%--2.for循环语句--%>
<%
    for (int j = 0 ; j < 3; j++) {
        System.out.println("第" + j + "次循环");
    }
%> <br/>
<%--3.使用_jspService方法参数中的对象--%>
<%
    String username = request.getParameter("username");
    System.out.println("username对应的值为:" + username);
%>

三.JSP 指令

基本格式:<%@ 指令名称 属性名称=“属性值”%>

page指令:告知容器如何处理当前的JSP源文件,比如用哪种字符编码来读取JSP源文件并将其翻译为Servlet源代码。

  • language属性:告知容器采用哪种编程语言解释当前JSP源文件。
  • pageEncoding属性:以哪种字符编码翻译当前JSP .
  • contentType属性:告知容器将来客户端发送响应数据时使用哪种MIME类型。
<%@ page contentType="text.html" charset="UTF-8"%>

四.EL表达式(表达式语言)

作用:获取数据,从域对象中获取数据。

语法:${espression}

${loginUser}就是获取域中存储的key为loginUser的数据。

==<%@ page isELIgonred=“false”%>==防止$不被解析

<td>${b.id}</td>
    <td>${b.bookTitle}</td>
    <td>${b.publicationDate}</td>
    <td>${b.author}</td>
    <td>${b.price}</td>
    <td>${b.quantity}</td>

五.四大域对象

page:当前页面有效

request:当前请求有效

session:当前会话有效

application:当前web应用有效

六.JSTL标签

使用标签取代JSP页面上的Java代码。

使用:(1).导入依赖

​ (2).在JSP页面上引入JSTL标签 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c: if>:相当于if判断

属性:test,用于定义条件表达式

<C: if test="${1>2}">
    错误
</C:if>

<C: forEach>类似于java中的for循环

  • items:被遍历的容器
  • var:遍历产生的临时变量
  • varstatues:遍历状态对象
<c:forEach items="${book}" var="b" varStatus="state">
    <!--index: state.index    从0开始计数-->
      <!--count: state.count    从1开始计数-->
<tr>
    <td>${b.id}</td>
    <td>${b.bookTitle}</td>
    <td>${b.publicationDate}</td>
    <td>${b.author}</td>
    <td>${b.price}</td>
    <td>${b.quantity}</td>
    <td>
        <a href="">修改</a>
        <a href="/delete?id=${b.id}" >删除</a>
    </td>
</tr>
</c:forEach>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值