• JSP技术


    一.jsp脚本和注释

    • jsp脚本:

      1)  <%java 代码%>----------内部的java代码翻译到service 方法的内部

      2)  <%=java变量或表达式%>-------会被翻译成service方法内部的out.print()

      3)  <%java 代码%>会被翻译成servlet的成员的内容

    • jsp注释:

      1)  Html注释:  <!--注释内容-->

      2)  java注释:  //单行注释 /*多行注释*/ 

      3)  jsp注释:  <%--注释内容--%>

     1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     3   <modelVersion>4.0.0</modelVersion>
     4   <groupId>com.werner</groupId>
     5   <artifactId>jsp2</artifactId>
     6   <packaging>war</packaging>
     7   <version>1.0-SNAPSHOT</version>
     8   <name>jsp2 Maven Webapp</name>
     9   <url>http://maven.apache.org</url>
    10   <dependencies>
    11     <dependency>
    12       <groupId>junit</groupId>
    13       <artifactId>junit</artifactId>
    14       <version>3.8.1</version>
    15       <scope>test</scope>
    16     </dependency>
    17     <dependency>
    18       <groupId>javax.servlet.jsp</groupId>
    19       <artifactId>javax.servlet.jsp-api</artifactId>
    20       <version>2.3.1</version>
    21       <scope>provided</scope>
    22     </dependency>
    23     <dependency>
    24       <groupId>javax.servlet</groupId>
    25       <artifactId>javax.servlet-api</artifactId>
    26       <version>3.1.0</version>
    27       <scope>provided</scope>
    28     </dependency>
    29     <!-- https://mvnrepository.com/artifact/javax.el/javax.el-api -->
    30     <dependency>
    31       <groupId>javax.el</groupId>
    32       <artifactId>javax.el-api</artifactId>
    33       <version>3.0.0</version>
    34     </dependency>
    35     <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
    36     <dependency>
    37       <groupId>javax.servlet.jsp.jstl</groupId>
    38       <artifactId>jstl</artifactId>
    39       <version>1.2</version>
    40     </dependency>
    41     <!-- https://mvnrepository.com/artifact/taglibs/standard -->
    42     <dependency>
    43       <groupId>taglibs</groupId>
    44       <artifactId>standard</artifactId>
    45       <version>1.1.2</version>
    46     </dependency>
    47   </dependencies>
    48   <build>
    49     <finalName>jsp2</finalName>
    50   </build>
    51 </project>
    <%@page language="java" contentType="text/html;UTF-8" pageEncoding="UTF-8" %>
    <%@page import="java.util.*" %>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    xxxxxxxxx
    <!--html的注释-->
    <%----%> jsp注释
    <% int i=0;
    System.out.println(i);

    %>
    <%=i %>
    <%=1+1 %>
    <%!
    String str ="nihao CHIAN";
    %>
    <%=str%>
    </body>
    </html>

    ``````````````````````````````````````````````````````````````````````````````````````````````````````````


    xxxxxxxxx jsp注释 0 2 nihao CHIAN


    • jsp运行原理-------jsp本质就是servlet

      JSP在第一次被访问时会被WEB容器翻译成servlet,在执行过程:

      第一次访问----->hellosServlet.java---->helloServlet_jsp.servlet----->编译运行PS

    :被翻译后的servlet在Tomcat 的work目录中可以找到

    • jap指令(3个)

      jsp的指令是指导jsp翻译和运行的命令,jsp包括三大指令:

      1)page指令

      属性最多的一个指令,根据不同的属性,指导整个jsp页面

      <%@ page 属性名1="属性值1"  属性名2="属性值2">

      常见属性如下:

      language 语言:jsp嵌入的语言

      pageEncoding 表示jsp文件的本身编码

      contentType:responese.setContentType(UTF-8) 文本类型

      import:导包

      errorPage:

      

     1 <%@page language="java" contentType="text/html;UTF-8" pageEncoding="UTF-8"  errorPage="error.jsp" %>
     2 
     3 <html>
     4 <head>
     5     <meta http-equiv="content-type" content="text/html;charset=UTF-8">
     6     <title>Insert title here</title>
     7 </head>
     8 <body>
     9 <%
    10     int y =1/0;
    11 %>
    12 </body>
    13 </html>
    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2017/9/9
      Time: 21:02
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h1>error_page!!!!,你的代码有问题</h1>
    </body>
    </html>
    ---------------------------------------------------------------
    浏览器返回:

    error_page!!!!,你的代码有问题

      session:是否jsp在翻译时自动创建session,默认为true.

      2)include 指令

      页面包含(静态包含)指令,可以将一个jsp页面包含到另一个jsp页面中

      格式:   <%@ include file="被包含的文件地址">

      例如:<%@ include file="test.jsp">

      3)taglib指令

      格式:  <%@ taglib uri="标签库地址" pretix ="前缀">

      在jsp页面中引入标签库

    • jsp的九大隐式对象

      out:

     1 <%--
     2   Created by IntelliJ IDEA.
     3   User: Administrator
     4   Date: 2017/9/9
     5   Time: 21:40
     6   To change this template use File | Settings | File Templates.
     7 --%>
     8 <%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
     9 <html>
    10 <head>
    11     <meta http-equiv="content-type" content="text/html;charset=UTF-8">
    12     <title>Title</title>
    13 </head>
    14 <body>
    15     ddddddddddd
    16 <% out.write("aaaaaaaaaaaaaaaa");
    17 response.getWriter().write("ccccccccccccc");
    18 %>
    19 <%= "ffffffffffffffff" %>
    20 
    21 
    22 </body>
    23 </html>
    -----------------------------------------------------------------------------------------------------
    浏览器运行结果:
    http://localhost:8080/out.jsp
    ccccccccccccc ddddddddddd aaaaaaaaaaaaaaaa ffffffffffffffff
    • pageContext域

       

    <%--
      Created by IntelliJ IDEA.
      User: Administrator
      Date: 2017/9/10
      Time: 10:27
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    
    </head>
    <body>
    <%
    //使用pageContext向request域存数据
        request.setAttribute("name","zhangsan");
        pageContext.setAttribute("name","maliu");
        pageContext.setAttribute("name","lisi",PageContext.REQUEST_SCOPE);
        pageContext.setAttribute("name","wangwu",PageContext.SESSION_SCOPE);
        pageContext.setAttribute("name","zhaosan",PageContext.APPLICATION_SCOPE);
    %>
    <%= request.getAttribute("name")%>
    <%= pageContext.getAttribute("name",PageContext.REQUEST_SCOPE)%>
    <%--findAttribute会从小到大搜索域的范围中的name--%>
    <%--page域<request域<session域<application域--%>
    <%=pageContext.findAttribute("name")%>
    </body>
    </html>

     

     四大作用域的总结:

        page域:  当前jsp页面范围

        request域:  一次请求

        session域:  一次会话

        application域:  整个web应用

    • include
     1 <%--
     2   Created by IntelliJ IDEA.
     3   User: Administrator
     4   Date: 2017/9/10
     5   Time: 11:06
     6   To change this template use File | Settings | File Templates.
     7 --%>
     8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     9 <html>
    10 <head>
    11     <meta http-equiv="content-type" content="text/html" charset="UTF-8">
    12     <title>Title</title>
    13 </head>
    14 <body>
    15     <h1>This is include1 page</h1>
    16 <%--包含include2--%>
    17 <jsp:include page="/include2.jsp"></jsp:include>
    18 
    19 </body>
    20 </html>
     1 <%--
     2   Created by IntelliJ IDEA.
     3   User: Administrator
     4   Date: 2017/9/10
     5   Time: 11:26
     6   To change this template use File | Settings | File Templates.
     7 --%>
     8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     9 <html>
    10 <head>
    11     <meta http-equiv="content-type" content="text/html" charset="UTF-8">
    12     <title>Title</title>
    13 </head>
    14 <body>
    15 <h1>This is include2 page</h1>
    16 </body>
    17 </html>

    --------------------------------------------------------------------------------
    浏览器执行结果:http://localhost:8080/include.jsp

    This is include1 page

    This is include2 page

       转发forward

     1 <%--
     2   Created by IntelliJ IDEA.
     3   User: Administrator
     4   Date: 2017/9/10
     5   Time: 11:47
     6   To change this template use File | Settings | File Templates.
     7 --%>
     8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     9 <html>
    10 <head>
    11     <meta http-equiv="content-type" content="text/html" charset="UTF-8">
    12     <title>forward转发</title>
    13 </head>
    14 <body>
    15 <jsp:forward page="forward2.jsp"></jsp:forward>
    16 </body>
    17 </html>
     1 <%--
     2   Created by IntelliJ IDEA.
     3   User: Administrator
     4   Date: 2017/9/10
     5   Time: 11:48
     6   To change this template use File | Settings | File Templates.
     7 --%>
     8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     9 <html>
    10 <head>
    11     <meta http-equiv="content-type" content="text/html" charset="UTF-8">
    12     <title>Title2</title>
    13 </head>
    14 <body>
    15     <h1>good good studey ,day day up!</h1>
    16 </body>
    17 </html>
    ------------------------------------------------------------------------------------------
    浏览器运行结果:http://localhost:8080/forward1.jsp

    good good studey ,day day up!

      

  • 相关阅读:
    idea控制台乱码- tomcat-解决方案
    MySQL-事务面试题
    【实验4】函数和数组
    【实验3】C语言分支语句和循环语句编程应用
    【实验二】C语言表达式编程应用及输入输出函数
    【实验1】(任务四:测试你对非己因素的依赖程度)
    Python操作SQL
    SQL简单记录
    GUI编程 SMTP发送邮件实体化窗口
    Python GUI编程封装代码为exe应用窗口
  • 原文地址:https://www.cnblogs.com/1218-mzc/p/7498765.html
Copyright © 2020-2023  润新知