69-JSP

## JSP:入门学习
    1. 概念:
        * Java Server Pages: java服务器端页面
            * 可以理解为:一个特殊的页面,其中既可以直接定义html标签,又可以定义java代码
            * 用于简化书写!!!

index.jsp:

<%--
  Created by IntelliJ IDEA.
  User: guoxinlin
  Date: 2022/4/30
  Time: 21:14
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  $END$
  <%
    System.out.println("hello,jsp");  //在控制台显示
  %>
  <h1>hi jsp</h1> //直接展示在浏览器页面
  </body>
</html>

因为界面中既有需要服务器动态获取的比如登陆时间,也有一些html的信息比如图片文字等所以可以用jsp来写


    2. 原理
        * JSP本质上就是一个Servlet

浏览器发出请求xx/xx/index.jsp  服务器解析请求信息,找是否有index.jsp资源,找到了jsp的话会将index.jsp转换为.java的文件,接下来会编译这个.java文件生成.class字节码文件。最终是由字节码class文件给浏览器做出响应 (因为只有servlet类才能被访问到)所以JSP本质上就是一个Servlet

    3. JSP的脚本:JSP定义Java代码的方式
        1. <%  代码 %>:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。    所以上面例子在控制台输出hello, jsp
        2. <%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置可以定义在成员变量 、成员方法、静态代码块-----用的少, 因为servlet中尽量不定义成员变量方法容易产生线程安全问题
        3. <%= 代码 %>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。

<%--
  Created by IntelliJ IDEA.
  User: guoxinlin
  Date: 2022/4/30
  Time: 21:14
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  $END$


  <%
    System.out.println("hello,jsp");  //在控制台显示
    int i=5;  //作用域比较小
  %>


  <%!
    int i =3;
  %>


  <%=i%> //就近原则输出5
  <%="hello"%>


  <h1>hi jsp</h1> //直接展示在浏览器页面
  </body>
</html>


    4. JSP的内置对象:
        * 内置对象是在jsp页面中不需要获取和创建,可以直接使用的对象
        * jsp一共有9个内置对象。
        * 今天学习3个:
            * request
            * response

            * out字符输出流对象可以将数据输出到页面上。和response.getWriter()类似
                * response.getWriter()和out.write()的区别:
                  
 区别1* 在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。
                    区别2* response.getWriter()数据输出永远在out.write()之前

尽量直接用out往页面输出就ok
                

    

5. 案例:改造Cookie案例

注意这里的分割<%  %>写法

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值