美文网首页
JSP知识点

JSP知识点

作者: kangyiii | 来源:发表于2018-08-01 09:02 被阅读0次

一.jsp概述

JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP实际上就是Servlet。

三个概念
  1. html:静态内容
  2. servlet:服务器端的小应用程序,处理Java逻辑代码。主要作用是:
    (1)获取表单数据
    (2)处理业务逻辑
    (3)分发转向
  3. jsp:编写输出动态内容,但不适合编写java逻辑。

通俗易懂:jsp = html + java

思考:

  • IE浏览器访问jsp页面时,Web服务器是如何调用并执行一个jsp页面的?


    image.png
  • Web服务器在执行jsp页面时,是如何把jsp页面中的html排版标签发送到客户端的?


    jsp界面代码
    服务器自动生成的代码
  • jsp页面中的java代码,服务器是如何执行的?
    在执行 JSP 网页时,通常可分为两个时期:转译时期(Translation Time)和请求时期(Request Time)
    转译时期:JSP网页转译成Servlet类。
    请求时期:Servlet类执行后,响应结果至客户端。

转译期间主要做了两件事情:

将JSP网页转译为 Servlet 源代码(.java);
将Servlet源代码(.java)编译成 Servlet 类(.class)。

  • web服务器在调用jsp时,会给jsp提供一些什么java对象


    tomcat源码

jsp基本语法

  1. jsp的脚本
    小脚本 <% java 代码 %>
    表达式 <%=2+3> 等价于 out.print(2+3)
    声明 <%! 代码 %> 表示在类中定义全局成员和静态块。

  2. 注释
    jsp注释: <%-- 注释文字 --%> 不会返回到浏览器中
    html注释:有的浏览器会返回到浏览器中

  3. jsp 3个指令

  • page 指令
1.1、 import 和java代码中的import是一样的
<%@ page import="java.util.Date,java.util.List"%>
或者:
<%@ page import="java.util.Date"%>
<%@ page import="java.util.List"%>
JSP会自动导入以下的包:
import java.lang.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
1.2、 session: 是否会自动创建session对象。默认值是true;
1.3、 buffer: JSP中有javax.servlet.jsp.JspWriter输出字符流。设置。输出数据的缓存大小,默认是8kb.
1.4 errorPage: 如果页面中有错误,则跳转到指定的资源。
errorPage="/uri" 如果写“/”则代表当前应用的目录下,绝对路径。
如果不写“/”则代表相对路径。
    1.5、 isErrorPage: 是否创建throwable对象。默认是false;
1.6、 contextType: 等同于response.setContextType("text/html;charset=utf-8");
1.7、 pageEncoding: 告诉JSP引擎要翻译的文件使用的编码。
1.8、 isELIgnored: 是否支持EL表达式。 默认是false

<%@ page  pageEncoding="gbk" %>
  • Include 指令
静态包含:把其它资源包含到当前页面中。
<%@ include file="/include/header.jsp" %>
动态包含:
<jsp:include page="/include/header.jsp"></jsp:include>

两者的区别:翻译的时间段不同
前者:在翻译时就把两个文件合并
后者:不会合并文件,当代码执行到include时,才包含另一个文件的内容。

原则:能用静的就不用动的。
  • taglib 指令
作用:在JSP页面中导入JSTL标签库。替换jsp中的java代码片段。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
  1. jsp 6个动作
    <%
        Student stu = new Student();
        stu.setName("tom");
        
        out.print(stu.getName());
        
        //request.getRequestDispatcher("/7.jsp").forward(request, response);
        
        
     %>
     
     <jsp:useBean id="stu1" class="com.ky.entity.Student"></jsp:useBean>
     <jsp:setProperty property="name" name="stu1" value="jerry"/>
     <jsp:getProperty property="name" name="stu1"/>
     
     <!-- http://localhost:8080/day11_02_jsp2/6.jsp?name=123 -->
     <jsp:forward page="/7.jsp">
        <jsp:param value="123" name="name"/>
        <jsp:param value="333" name="pwd"/>
     </jsp:forward>
  1. jsp 9个内置对象


    9个内置对象
<body>
    <%
        //pageContext.setAttribute("p", "pp");
        pageContext.setAttribute("p", "pp", PageContext.PAGE_SCOPE);
        
        //pageContext.setAttribute("p", "pp", PageContext.REQUEST_SCOPE);
        request.setAttribute("p", "request");
        
        //pageContext.setAttribute("p", "pp", PageContext.SESSION_SCOPE);
        //session.setAttribute("p", "session");
        
        //pageContext.setAttribute("p", "pp", PageContext.APPLICATION_SCOPE);
        application.setAttribute("p", "application");
        
        //request.getRequestDispatcher("/2.jsp").forward(request, response);
        //response.sendRedirect(request.getContextPath()+"/2.jsp");
        pageContext.forward("/2.jsp");
     %>
</body>

作用与范围: pageContext<request<session<application

使用规则:

  • PageContext : pageConext 存放的数据在当前页面有效。开发时使用较少。
  • ServletRequest: request 存放的数据在一次请求(转发)内有效。使用非常多。
  • HttpSession: session 存放的数据在一次会话中有效。使用的比较多。如:存放用户的登录信息,购物车功能。
  • ServletContext: application 存放的数据在整个应用范围内都有效。因为范围太大,应尽量少用。

EL表达式

<%
  Student stu = (Student)request.getAttribute("s");
        //out.print(stu.getName());
%>
     
     ${s.city.address } <!-- ${s}==pageContext.findAttribute("s") -->
image.png

相关文章

  • java 面试

    一、javaWeb知识点: jsp和servlet的区别 jsp本质就是Servlet,jsp的工作原理是:JSP...

  • 2018-07-19

    jsp的内置对象 内置对象以及四中作用域 jsp内置对象简介 jsp作用域简介:核心知识点 request内置对象...

  • J2EE——之JSP篇

    本篇知识点 静态网页与动态网页 JSP工作原理及具体学习 了解了servlet,接下来进入学习jsp,jsp其实就...

  • JSP知识点

    一.jsp概述 JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种...

  • JAVA攻城狮培养计划之从网页搭建入门Java Web

    重要知识点 前端基础:HTML、CSS、JavaScript Java web 基础 :JSP、Servlet、J...

  • JSP必备知识点

    servlet VS CGI 1)servlet 可移植 跨平台 CGI 不行2)在传统 CGI 中每个请求都要启...

  • Web2

    WEB阶段课程主要知识点:1.Tomcat 服务器 掌握 安装 配置 各个目录的含义 修改端口2.JSP ...

  • 后端知识点总结——NODE.JS基础

    后端知识点总结——NODE.JS基础 1.Node.js JSP = HTML+JAVA 功能强大可靠,适合大型企...

  • java基础-day43-JSP

    JSP 1. JSP 1.1 JSP概述 1.2 为什么要用JSP 1.3 JSP语法 1.3.1 JSP语法格式...

  • jsp学习 EL JSTL C标签

    JSP 第一个JSP程序 JSP对比servlet JSP中java脚本元素 JSP原理 JSP的翻译规则 JSP...

网友评论

      本文标题:JSP知识点

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