jsp由浅入深开发必备

时间:2021-03-24 17:09:30
jsp由浅入深开发必备

author:lxy

学习整理笔记仅供回顾知识


jsp由浅入深开发必备


jsp简介:
1、jsp = html + java。
2、jsp原理:
        jsp就是Servlet,容器会把jsp翻译成Servlet,并编译Servlet源码,执行Servlet。
3、编程中的分工:
        Servlet作为控制器来用
        jsp显示数据
        两种一般各自明确分工是良好的编码风格

jsp的基本语法
1、jsp的模板元素,jsp中用html标签来输出排版
2、jsp脚本表达式:把内容输出到页面,<%=表达式%>  对应Servlet中out.print()
        jsp脚本片段:jsp中实现java逻辑代码,<%语句%>        对应方法中的语句,
        jsp声明:定义一些成员变量,<%!定义变量%> 对应全局区变量
        jsp注释:注释的内容不会被翻译为Servlet语句,<%--注释--%>
        
jsp的指令
1、作用:
        是为jsp引擎(服务器)而设计,指示服务器如何处理jsp页面中的内容
2、有哪些指令:
        page:定义jsp页面中的各种属性
        taglib:引入外部标签库(uri:外部空间的名称空间,prefix:前缀)
        include:页面包含(静/动)
        语法:<%@指令名 指令属性="指令值"... %>

jsp的动作元素
1、动作元素即内置标签
2、几个内置标签
        <jsp:include >动态包含
        <jsp:forward >请求转发
        
jsp的九大隐式对象||对应的Servlet
1、request (HttpServletRequest)
2、response (HttpServletRequest)
3、session (HttpSession)
4、application (ServletContext)
5、config (servletConfig)
6、page (Servlet)
7、exception (Throwable)
8、out (JspWriter)
9、pageContext (PageContext)

pageContext对象详解
1、本身是一个域对象,还可以操作ServletContext、ServletRequest、HttpSession

2、pageContext是一个页面域对象,

<%pageContext.setAttribute("p","pp",PageContext.REQUEST_SCOPE)%>

        <%pageContext.setAttribute(KEY,VALUE,SCOPE)%>        

SCOPE取值: P AGE/REQUEST/SESSION/APPLICATION


3、Object findAttribute(String key);//依次从页面、请求、会话、应用范围获取值(从小到大找)

4、Request getRequest();//获取其他八个隐式对象
5、提供转发和包含功能
        pageContext.forward("/1.jsp");
        pageContext.include("/1.jsp");

四大域对象
在不同的资源之间传递数据
1、PageContext(页面)
2、ServletRequest(一次请求)
3、HttpSession(一次会话)
4、ServletContext(应用级)

EL表达式
1、主要作用:
        向页面输出数据,替换jsp(<%=...%>)中的java代码,
2、语法就像写html标签一样
        ${EL表达式} 

3、EL从四大域对象获取数据
        运算符:点运算符和中括号运算符,就是调用对象的getter方法

4、原理:通过四大域对象获取到java类对象,然后调用get方法获得数据,最后通过out隐式对象的Writer方法写到页面。

5、empty运算符,判断一个对象是否为null,字符串是否为"",集合数组中是否有元素。

十一个隐式对象||类型除了pageContext外别的都是map型的
1、pageContext(pageContext)
2、pageScope
3、requestScope
3、sessionScope
4、applicationScope
5、param
6、paramValues
7、header
8、headerValues
9、initParam
10、cookie

自定义EL函数
1、定义一个public的类,提供静态的实现方法。
2、在web-info下建立一个扩展名为tld的xml文件,在文件中
        在文件中定义EL函数的短名称,绑定空间名,定义函数。
3、在web.xml中把tld和名称空间绑定起来
4、在jsp页面中通过taglib的指令标签引入命名空间,页面中使用自动以EL函数
        使用自动以EL函数进行防止表单重复提交的实现。(对此稍后具体做个简单实现说明)

javabean概念
1、什么才是合格的JavaBean:
        类必须是public的,
        有无参数构造,
        字段都是私有,
        提供公有的gette、setter
        一般需要实现序列化接口
2、jsp中操作JavaBean的动作元素
        <jsp:useBean id="" class="" scope=""/>
        原理:先在指定的范围中查找id指定名称的JavaBean,如果没有找到,就实例化一个并放到域中。

        <jsp:getProperty property="" name=""/>
        <jsp:setProperty property="" name="" value=""/>
        property:属性名称(get去掉首字母小写)
        name:id指定的对象
        value:赋给的值
        
自定义标签
1、标签的作用:
        替换jsp中的java脚本<%%>

2、自定义标签开发步骤
        a、直接或间接实现SimpleTag接口,一般继承SmpleTagSupport,
        b、重写doTage,传入当前页面PageContext对象,容器在调用此方法之前已经调用过setJspContext
        c、在web-info目录下建立tld
        d、jsp页面中调用标签
标签的生命周期,每次访问都会重新实例化。





来自群组: Java用户组