zoukankan      html  css  js  c++  java
  • JSP本质及语法

    jsp引入

    用户在访问服务器时,服务器的servlet小程序会通过response对象返回给用户相应的信息,如下中servlet

    package com.controler;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    public class TestServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //返回  响应类型
            response.setContentType("text/html;charset=utf-8");
            //返回  具体内容
            PrintWriter out = response.getWriter();
            out.write("<html>");
            out.write("<head>");
            out.write("</head>");
            out.write("<body>");
            out.write("welcome");
            out.write("</body>");
            out.write("</html>");
        } 
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
    }

    out.write就是服务器返回给用户的内容,网页代码会被浏览器解析

    2,JSP本质就是servlet

    1,当用户发起一个*.jsp的请求时,jspServlet(存在tomcat文件夹下web.xml)会得到请求 

    2,jspServlet会根据访问的*.jsp文件如index.jsp生成一个index_jsp.java文件,随后此文件被JVM编译成class文件。

    在tomcat下找到项目文件夹,然后一步步找会找到index_jsp.java文件,其中的代码会包含如下代码

          out.write("
    ");
          out.write("<!DOCTYPE html>
    ");
          out.write("<html>
    ");
          out.write("<head>
    ");
          out.write("<meta charset="ISO-8859-1">
    ");
          out.write("<title>Insert title here</title>
    ");
          out.write("</head>
    ");
          out.write("<body>
    ");
          out.write("<form action="login" method="post">
    ");
          out.write("<input type="text" name="empno"><br>
    ");
          out.write("<input type="submit" value="提交">
    ");
          out.write("</form>
    ");
          out.write("</body>
    ");
          out.write("</html>");    

    会发现此代码正如上面servlet中的代码

    3,运行的index_class文件正如一个servlet小程序,并将之发送个用户

    也就是说整个jsp文件访问的过程就是jsp文件被jspServlet编译成一个servlet小程序,并将访问的相关内容发送给用户

    3,JSP中的各种语法

    1,jsp中的脚本语法(本质就是在HTML中写java代码)

    1)注释

    <!--HTML注释,此注释会在原码中显示 -->
    <%--JSP注释,此注释的内容不会被jspServlet编译成servlet代码 --%>

    2,脚本段

    <%
    //在脚本段中写的代码,会生成在_jspService方法中,也就是说写在此中的变量为局部变量
    //注意,不能在脚本段中定义方法,因为java语法中 方法不能定义方法
    int a = 10;
    %>

    3,JSP声明

    <%!
    //在jsp申明中,会生成在类体中,也就是说写在此中的变量为全局变量,同时也可以在此中定义方法
    %>

    4,JSP表达式

    <%-- 本质就是将表达式和变量等输出在页面中 下例中a为变量,add()为方法--%>
    <%=a %>
    <%=add(11,22)%> 

    2,JSP编译器指令

    语法格式为<%@ 指令名称 %>

    1,page指令

    contentType属性,设置响应类型    <%@ page contentType="utf-8"%>

    pageEncoding属性,设置响应字符集   <%@ page pageEncoding="true"%>

    import属性,用于导包      <%@ page import="java.util.Date"%>

    session属性,设置是否创建session对象   <%@ page session="true"%>

    errorPage属性,当访问的页面出现错误是,会自动跳转到制定页面    <%@ page errorPage="error.jsp"%>

    如在脚本段中写 int a = 5/0;  由于除数不能为零,那么在访问该页面内容时会自动跳转至error.jsp中

    isELIgnored指令,设置是否会忽略EL表达式<%@ page isELIgnored="false"%>

    2,include指令

    file属性,<%@ include file="include.jsp" %> 相当于把include中的jsp文件复制到当前页面

    注意:引入的include页面中的变量不要和此页面中的变量相同

    3,taglib指令

    3,动作语法

    用于在jsp中消灭java代码

    4,九大内置对象

    4+2+3,4大作用域+2个输出+3个酱油

    1,4大作用域

    pageContext

    request

    session

    application

  • 相关阅读:
    发卡构型高分子的跨膜传输
    《一个数学家的叹息》读后
    匀速拉地毯最少需要多大的力
    桥环形高分子的标度理论——链滴图像
    试验1
    自定义控件EditText
    自定义控件TextView
    HTTP的应用httpclient 和线程
    http的应用httpurlconnection--------1
    学习笔记—Fragement +Actionbar
  • 原文地址:https://www.cnblogs.com/hunt1coder/p/11006219.html
Copyright © 2011-2022 走看看