Java JSP 详细说明 --- 内置对象及语法格式

  1. jsp 和 servlet 的关系

    1.jsp是对servlet的一种高级封装,jsp的本质还是servlet
    2.jsp文件在容器中会被转成servlet,然后在执行
    3.与servlet相比,jsp可以很方便的修改HTML网页,而不用去面对大量的printfln语句。
     
  2. jsp的实现原理

    1.Tomcat将会把xxx.jsp 转换为xxx.java 代码,然后编译成 xxx.class 然后运行,最后把运行的结果通过response响应发送给客户端
     
  3. jsp和HTML的集成开发

    1.语法一:<% Java代码 %>
     
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
      <head>
        <title>jsp</title>
      </head>
      <body>
      <%
        //jsp中可以编写Java代码
        //1.jsp 界面的输出
        out.println("out.println:hello world!");
        //2.在命令行的输出
        System.out.println("System.out.println:hello world");
        //3.jsp 输出日期
        out.println(new Date());
      %>
      </body>
    </html>
    2.语法二:<%! 定义变量、函数等%>
     
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <%!
            /* 声明变量和函数*/
            int a = 10;
            public void test1(){
                System.out.println("我是test1");
            }
            public int add(int a,int b){
                return a + b;
            }
        %>
        <%
            out.println(add(10,20));
            test1();
        %>
    </body>
    </html>

    3.语法三:<%=Java表达式%>  在页面上输出Java表达式的结果

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <%!
            int a = 10;
    
            public int add(int a,int b){
                return a+b;
            }
        %>
        <%=a%> 
        <%=add(a,20)%>
    </body>
    </html>
  4. jsp的注释和html注释

    1.注释一:<%-- 注释 --%>  jsp注释   注释内容不会被发送到浏览器,甚至不会被编译。
    2.注释二:<!-- 注释 -->  html注释  通过浏览器查看源代码的时候可以看到注释的内容。
     
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>jsp基础教程</title>
    </head>
    <body>
    <h3>注释</h3>
    <%-- jsp 的注释 不会输出到编译的html --%>
    <!-- 使用html式 注释可以写入到生成的html中 -->
    
    </body> 
    </html> 
  5. jsp指令

    1.<%@page ....%>:定义页面的依赖属性,比如脚本语言,error页面,缓存需求等!
     
    <%@ page contentType="text/html;charset=UTF-8" language="java"  errorPage="error.jsp" %>
    2.<%@ include ...%>:包含其他文件。
     
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ include file="header.jsp"%>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <h2>middle</h2>
    </body>
    </html>
    <%@ include file="footer.jsp"%>
    3.<%@ taglib ...%>:引入标签库的定义,可以是自定义标签。
     
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  6. page指令 ---- 语法:<%@ page attribute1="value1" attribute2="value2"... %>  page指令提供当前页面的使用说明,一个jsp页面可以包含多个page指令。

    1.属性一:contentType  指定当前jsp页面的MIME类型和字符编码格式。
    2.属性二:errorPage     指定当前jsp页面发生异常的时候,转向的页面。
    3.属性三:isErrorPage  指定当前页面是否可以当作另一个jsp页面的错误处理页面
    4.属性四:import           导入要使用的Java类
    5.属性五:language      定义jsp页面使用的脚本语言,默认是Java
    6.属性六:session        指定当前jsp页面是否使用session,默认是true 立即创建,false是使用的时候创建。
    7.属性七:pageEncoding 指定jsp页面的解码格式。
     
    <%@page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8"
        errorPage="error.jsp" isErrorPage="true" session="true" import="" %>


     
  7. useBean
    语法:
    1. useBean:创建一个对象:
       id:创建的对象的名字。  class:User类的所在的包的路径
    <%--创建一个对象--%>
    <jsp:useBean id="user" class="com.dl.code.entity.User"></jsp:useBean>

    2.setProperty:给对象的属性赋值
       name:这个属性是必须的,他表示是为哪一个对象的属性赋值
       property:这个属性是必须的,他表示要为对象的哪一个属性赋值。
       value:是可以选择的。给属性是用来指定Bean属性的内容。

    <%--给user对象的属性赋值--%>
    <jsp:setProperty name="user" property="name" value="代先生"/>
    <jsp:setProperty name="user" property="password" value="123456"/>

    3.setProperty:获取对象的属性。并在jsp页面输出。
       name:对象的名字。
       property:对象属性的名字。

    <%--获取对象属性的值--%>
    <jsp:getProperty name="user" property="name"/>
    <jsp:getProperty name="user" property="password"/>

    4.打印的方法

    <%--打印方法一--%>
    <jsp:getProperty name="user" property="name"/>
    <jsp:getProperty name="user" property="password"/>
    
    <%--打印方法二--%>
    <%= user.getName()%>
    <%= user.getPassword()%>
  8. forward
      语法:<%jsp:forwrad page="url路径" %>
      作用:把请求转到指定的页面

    <%--将请求转到error.jsp页面--%>
    <jsp:forward page="error.jsp"></jsp:forward>

    page属性:相对的url路径

  9. param
      语法:<jsp:param name="" value=""/>
      作用:在转发动作的内部使用,作为参数进行传递。

        <%--将请求转到test.jsp页面--%>
        <jsp:forward page="test.jsp">
            <jsp:param name="name" value="DL"/>
        </jsp:forward>

      获取数据:

     <%= request.getParameter("name")%>

    提示:进行上述操作的时候,注意编码格式。否则会出现乱码。

  10. jsp的内置对象

    1.pageContext    --- javax.servlet.jsp.PageContext
    2.request            --- javax.servlet.http.HttpServletRequest
    3.response         --- javax.servlet.http.HttpServletResponse
    4.session            --- javax.servlet.http.HttpSession
    5.application       ---   javax.servlet.ServletContext

    6.config              ---  javax.servlet.ServletConfig
    7.exception        ---  java.lang.Throwable
    8.out                  ---  javax.servlet.jsp.JspWriter

  11. jsp四大作用对象

    1.pageContext :当前jsp页面范围
    2.request          :一次请求有效
    3.session          :一次会话有效,浏览器关闭后,就失效
    4.application     :整个web应用有效  服务器重启或者关闭,失效。

  12. pageContext的方法

    1.setAttribute("name",value):存储值   仅在当前页面作用域有效
    2.getAttribute("name"):获取值
    3.还可以用于获取其他八个内置对象

        <%-- 存一个值 --%>
        <%pageContext.setAttribute("name","代先生");%>
        <%-- 获取存的值 --%>
        <%= pageContext.getAttribute("name")%>
         <%-- 获取其他的jsp内置对象 列举四个为例 --%>
         <%
            ServletRequest request1 = pageContext.getRequest();
            ServletResponse response1 = pageContext.getResponse();
            Exception exception = pageContext.getException();
            HttpSession session1 = pageContext.getSession();
         %>

猜你喜欢

转载自blog.csdn.net/weixin_45634682/article/details/112479780