• jsp--入门


    JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1]  是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

    JSP的特点:

      1)JSP的运行必须交给tomcat服务器。

      2)JSP页面既可以写html代码,也可以写java代码。

    JSP的执行过程:

      1)浏览器访问xxx.jsp页面,tomcat扫描到xxx.jsp文件,在%tomcat%/work把jsp文件翻译成java源文件。

      2)tomcat服务器把jsp的java源文件翻译成class字节码文件。

      3)tomcat服务器构造jsp类的对象。

      4)tomcat服务器调用jsp类里的方法,返回内容显示到浏览器中。

      注意:

        1)第一次访问jsp的时候执行以上四个步骤,第n次访问的时候只执行(4)。

        2)如果jsp文件修改或者jsp的临时文件被删除了,当访问jsp页面的时候,会重新走以上4个步骤。

        3)jsp翻译之后的类就是一个servlet类,可以通过翻译的java源文件查看。

    JSP的语法:

      1)JSP模板:jsp页面中的html代码,使用eclipse创建jsp页面的时候带有html语句,代码如下

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10 
    11 </body>
    12 </html>

      2)jsp表达式

        语法:<%=变量或者表达式%>

        作用:向浏览器输出变量的值或者表达式计算后的结果。

        注意:

          1)表达式的原理就是翻译成out.print("变量"),通过该方法向浏览器中写写内容。

          2)表达式后面不需要用分号结束。

      3)jsp脚本

        语法:<%java代码%>

        作用:执行java代码

        注意:原理是把脚本中的java代码原封不动的copy到_jspService方法中执行。

      4)jsp声明

        语法:<%! 变量或者方法%>

        作用:声明jsp的变量或者方法。

        注意:变量汇翻译成成员变量,方法翻译成成员方法。

      5)jsp注释:

        语法:<%-- jsp注释 --%>

        作用:注释jsp代码。

        注意:html代码的注释会被tomcat翻译到jsp的java源文件中,jsp的注释不能被翻译和执行。

    JSP三大指令

      1)page指令  

     1 <%@ page language="java" 
     2     contentType="text/html; charset=UTF-8"
     3     pageEncoding="UTF-8"
     4     import="java.util.*"
     5     errorpage="error.jsp"
     6     isErrorPage="false"
     7     buffer="8kb"
     8     session="true"
     9     isELIgnored="false"
    10     
    11     %>

      解释:language --告诉服务器使用什么动态语言来翻译jsp文件。

         contentType --服务器发送到浏览器的数据类型和内容编码格式。

         pageEncoding --告诉服务器使用什么编码格式来翻译jsp文件。

         import -- 告诉服务器java文件使用什么包即导入包;多个包之间用逗号分隔。

         errorpag --设置jsp页面发生错误时,跳转的页面。

         isErrorPage -- 值有true和false两个。true标识翻译成java文件是有exception对象,false没有。

         buffer -- 设置页面中out输出对象的缓冲区大小,默认为8kb,建议使用8的倍数。 

         isELIgnored --值有true和false两个,设置页面是否忽略EL表达式。

      为了方便起见,可以配置全局的errorPage,配置方法为在web.xml文件中配置一下参数:

      <!-- 全局错误处理页面配置 -->
      <error-page>
          <error-code>500</error-code>
          <location>/common/500.jsp</location>
      </error-page>
      <error-page>
          <error-code>404</error-code>
          <location>/common/404.html</location>
      </error-page>

      2)include指令:静态包含

    1 <%@include file="common/header.jsp"%>

      作用:在当前jsp页面中包含其他页面。

      注意:原理是把被包含的页面的内容翻译到包含页面中,合并翻译成一个java源文件,在编译运行。使用静态包含,被包含页面中不需要出现全局的html标签(html、head和body)。

      3)taglib指令:导入标签库

    <%@ taglib uri="文件位置" prefix="前缀名称" %>

        作用:导入jsp的标签库。

    JSP内置对象

      由sun公司设计在jsp中,在jsp页面加载完毕之后就会自动创建好这些对象。避免开发者每次用到的时候都创建。这样的对象叫做内置对象。

      1)jsp中的9大内置对象

        内置对象名    类型                

        request    HttpServletRequest

        response    HttpServletResponse

        config       ServletConfig

        application   ServletContext

        session    HttpSession

        exception    Throwable

        page      Object(this)

        out      JspWriter

        pageContext  PageContext ----可以通过pageContext对象获得其余的8大内置对象

      2)四个域对象

        pageContext --作用域是当前jsp页面 (当前页面)

        request  --作用域是同一个请求 (转发)

        session  --作用域是同一个会话 (私有的)

        application  --作用域是同一个web应用 (全局的)

      注意:每个域对象都有设置获取和删除属性的三个方法。

      

  • 相关阅读:
    【get√】发现一个redis zset的新玩法:用ZINTERSTORE把value都置0
    【记录一个问题】golang神坑,明明返回了接口指针类型的nil值,却无法用if判断
    【记录一个问题】神坑,自定义一个golang的error类型,居然运行崩溃了
    【解决了一个小问题】golang protocol buffers 3中去掉json标签中的omitempty
    【转载】select case break引发的血案
    【记录一个问题】redis中执行事务出现错误“EXECABORT Transaction discarded because of previous errors”
    【get√】golang中实现从腾讯云CVM查询网卡流量的两种方法
    【get√】golang新手理解了一点点context
    【get√】golang新手理解了一点点gin框架的中间件
    1066. 图像过滤(15)
  • 原文地址:https://www.cnblogs.com/nicker/p/6601018.html
Copyright © 2020-2023  润新知