zoukankan      html  css  js  c++  java
  • jsp笔记

    Jsp
        Web服务器访问jsp的过程.
    如果是第一次访问jsp文件,web服务器会把jsp翻译成一个servlet文件.再将其编译成一个.class文件.然后加载到内存.蓝色的地方也是为什么java的空间要贵一些.
        Jsp的运行原理
     
    
    
    
    
    
    
    
        Jsp的语法
     
     
    1.指定元素:用于从jsp发送一个信息到容器,比如设置全局变量,文字编码,引入包.
        <%@ page contentType=”text/html;charset=utf-8”%> 
     <%@ include file=’文件的路径’%> 这个是引入其它的jsp文件main.jsp 注意:这里的路径不要加 / 
    <%@ mytag:xx 属性/>
    
    2. 脚本元素:可以理解为java片段
    <% java片段  %>
    <%=表达式 %>
    <%! Int i=90; %>  这里的i 是成员变量.  在这里还可以使用方法,
    例: <%! Public int getInt(){ int i=90;  return i;} %>
    
    3. 动作元素
    <jsp:forword file=””>的作用
    在开发jsp的过程,我们通常把jsp放在WEB-INF目录下,为了防止用户直接访问jsp文件.在webRoot下我们有一个入口页面,它的主要功能是转发:
    <jsp:forword file=”WEB-INF/xx.jsp”></jsp>
    <jsp:include file=””></jsp>: 动态引入
    <%@ include file=””%>  静态引入
    相同点:把一个文件引入到另外一个文件.
    区别: 静态引入 把两个jsp翻译成一个servlet文件,所以被引入的文件,不能包括<html><body>
    动态引入: 分别把两个jsp文件翻译成servlet文件,可以包括<html><body>
     
    Jsp的注释<%--     %-->
    
        Jsp中的九大内置对象 
    pageContext也是一个域对象.也可以用setAttribute(),getAttribute().但是它的生命周期只是在本页面有用.
    
    
     
     
    
     
    Web开发的几个模式:web-service
    Web-service-dao (data access object)
    这两个模式其实就是mvc模式
    
    
    
    
    通过看书的jsp的内容
    可以在WEB.xml统一默认的网页编码、,内容、缓冲大小等。
    <web-app>
        <jsp-config>
            <jsp-property-group>
                <url-pattern>*.jsp<url-pattern>
                <page-encoding>utf-8</page-encoding>
                <default-content-type>tect/type</default-contenet-type>    
                <buffer>16kb</buffer>    
    <jsp-property-group>
    
    </jsp-config>
    </web-app>
    也可以声明指定的jsp的开头和结尾包括的网页
    <web-app>
        <jsp-config>
            <jsp-property-group>
                <url-pattern>*.jsp</url-pattern>
                <include-prelude>/WEB-INF/jspf/pre.jsp</include-prelude>
                <include-coda>/WEB-INF/jspf/coda.jspf</include-coda>
             </jsp-property-group>
    </jsp-config>
    </web-app>
    
    如果想禁用JSP上的Scriptlet则可以在web.xml中设置 
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <scripting-invalid>true</scripting-invalid>
        </jsp-property-group>
    </jsp-config>
    
    可以通过pageContext来设置四种范围属性。
    例如:要设置一个session的属性
    pageContext.setAttribute(“width”,”50px”,pageContext.SESSION_SCOPE);
    返回
    String  width=
    pageContext.getAttribte(“width”,pageContext.SESSION_SCOPE);
    这个pageContext.SESSION_SCOPE 可以是request  page   application
    用SESSION交换一下就可以了。
    如果使用getAttribte()不知道是什么范围属性时,可以用
    String width = pageContext.findAttribute(“width”);
    
    想要做一个error.jsp的界面.必须要<%@  isErrorPage=”true”%>
    
    这样的error.jsp才可能使用exception隐式对象。才能获取错误界面抛出的错误信息。
    把错误信息打印出来 
    Exception.printStackTrace(new PrintWriter(out));
    
    
    Jsp书的内容
    一些标签
    <jsp:useBean id=”” class=”” scope=”” type=””></jsp:useBean>
    引用一个类
    例:<jsp:useBean id="user" class="cc.openhome.User">
    id是cc.openhome.User这个包.类的一个实例
    class是指包.类
    scope 是指范围 有session request application page(默认)
    type 要转换的接口 如 ServletRequest转换到HttpServletRequest
    type要写上HttpServletRequest  
    <jsp:setProperty property="name" value="domain" name="user"/>
    <jsp:setProperty property="password" value="123" name="user"/>
    这个是设置User中的属性
    <jsp:getProperty property="name" name="user"/>
    这个是返回User中的属性
    
    <jsp:setProperty name="beanName" property="*" />
    其中name表示JavaBean的名字,对应useBean标签中的id属性;property为星号,表示不用再具体指定JavaBean属性的值将对应表单中的那个参数,系统会自动根据名字进行匹配.但要求表单参数的名字必须与JavaBean中属性的名字完全相同.
    3.通过request的参数值设置
    语法格式:
       <jsp:setProperty name="beanName" property="propertyName" param="paramName" />
    其中name表示JavaBean的名字,对应useBean标签中的id属性;property表示要给哪个属性设置值;param表示表单中的参数名字.此种格式通过request获得表单中的参数值,JSP引擎自动将request获取的参数值传递给JavaBean中对应的属性.但要求request参数名字必须与JavaBean中的属性名字一致.
    如:使用JavaBean验证客户身份
    
    如果是scope = session 或 要用request传递的
    <jsp:setProperty><jsp:useBrean>的中间和不在中间 是不一样的
    中间:是假如user==null的才会加入到request    user!=null不会
    不在中间:user==null !=null都会加入到request
    
    <jsp:param>与<jsp:include>配合使用
    includeAction.jsp
    <body>
        <%double i = Math.random();%>
        <jsp:include page="come.jsp">//加载come.jsp
        <jsp:param name="number" value="<%=i%>" />//传递参数
    </jsp:include>
    </body>
    可以在come.jsp中取出来
    
    come.jsp
    <%//获得includeAction.jsp传来的值:
        String str = request.getParameter("number");
    double n = Double.parseDouble(str);
    <jsp:param>与<jsp:forward>配合使用
    跟上面是一样的,也是传递参数
    Jsp
        Web服务器访问jsp的过程.
    如果是第一次访问jsp文件,web服务器会把jsp翻译成一个servlet文件.再将其编译成一个.class文件.然后加载到内存.蓝色的地方也是为什么java的空间要贵一些.
        Jsp的运行原理
     
    
    
    
    
    
    
    
        Jsp的语法
     
     
    1.指定元素:用于从jsp发送一个信息到容器,比如设置全局变量,文字编码,引入包.
        <%@ page contentType=”text/html;charset=utf-8”%> 
     <%@ include file=’文件的路径’%> 这个是引入其它的jsp文件main.jsp 注意:这里的路径不要加 / 
    <%@ mytag:xx 属性/>
    
    2. 脚本元素:可以理解为java片段
    <% java片段  %>
    <%=表达式 %>
    <%! Int i=90; %>  这里的i 是成员变量.  在这里还可以使用方法,
    例: <%! Public int getInt(){ int i=90;  return i;} %>
    
    3. 动作元素
    <jsp:forword file=””>的作用
    在开发jsp的过程,我们通常把jsp放在WEB-INF目录下,为了防止用户直接访问jsp文件.在webRoot下我们有一个入口页面,它的主要功能是转发:
    <jsp:forword file=”WEB-INF/xx.jsp”></jsp>
    <jsp:include file=””></jsp>: 动态引入
    <%@ include file=””%>  静态引入
    相同点:把一个文件引入到另外一个文件.
    区别: 静态引入 把两个jsp翻译成一个servlet文件,所以被引入的文件,不能包括<html><body>
    动态引入: 分别把两个jsp文件翻译成servlet文件,可以包括<html><body>
     
    Jsp的注释<%--     %-->
    
        Jsp中的九大内置对象 
    pageContext也是一个域对象.也可以用setAttribute(),getAttribute().但是它的生命周期只是在本页面有用.
    
    
     
     
    
     
    Web开发的几个模式:web-service
    Web-service-dao (data access object)
    这两个模式其实就是mvc模式
    
    
    
    
    通过看书的jsp的内容
    可以在WEB.xml统一默认的网页编码、,内容、缓冲大小等。
    <web-app>
        <jsp-config>
            <jsp-property-group>
                <url-pattern>*.jsp<url-pattern>
                <page-encoding>utf-8</page-encoding>
                <default-content-type>tect/type</default-contenet-type>    
                <buffer>16kb</buffer>    
    <jsp-property-group>
    
    </jsp-config>
    </web-app>
    也可以声明指定的jsp的开头和结尾包括的网页
    <web-app>
        <jsp-config>
            <jsp-property-group>
                <url-pattern>*.jsp</url-pattern>
                <include-prelude>/WEB-INF/jspf/pre.jsp</include-prelude>
                <include-coda>/WEB-INF/jspf/coda.jspf</include-coda>
             </jsp-property-group>
    </jsp-config>
    </web-app>
    
    如果想禁用JSP上的Scriptlet则可以在web.xml中设置 
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <scripting-invalid>true</scripting-invalid>
        </jsp-property-group>
    </jsp-config>
    
    可以通过pageContext来设置四种范围属性。
    例如:要设置一个session的属性
    pageContext.setAttribute(“width”,”50px”,pageContext.SESSION_SCOPE);
    返回
    String  width=
    pageContext.getAttribte(“width”,pageContext.SESSION_SCOPE);
    这个pageContext.SESSION_SCOPE 可以是request  page   application
    用SESSION交换一下就可以了。
    如果使用getAttribte()不知道是什么范围属性时,可以用
    String width = pageContext.findAttribute(“width”);
    
    想要做一个error.jsp的界面.必须要<%@  isErrorPage=”true”%>
    
    这样的error.jsp才可能使用exception隐式对象。才能获取错误界面抛出的错误信息。
    把错误信息打印出来 
    Exception.printStackTrace(new PrintWriter(out));
    
    
    Jsp书的内容
    一些标签
    <jsp:useBean id=”” class=”” scope=”” type=””></jsp:useBean>
    引用一个类
    例:<jsp:useBean id="user" class="cc.openhome.User">
    id是cc.openhome.User这个包.类的一个实例
    class是指包.类
    scope 是指范围 有session request application page(默认)
    type 要转换的接口 如 ServletRequest转换到HttpServletRequest
    type要写上HttpServletRequest  
    <jsp:setProperty property="name" value="domain" name="user"/>
    <jsp:setProperty property="password" value="123" name="user"/>
    这个是设置User中的属性
    <jsp:getProperty property="name" name="user"/>
    这个是返回User中的属性
    
    <jsp:setProperty name="beanName" property="*" />
    其中name表示JavaBean的名字,对应useBean标签中的id属性;property为星号,表示不用再具体指定JavaBean属性的值将对应表单中的那个参数,系统会自动根据名字进行匹配.但要求表单参数的名字必须与JavaBean中属性的名字完全相同.
    3.通过request的参数值设置
    语法格式:
       <jsp:setProperty name="beanName" property="propertyName" param="paramName" />
    其中name表示JavaBean的名字,对应useBean标签中的id属性;property表示要给哪个属性设置值;param表示表单中的参数名字.此种格式通过request获得表单中的参数值,JSP引擎自动将request获取的参数值传递给JavaBean中对应的属性.但要求request参数名字必须与JavaBean中的属性名字一致.
    如:使用JavaBean验证客户身份
    
    如果是scope = session 或 要用request传递的
    <jsp:setProperty><jsp:useBrean>的中间和不在中间 是不一样的
    中间:是假如user==null的才会加入到request    user!=null不会
    不在中间:user==null !=null都会加入到request
    
    <jsp:param>与<jsp:include>配合使用
    includeAction.jsp
    <body>
        <%double i = Math.random();%>
        <jsp:include page="come.jsp">//加载come.jsp
        <jsp:param name="number" value="<%=i%>" />//传递参数
    </jsp:include>
    </body>
    可以在come.jsp中取出来
    
    come.jsp
    <%//获得includeAction.jsp传来的值:
        String str = request.getParameter("number");
    double n = Double.parseDouble(str);
    <jsp:param>与<jsp:forward>配合使用
    跟上面是一样的,也是传递参数

  • 相关阅读:
    Unix&Linux下常见的性能分析工具介绍
    理解Load Average做好压力测试
    cron 的配置和说明
    原生js模仿下拉刷新功能
    webpack初步了解
    数组的迭代方法
    webpack4
    反思面向对象
    C和lua的互相调用
    对Zookeeper的一些分析
  • 原文地址:https://www.cnblogs.com/shaoshao/p/3380397.html
Copyright © 2011-2022 走看看