1.JSP

1.1 JSP概述

全称:

  Java Server Page      Java服务器页面,和Servlet一样,都是Sun公司提供的动态资源开发技术。兼容HTML,CSS,JavaScript,还可以运行Java代码。

     可以同时在设计完成前端页面,优化美化,情况下做java后台逻辑代码实现

 

1.2 为什么要用JSP

1.jsp目前没有了解过前端解析数据方式情况下,和java后台的融合性更好

2.jsp最终编译的结果就是一个Servlet程序

3. jsp兼容性还可以,性能也不错

4.可以让Servlet摆脱内嵌HTML页面的情况

5.jsp是一个动态资源,和HTML页面不一样

1.3 JSP语法

 

1.3.1 JSP语法格式

JSP页面中可以包含任何的JAVA代码,变量,语句和方法

 

格式:

     <% java代码 %>

声明局部变量:

    <% int i=10;%>

声明全局变量:

     <% int i =10;%>

输出变量:

    <%=2+3%>  输出语句没有分号结尾

jsp注释【重点】

     <% --jsp注释--> 安全,省流量

     <!-- 网页注释 -->不安全,耗流量

 

<%--
  Created by IntelliJ IDEA.
  User: 刘朝阳
  Date: 2020/5/23
  Time: 10:54
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>01-第一行</title>
</head>
<body>

<%
    System.out.println("你好,jsp");

%>
<%=2+3%>

<% int c = 10;%>
<h1><%=c%></h1>

<%!

    public void show(){
    System.out.println("您好,jsp");
    }

%>

<%

    show();
%>
</body>
</html>

 

1.3.2 JSP指令

page指令

<%-- 告知jsp页面当前页面内容是HTML内容,编码集是UTF-8 解析使用语言是java语言--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

 

<%@ page contentType="text/html;charset=UTF-8" 

         
         import 导包,和java代码操作一致,导入当前jsp页面所需的资源
         language="java"  解析当前jsp使用的语言
         pageEncoding="utf-8" 当前页面的编码集
         buffer="8kb" jsp页面的默认缓冲大小 8kb
         session="true"session 默认开启,如果选择不开启session,属性值为false
         isELIgnored="true"  jsp页面是否支持EL表达式,默认支持,不支持属性值为false
         isErrorPage="false"   当前jsp页面是否为错误页面,默认不是,如果需要设置为错误页面 属性值为true
         errorPage="url" 指定当前JSP 页面发送错误之后,跳转到那一个错误页面 


%>

include指令

 

包含其他的jsp页面,可以使静态包含,也可是动态包含

静态包含:

        <% include file = "xxx.jsp"%>

动态包含:

        <jsp:include page="xxx.jsp"></jsp:include>

     

静态包含其他jsp页面,将其他页面编译时合并

动态包含是当前jsp页面运行到jsp.include时才会加载对应的jsp资源,并不会合并两个jsp页面

<% @include flie= "head.jsp"%>


<% @include flie= "left.jsp"%>

 

taglib 指令:

作用: 导入其他标签库

1.3.3 jsp动作

这里可以使用一部分的JSP标签来表示一定的java代码

    jsp:include  动态包含

    jsp:forword  转发

    jsp:param 请求设置参数

    jsp:useBean 创建一个对象

    jsp:setProperty 给指定的对象对应属性赋值

    jsp:getProperty 从指定的对象对应属性取值

package com.q;

public class Student {
    
    private Integer id;
    private String name;
    private Integer age;

    public Student() {
    }


    public Student(Integer id, String name, Integer age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }


    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

 

<%--
  Created by IntelliJ IDEA.
  User: 刘朝阳
  Date: 2020/5/23
  Time: 11:41
  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>
<jsp:useBean id="id" beanName="stu" class="com.q.Student" ></jsp:useBean>

<jsp:setProperty name="id" property="id" value ="1"></jsp:setProperty>

<jsp:setProperty name="id" property="name" value="小明"></jsp:setProperty>

<jsp:setProperty name="id" property="age" value="16"></jsp:setProperty>

<%=id%>





</body>
</html>

 

1.4 JSP内置对象【重点】

对象名类型说明
requestjavax.servlet.html.HttpServletRequest用户请求对象
responsejavax.servlet.html.HttpServletResponse服务器对应用户的请求
sessionjavax.servlet.html.HttpServletSessionSession会话控制对象
applicationjavax.servlet.html.HttpServletContext整个项目的上下文对象
exceptionjava.lang.Throwable异常;isErrorPage="true"
pagejava.lang.Object==>this对象JSP==>Servlet this对象
configjavax.servlet.ServletConfigservlet配置对象
outjavax.servlet.jsp.JspWriter类似于rep.getWriter
pageContextjavax.servlet.jsp.PageContext当前页面对象上下文
<%--
  Created by IntelliJ IDEA.
  User: 刘朝阳
  Date: 2020/5/23
  Time: 11:57
  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>

<%
   //内置对象可以直接使用
    pageContext.setAttribute("msg","PageContext Message");


%>

<h1><%=pageContext.getAttribute("msg")%></h1>

<% response.getWriter().append("<h2>Hello</h2>");


out.print("测试");

%>


</body>
</html>

 

1.5 域对象【重点】

 

域对象都可以操作以下三个方法

     setAttribute(String name,Object value)

    Object getAttribute(String name)

     void removeAttribute(String name)

可以利用域对象的特征,设置一定的属性放入到域对象内

在jsp中使用的四个域对象

 

      pageContext

      request   

      session

      application

 

pageContext存在一定的特权,通过pageContext可以操作其他域对象

 

     setAttribute(String name,Object value,int scope)

    Object getAttribute(String name,int scope)

     void removeAttribute(String name,int scope)

     scope是域对象标记,这里使用了一个常量、

 

域对象表示一个常量,存在于PageContext类内

   PageContext.PAGE_SCOPE;

   PageContext.REQUEST_SCOPE

   PageContext.SESSION_SCOPE

   PageContext.APPLICATION_SCOPE

 

<%@ page import="com.q.Student" %><%--
  Created by IntelliJ IDEA.
  User: 刘朝阳
  Date: 2020/5/23
  Time: 14:48
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>06-域对象</title>
</head>
<body>


<%
     pageContext.setAttribute("msg","PageContext Message");
     request.setAttribute("msg","Requset Message");
     session.setAttribute("msg","Session Messafe");
     application.setAttribute("msg","Application Message");


    Student stu = new Student(1, "小李", 16);

    request.setAttribute("stu",stu);

%>


<%--

数据检索顺序是从Page》Request》Session》Application
--%>


<h1>${msg}</h1>

<h2>${stu.id}</h2>
<h2>${stu.name}</h2>
<h2>${stu.age}</h2>
</body>



</html>

    

 

 

 

 

 

 

 

 

 

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐