美文网首页
JavaWeb基础之JSP

JavaWeb基础之JSP

作者: 在error边缘疯狂试探 | 来源:发表于2020-04-11 06:26 被阅读0次

什么是JSP?

  • Java Server Page:java服务器页面,也和servlet一样用于开发动态web技术。
  • 和HTML的区别:HTML只提供静态的数据,JSP可以嵌入Java代码,为用户提供动态数据。

JSP原理

  • 浏览器向服务器发送请求,不论访问什么资源,其实都是在访问Servlet!
    • JSP在编译过后,最终还是变成了java类,JSP本质上就是Servlet,那个java类中就继承了HttpServlet!
  • JSP编译后的java类中有一些方法和内置对象(只有访问了页面才会产生对应的class文件)
    //jsp中存在的一些方法
    public void _jspinit(){
    }
    public void _jspDestory(){
    }
    //JSP服务,每次走servlet时都会执行这个方法,JSP写的所有的内容都在这个方法内
    public void _jspService(HttpServletRequest request,HttpServletResponse response) {
    }
    
    //Jsp中存在的一些内置对象,俗称jsp 9大内置对象
    final javax.servlet.jsp.PageContext pageContext ;      //页面上下文
    javax.servlet.http.HttpSession session =null;          //session
    final javax.servlet.ServletContext application;        //applicationContext,本质就是之前学的ServletContext
    final javax.servlet.ServletConfig config;              //config
    javax.servlet.jsp.JspWriter out =null;                 //out
    final java.lang.Object page=this;                     //当前页
    HttpServletRequest request;                          //请求
    HttpServletResponse response;                        // 响应
     javax.lang.Throwable  exception ;                    //异常
    

Tips:以上的9大对象可以直接在JSP中使用。

  • 在JSP中写的内容 (产生的java文件中会显示如下):
    • 如果写的是java代码,就会原封不动的输出。
    • 如果写的是HTML代码,则会转换为out.write("<h1>test</h1>\n")

JSP导入的依赖

<dependency>
        <!--Servlet 依赖-->
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
<dependency>
<!--    jsp的依赖-->
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
<!--    jstl表达式的依赖-->
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl-api</artifactId>
            <version>1.2</version>
        </dependency>
   <dependency>
<!--    standard标签库-->
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

JSP基础语法

  • JSP中利用<% java代码 %>符号写java代码
  • JSP的注释不会显示在客户端,HTML的注释会显示

JSP指令

  • 可以在web.xml文件中配置500错误页面,404页面等
     <error-page>
      <error-code>404</error-code>
      <location>/errorPage/404.jsp</location><!--这里最前面必须加' / '-->
    </error-page>
    
       <error-page>
      <error-code>500</error-code>
      <location>/errorPage/500.jsp</location><!--这里最前面必须加' / '-->
    </error-page>
    
  • 也可以在jsp文件中头部使用<%@ page errorPage="errorPage/500.jsp" %>
  • 提取公共页面可以用<jsp:include page="/common/header.jsp"/>

内置对象

  • 存储数据的区别:
<%
    pageContext.setAttribute("1","1");//保存的数据只在当前页有效
    request.setAttribute("3","3");//保存的数据在一次请求中有效,请求转发会携带这个数据(URL不会变)
    session.setAttribute("2","2");//保存的数据在一次会话中有效,从浏览器打开,到关闭
    application.setAttribute("4","4");//保存的数据在服务器中有效,从打开服务器到关闭服务器
    pageContext.getAttribute("1");//获得保存的数据
%>

Tips:JVM双亲委派机制,当某个类加载器需要加载某个.class文件时,它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类。

  • 双亲委派机制的作用:
    • 1、防止重复加载同一个.class。通过委托去向上面问一问,加载过了,就不用再加载一遍。保证数据安全。
    • 2、保证核心.class不能被篡改。通过委托方式,不会去篡改核心.class,即使篡改也不会去加载,即使加载也不会是同一个.class对象了。不同的加载器加载同一个.class也不是同一个Class对象。这样保证了Class执行安全(比如,自己创建一个包为java.lang.String,里面写一些方法,结果java根本就不会执行这个类)。

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

  • EL表达式:${ }
    • 获取参数
    • 执行运算
    • 获得web开发常用对象(很少用)
  • JSP标签:
<%--jsp实现转发,并且携带参数--%>
<jsp:forward page="/jsptag2.jsp">
<jsp:param name="name" value="cwx">
</jsp:forward>
  • JSTL表达式
    JSTL标签库的使用就是为了弥补HTML标签的不足,它自定义了许多标签,科供我们使用,标签的功能和java代码一样。
    • 核心标签(常用)

使用前先引入头文件<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

jstl.png

MVC三层架构

  • Model层:实体类(pojo)创建数据、管理数据,和数据库交互。
  • View层:视图层,JSP展示数据,提供操作的请求。
  • Controller层:控制层,Servlet接受用户的请求,实现业务的逻辑方法,响应给客户端内容。

相关文章

  • JavaWeb基础之JSP

    什么是JSP? Java Server Page:java服务器页面,也和servlet一样用于开发动态web技术...

  • JavaWeb基础之JSP进阶

    1.九大内置对象 在一篇中我们知道tomcat服务器翻译成了java源文件,每次说jsp文件时都会调用_jspSe...

  • JavaWeb基础之JSP初探

    JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态we...

  • JavaWeb基础之JSP标签

    标签的作用是用来替换jsp脚本,将脚本封装在类里面。 1.内置标签 也称动作标签,不需要在jsp页面导入,分为转发...

  • JavaWeb基础——JSP

    JSP全名是JAVA Server Pages,根本上是一个简化的Servlet设计。在传统的网页HTML文件中插...

  • 12-撩课JavaEE-Response

    学习地址:撩课-JavaWeb系列1之基础语法-前端基础撩课-JavaWeb系列2之XML撩课-JavaWeb系列...

  • 05-码蚁JavaWeb之Tomcat插件安装

    学习地址:撩课-JavaWeb系列1之基础语法-前端基础撩课-JavaWeb系列2之XML撩课-JavaWeb系列...

  • 06-码蚁JavaWeb之Servlet

    学习地址:撩课-JavaWeb系列1之基础语法-前端基础撩课-JavaWeb系列2之XML撩课-JavaWeb系列...

  • 03-码蚁JavaWeb之Tomcat服务器

    学习地址:撩课-JavaWeb系列1之基础语法-前端基础撩课-JavaWeb系列2之XML撩课-JavaWeb系列...

  • 04-码蚁JavaWeb之Tomcat体统结构

    学习地址:撩课-JavaWeb系列1之基础语法-前端基础撩课-JavaWeb系列2之XML撩课-JavaWeb系列...

网友评论

      本文标题:JavaWeb基础之JSP

      本文链接:https://www.haomeiwen.com/subject/wwzsmhtx.html