概念:
    java Server Page:java服务器端页面
        *可以理解为一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码

作用:简化书写java代码,jsp本质上就是一个Servlet
原理:
    1.服务器解析请求消息,找是否有index.jsp资源
    2.如果找到了会将jsp转化为Servlet的java文件
    3.编译java文件,生成class字节码文件
    4.由字节码文件提供访问

jsp脚本:JSP定义java代码的方式
    1.<% 代码 %>:定义的java代码,在service方法中,service方法可以定义什么,该脚本中就可以写什么
    2.<%!代码 %>: 定义类成员,可以定义成员变量和方法
    3.<%= 代码 %>:定义的java代码会输出到页面,输出语句中可以定义什么,该脚本中就可以定义什么

jsp内置对象:不用定义可以直接使用的对象
    四个域对象:
        1.pageContext:
            类型:PageContext
            作用:当前页面共享数据,获取其他内置对象

        2.request:请求对象
            类型:HttpServletRequest
            作用:一次请求访问的多个资源间共享数据(转发)

        3.session
            类型:HttpSession
            作用:一次会话的多个请求共享数据

        4.application
            类型:ServletContext
            作用:所有用户间共享数据。服务器开启创建,服务器销毁销毁


        5.response:
            类型:HttpServletResponse
            作用:响应对象,响应请求

        6.out:
            类型:JspWriter
            作用:字符输出流对象,可以将数据输出到页面,和response.getWriter()类似
                out和getWriter()的区别
                out定义在哪个位置就会输出在哪个位置,getWriter会优先执行,因为浏览器会先找response响应缓冲区,在找out缓冲区
   
        7.page
             类型:Object
            作用:当前页面(servlet)对象(this)
        8.config
             类型:ServletConfig
             作用:servlet配置对象
        9.exception
             类型:Throwable
             作用:异常对象

jsp指令 
    作用:用于配置jsp页面,导入资源文件
    格式:<%@指令名称 属性名1=属性值1 属性名2=属性值2 。。。。 %>
    分类:
        1.page :配置jsp页面
            contenType,等同于response.setContenType()
                1.设置响应体mime类型及字符集
                2.设置jsp页面的编码,(IDE开发工具才能生效,记事本等低级工具需要设置pageEncoding属性设置当前页面的字符集)

            import:导包
            errorPage:当前页面发生异常后,会自动跳转到指定的错误页面
            isErrorPage:标识当前的页面是否是错误页面
                *值为true,是错误页面,可以使用exception内置对象,
                *值为false,不是错误页面,不允许使用exceotion
        2.include:页面包含的,导入页面的资源文件
        3.taglib:导入资源

注释
    html注释 <!-- -->,只能注释html代码片段
    jsp注释 <%-- --%> 可以注释jsp页面中所有的内容

MVC开发模式:
    M:model模型
        作用:业务逻辑操作,如查询数据库、封装对象等
    V:view视图
        作用:视图展示,展示数据
    C:controller控制器
        作用:视图和模型的中间层,获取客户端输入,调用模型,将数据交给视图展示

<%--
  Created by IntelliJ IDEA.
  User: xiaoqiang
  Date: 2021/8/17
  Time: 16:19
  To change this template use File | Settings | File Templates.
--%>
<%-- page :配置jsp页面
            contenType,等同于response.setContenType()
                1.设置响应体mime类型及字符集
                2.设置jsp页面的编码,(IDE开发工具才能生效,记事本等低级工具需要设置pageEncoding属性设置当前页面的字符集)--%>
<%@ page contentType="text/html;charset=UTF-8" errorPage="error.jsp"  language="java" %>
<%-- import导包--%>
<%@ page import="java.util.ArrayList" %>
<%-- 引入其他页面,导入页面的资源文件--%>
<%@ include file="include.jsp"%>

<%--taglib:导入资源 例如导入c标签--%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
  <head>
    <title>jsp示例</title>
  </head>
  <body>
      <p>你好啊!</p>
      <%!
        /* 类成员 */
        String str="我是一个jsp页面!!!";
        public String getStr(){
          return str;
        }
        ArrayList<String> list = new ArrayList<String>();
      %>

      <%
        /*service 方法*/
        String str = this.getStr();
        System.out.println(str);
      %>

      <%=
      /*service 页面输出*/
        str
      %>
    <br />
      <%= "我是jsp页面哈" %>


        <% pageContext.setAttribute("","");%>

  </body>
</html>

    mvc优缺点:
        优:降低耦合,利于分工合作,方便维护,重用性高
        缺:项目架构变得相对复杂

Logo

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

更多推荐