javaweb-JSP

JSP

什么是JSP

Java Server Pages:Java服务器端页面,也和Servlet一样,用于动态Web技术!

最大的特点:

  • 写jsp就像再在写HTML

区别:

  • html只给用户提供静态的数据
  • jsp页面中可以嵌入Java代码,为用户提供动态数据

jsp原理

浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet

jsp最终也会被转换成为一个java类

jsp本质上就是一个Servlet类

在jsp页面中

只要是Java代码就会原封不动的输出

如果是html代码,就会被转换为:

这样的格式,输出到前端

out.write("<html>\r\n");

jsp基础语法

任何语言都有自己的语法,Java中有,jsp作为Java技术的一种应用,它拥有一些自己扩充的语法(了解即可),Java所有语法都支持

jsp表达式

<%--jsp表达式
作用:用来将程序输出,输出到客户端
<%= 变量或者表达式%>
--%>
<%= new java.util.Date()%>

jsp脚本片段

<%--jsp脚本片段--%>
<%
  int sum = 0;
  for (int i = 1; i <= 100 ; i++) {
    sum+=i;
  }
  out.println("<h1>sum="+sum+"</h1>");
%>

脚本片段的再实现

 <%
    int x = 10;
    out.println(x);
  %>
  <p>这是一个jsp文档</p>
  <%
    int y = 2;
    out.println(y);
  %>
  <hr>
  <%--在代码中嵌入html元素--%>
  <%
    for (int i = 0; i < 5 ; i++) {


  %>
  <h1>hello,world   <%=i%></h1>
  <%
    }
  %>

jsp声明

<%!
    static{
      System.out.println("Loading Servlet!");
    }
    private int globaVar = 0;
    public void he(){
      System.out.println("进入了方法he!");
    }
  %>

jsp声明:会被编译到jsp生成Java的类中,其他的,就会被生成到_javaService中!

在jsp中,嵌入java代码即可

<%%>
<%=%>
<%!%>
<%jsp注释%>

jsp注释,不会在客户端显示,html会

jsp指令

<%@page args...%>
<%@include file=""%>

<%--@include会将两个页面合二为一--%>
<%@include file="common/header.jsp"%>
<h1>网页主题</h1>
<%@include file="common/footer.jsp"%>

<hr>

<%--jsp标签
jsp:include:拼接页面,本质还是3个
--%>
<jsp:include page="/common/header.jsp"/>
<h1>网页主题</h1>
<jsp:include page="/common/footer.jsp"/>

九大内置对象

  • PageConetext
  • Request
  • Response
  • Session
  • Application
  • config
  • out
  • page 不用了解
  • exception
 pageContext.setAttribute("name1","饼干1号");//保存的数据只在一个页面中有效
    request.setAttribute("name2","饼干2号");//保存的数据只在一次请求中有效,请求转发会携带这个数据
    session.setAttribute("name3","饼干3号");//保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
    application.setAttribute("name4","饼干4号");//保存的数据只在服务器中有效,从打开服务器到关闭浏览器

request:客户端向服务器发送请求,产生的数据,用户看完就没用了,比如:新闻,用户看完没用的

session:客户端向服务器发送请求,产生的数据,用户看完一会还有用,比如:购物车

application:客户端向服务器发送请求,产生的数据,一个客户用完了,其他的客户还可能使用,比如:聊天数据

jsp标签,jstl标签,EL表达式

<!--jsp依赖-->
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.3</version>
    </dependency>
    <!-- jstl的依赖 -->
    <dependency>
        <groupId>javax.servlet.jsp.jstl</groupId>
        <artifactId>jstl-api</artifactId>
        <version>1.2</version>
    </dependency>

EL表达式:${ }

  • 获取数据
  • 执行运算
  • 获取web开发的常用对象
<%--jsp:include--%>
<%-- http://loaclhost:8080/jsptag.jsp?name=binggan&age = 5
--%>
<jsp:forward page="/jsptag2.jsp">
    <jsp:param name="name" value="binggan"></jsp:param>
    <jsp:param name="age" value="5"></jsp:param>
</jsp:forward>

JSTL标签库的使用就是为了弥补HTML标签的不足,它自定义许多标签,可以供我们使用,标签的功能和Java代码一样

核心标签

格式化标签

SQL标签

XML标签

JSTL标签库使用步骤

  • 引入对应的taglib
  • 使用其中的方法
  • 在Tomcat也需要引入JSTL的包,否则会报错:JSTL解析错误

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--定义一个变量score,值为85--%>
<c:set var="score" value="85"/>
<c:choose>
    <c:when test="${score>=90}">
        你的成绩为优秀
    </c:when>
    <c:when test="${score>=80}">
        你的成绩为一般
    </c:when>
    <c:when test="${score>=70}">
        你的成绩为及格
    </c:when>
    <c:when test="${score<=60}">
        你的成绩为不及格
    </c:when>
</c:choose>
</body>
</html>
判断如果提交的用户名是管理员,则登陆成功
<%
    if(request.getParameter("username").equals("admin")){
        out.print("登录成功");
    }
%>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超级小何

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值