• JSP入门级笔记


    JSP

    1、什么是JSP

    Java Server Pages:Java服务器端页面,也和Servlet一样,用于动态Web技术
    最大的特点:

    • 写JSP就像在写HTML
    • 区别:HTML只给用户提供静态的数据、jsp页面可以嵌入JAVA代码,为用户提供动态数据

    2、JSP原理

    思路:JSP到底怎么执行的

    • 代码层面没有任何问题
    • 服务器内部工作
      tomcat中有一个work目录;
      IDEA使用Tomcat的会在IDEA的Tomcat中产生一个work目录

    浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet!
    JSP最终也会被转换成为一个Java类!
    JSP本质上就是一个Servlet

    //初始化
    public void_jspInit(){}
    //销毁
    public void_jspDestory(){}
    //JSPService
    public void _jspService(.HttpServletRequest request,HttpServletResponse response){}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 判断请求
    2. 内置一些对象在这里插入图片描述
    3. 以上这些都可以在jsp中使用!

    在JSP页面中:
    只要是JAVA代码就会原封不动的输出;
    如果是HTML代码,就会被转换为:<out.write("<html>\r\n")>这样的格式输出到前端!

    3、JSP基础语法

    任何语言都有自己的语法,JAVA中有,。
    JSP表达式

     <%--JSP表达式
     作用:用来将程序的输出,输出到客户端
     <%= 变量或者表达式%>
     --%>
     <%= new java.util.Date()%>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    JSP脚本

    <%
        int sum = 0;
        for(int i = 1;i<=100;i++){
            sum+=i;
        }
        System.out.println("<h1>Sum="+sum+"</h1>");
    %>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    JSP声明

    <%!
    static{
        System.out.println("声明");
    }
    private int globalVar = 0;
    %>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    JSP声明:会被编译到JSP生成Java二点类中!其他的,就会被生成到_jspService方法中!

    <%@ page import="java.util.*"%>
    <%@ page isErrorPage="true" %> //这是一个错误页面
    <%@ page errorPage="error.jsp" %> //如果是错误页面去error.jsp
    
    • 1
    • 2
    • 3

    web.xml增加配置错误页面也可在这里插入图片描述

    4、9大内置对象

    • PageContext 存东西
    • Request 存东西
    • Response
    • Session 存东西
    • Application【ServletContext】 存东西
    • config【ServletConfig】
    • out
    • page
    • exception

    JSP页面代码

    <%
        pageContext.setAttribute("name","jjj");//保存的数据只在一个页面中有效
        request.setAttribute("name2","jjj2");//保存的数据只在一次请求中有效,请求转发会携带这个数据
        session.setAttribute("name1","jjj1");//保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
        application.setAttribute("name3","jjj3");//保存的数据只在服务器中有效,从打开服务器到关闭服务器
    %>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    <% pageContext.setAttribute("hello1","hello1",PageContext.SESSION_SCOPE);%>//等同于
    <%--<% session.setAttribute("hello1","hello1");%>--%>
    
    • 1
    • 2

    request:客户端向服务器发送请求,产生的数据,与用户看完就没有用了,比如:新闻,用户看完没有用的!
    session:客户端向服务器发送请求,产生的数据,用户用完一会还有,比如:购物车;
    application:客户端向服务器发送请求,产生的数据,一个用户用完了,其他用户还有可能使用,比如聊天数据

    5、JSP标签、JSTL标签、EL表达式

    EL表达式:(${ })

    • 获取数据
    • 执行运算
    • 获取web开发的常用对象
    <jsp:forward page=" index.jsp">
    	<jsp:param name="value1" value="value1"></jsp:param>
    	<jsp:param name="value2" value="value2"></jsp:param>
    </jsp:forward>`//跳转到某个页面
    
    • 1
    • 2
    • 3
    • 4
    //取出参数
    <%= request.getParam("value1")%>
    <%= request.getParam("value2")%>
    
    • 1
    • 2
    • 3

    JSTL标签
    菜鸟教程学习

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    • 1

    JSTL标签库是为了弥补HTML标签的不足;它自定义许多标签。

    核心标签(掌握部分):
    格式化标签:
    xml标签

    使用步骤:

    • 引入对应的taglib
    • 使用其中的方法
    • 在Tomcat中也需要引入jstl包,否则会报错:JSTL解析错误(Tomcat的lib中)
    <form action="coreif.jsp" method="get">
    	<input type="text" name="value1" value="${param.value1}">
    //判断如果提交的用户是管理员,则登录成功
    <c:if test="${param.value1=='value1'}" var="isAdmin">
    	<c:out value="管理员欢迎您!">
    </c:if>
    //自闭合标签
    <c:out value="$(idAdmin)"/>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    <c:set var="score" value="85"/>
    <: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>
    
    //var 每一次遍历出来的变量
    //items 要遍历的对象
    //begin 哪里开始
    //end 哪里结束
    //step 步长
    <c:forEach var="***" items = ${list}>
    	<c:out value="${people}"/><br>
    </c:foreach>
    <c:forEach var="" items="" begin="" end="" step=""></forEach>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
  • 相关阅读:
    利用bat脚本 一键将文件中的png图片转为 jpg图片
    c++:算术运算符、赋值运算符、比较运算符、逻辑运算符
    echarts 实现3D立体柱状图示例
    PDF怎么翻译成中文?这些方法值得收藏
    python自动解析301、302重定向链接
    Postman —— HTTP请求基础组成部分
    【技术分享】OSPFv3基本原理
    【Kali安全渗透测试实践教程】第8章 Web渗透
    Servlet —— Tomcat, 初学 Servlet 程序
    GO语言里的Log4j
  • 原文地址:https://blog.csdn.net/A_Tu_daddy/article/details/125391129