美文网首页Java
javaWeb_JSP 知识总结-markdown

javaWeb_JSP 知识总结-markdown

作者: Re_一晌贪欢 | 来源:发表于2019-12-14 21:13 被阅读0次

    javaWeb_JSP

    一、简介

    全称: java server pages(java服务器页面);

    jsp必须运行在服务器中,不能直接使用浏览器打开;

    Jsp其本质就是一个Servle,Servle能做的事情JSP都能做。

    Jsp能够以HTML页面的方式呈现数据,是一个可以嵌入Java代码的HTML。(jsp = html + java);

    (Servlet主要负责处理业务,从表面上看,Servlet相当于在java中嵌入html代码:Servlet=java+html)

    二、JSP工作原理

    1、第一次访问jsp页面时,服务器会将xxx.jsp文件翻译成xxx_jsp.java文件,再编译成xxx_jsp.class文件。

    2、以后在访问同一个jsp文件

    如果文件未改变,不会被翻译和编译

    如果文件改变,会翻译和编译

    注意事项:1.jsp页面是一个类似于html的一个页面,jsp直接存放到WebContent目录下,和html一样访问jsp的时候,也和访问html一样

    2.jsp的默认编码集是iso-8859-1,修改jsp的默认编码为UTF-8;

    三、Jsp基本语法(6个)

    1、 指令

    格式:<%@ 指令名    属性=属性值    属性2=属性值2%>

    2、 模板元素(<u>html&css&js</u>...)

    3、 脚本片段

    格式:<%    %>作用:在_jspService()方法中,书写java代码。

    4、 表达式

    格式:<%=  %>作用:将数据显示到页面中,类似PrintWrite的writer()的功能。注:PrintWriter与JspWriter都继承java.io.Writer,属于兄弟关系,同时出现时PrintWriter的内容始终先显示。

    5、 声明

    格式:<%!  %> 作用:在翻译后的类中,书写java代码。(如果声明变量则是成员变量)

    6、 注释

    java中的单行注释和多行注册html注释:<!-- -->jsp注释:<%-- --%>

    四、Jsp中常用指令

    1、page指令

    格式:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF8"%>属性:language:jsp支持语言,有且仅有java。contentType:与response.setContentType()作用一致pageEncoding:设置当前jsp页面的字符集import:导包isErrorPage:设置当前页面是否为错误页面,默认值"false"。errorPage:设置当前页面错误时的跳转目标页面。错误需要在_jspService()中才可以捕获。

    2、include指令:静态包含

    格式:<%@include file="被包含文件的路径" %>作用:将目标文件包含到当前文件中特点:被包含的文件不会被翻译&编译。(先包含,再翻译)

    3、taglib(标签库)指令---引入标签库(jstl的使用)

    <%@taglibprefix="c"uri=""http://java.sun.com/jsp/jstl/core""%>

    属性:prefix ----指定前缀名,通过该名来使用jstl;

      uri-----相当于库的唯一标识,因为JSTL由多个不同的库组成,使用该属性指定要导入哪个库;

    作用:引入标签库

    五、Jsp中常用动作标签

    1、转发

    语法:<jsp:forward><jsp:forword>

    实例

    <jsp:forwardpage="target.jsp"></jsp:forward>

    作用:在页面中进行转发操作

    转发子标签

    语法::<jsp:param value="paramValue" name="paramName"/>

    作用 :在转发时设置请求参数,通过request.getParameter()在目标页面获取请求参数。

    <jsp:forwardpage="target.jsp">

    <jsp:paramvalue="paramValue"name="paramName"/>

    </jsp:forward>

    注意:如果转发动作标签不需要设置请求参数,该标签开始与结束标签内部,不允许书写任何内容,(包括空格)

    2、动态包含

    语法:<jsp:include page="target.jsp"> 作用:将目标文件包含到当前文件中。特点:被包含的文件同时会被翻译&编译。(先翻译,再包含)

    3.jsp动态包含和静态包含的区别

    静态包含------>@include 指令动态包含------>jsp:include标签

    语法<%@ include file="taret.jsp"%><jsp:include  page="target">

    包含动作发生时机翻译期间请求期间

    是否生成.java文件不生成生成

    合并方式代码复制(多个jsp中相同代码抽取到一个文件中)合并运行结果

    适用范围适用包含纯静态内容(CSS,HTML,JS),或没有非常耗时操作;或大量java代码的jsp。包含需要传递参数。含有大量java代码,运算,耗时很长的操作。

    六、Jsp九大隐含对象(内置对象|隐式对象

    注:九大内置对象,都是我们可以在【代码脚本】中或【表达式脚本】中直接使用的对象。

    概述: JSP隐式对象是JSP容器为每个JSP页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。

    1、pageContext(页面域)

    类型:java.servlet.jsp.PageContext定义:代表整个jsp页面作用:①页面域对象          ②九大隐式对象的“大哥”,可以直接调用其他八个隐式对象。在servlet中的获取方式:无

    2、request(请求域)

    类型:HttpServletRequest定义:代表浏览器向服务器发送的请求报文作用:    1.获取请求参数    2.获取URL信息    3.获取请求头信息    4.转发请求(地址栏不变)    5.域对象在servlet中的获取方式:在doGet()/doPost()中直接调用

    3、session(会话域)

    类型:HttpSession定义:代表浏览器与服务器之间的会话作用域:当前会话有效(关闭浏览器结束当前会话)在servlet中的获取方式:request.getSession();

    4、application(web域)

    类型:javax.servlet.ServletContext定义:意思是Servlet上下文,代表当前web应用。作用:  1.获取当前项目的虚拟路径;  2.获取虚拟路径所映射的真实路径;  3.获取当前上下文的初始化参数;  4.域对象;在servlet中的获取方式:this.getServletContext();

    5、page

    类型:Object作用:this

    6、response

    类型:HttpServletResponse定义:代表服务器向浏览器发送的响应报文作用:1.获取响应流(writer),响应数据到浏览器页面;2.设置响应头;3.重定向;在servlet中的获取方式:在doGet()或doPost()中直接使用

    7、config

    类型:javax.servlet.ServletConfig 定义:代表当前Servlet配置信息作用:1.获取当前Servlet的名称;2.获取当前Servlet初始化参数3.获取ServletContext对象在servlet中的获取方式:this.getServletConfig();

    8、out

    类型:javax.servlet.jsp.JspWriter作用:与Servlet中的PrintWriter类似,向页面响应数据。在servlet中的获取方式:无

    9、exception

    类型:java.lang.Throwable作用:处理异常

    七、Jsp四大域对象

    1、作用: 程序中的域对象,在一定范围内共享数据。

    2、四大域对象

    2.1  pageContext:页面域对象作用域:当前页面效,超出当前页面失效。 2.2  request:请求域对象作用域:当前请求中效,超出当前请求失效。

    注:当前请求不包含重定向和超链接

    2.3  session:会话域对象(与浏览器有关,与服务器无关) 作用域:当前会话效,超出当前会话失效。 2.4  application: web域对象  作用域:当前web应用中效,关闭或卸载web应用失效。

    3、 域对象的共同方法

    每个域对象内部都维护了一个Map<String , Object>设置属性到域中:void setAttribute(String key , Object value);从域中获取指定的属性:Object  getAttribute(String key);移除域中指定属性:void removeAttribute(String key);注:使用域对象的心得:能用小域就不用大域。

    4、四大域对象作用域总结

    域对象作用域范围起始时间结束时间

    pageContext当前jsp页面页面加载关闭页面无

    request同一个请求收到请求(转发、点击链接请求)响应请求通过doget();dopost直接使用

    session同一个会话开始会话(主要跟浏览器有关)结束会话request.getSession();

    application当前Web应用web应用卸载web应用卸载this.getServletContext();

    相关文章

      网友评论

        本文标题:javaWeb_JSP 知识总结-markdown

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