Java面试复习(四)

六、JSP
    1.jsp三大指令
        Page常用属性:
            ①import:<%@page import="java.text…"%>
            ②session:取值为truefalse,表示当前页面session是否可以
            ③errorpage:指定出错响应页面<%@ page errorPage="/error.jsp"%>
            ④isErrorPage:指定当前页面是否为错误处理页面,可以说明当前页面是否可以使用exception隐藏对象变量。一般不能直接访问该页面,放在WEB-INF下。
                注:WEB-INF下面资源需要转发才可以访问。
            ⑤contentType:指定当前jsp页面的响应类型,实际调用的是response.setContentType("text/html;charset=UTF-8");通常为text/html。

        Include指令:
            动态include: 
                        <jsp: include page="included.jsp"/> 
                        特点:在编译的jsp中只存在一个.java文件
            静态include: 
                        <%@ include file="included.jsp"%>
                        特点:会编译为两个.jsp文件
            两者优缺点:
                1. 静态include的结果是把其他jsp引入当前jsp,两者合为一体,可以达到数据的共享即可以说是统一编译的,而
                动态include的结构是两者独立的,直到输出时才合并即为分别编译的.
                2.动态include的jsp文件独立性很强,是一个单独的jsp文件,需要使用的对象,页面设置,都由自己创建,而静态include纯粹是把代码写在外面的一种共享方法,所有的变量都是可以和include它的主文件共享,两者高度紧密结合,不能有变量同名的冲突.而页面设置也可以借用主文件的.
                3.动态包含总是检查被包含页面的变化,静态包含不一定检查被包含页面的变化.
                4.动态包含可带参数,静态包含不能带参数.如(<jsp: include page="included.jsp">放入参数</jsp:include>);
        taglib指令:
            引入标签,如JSTL、shiro等标签在JSP页面使用.

    2.jsp九个隐藏对象
        out:向客户端输出数据,字节流,如:out.print("out");
        request:接收客户端的http请求
        response:响应客户端请求
        session:保存会话信息
        application:全局变量
        page:当前页面
        exception:运行异常
        pagecontext:
        config:

    3.jsp七大动作
        include:动态包含
        useBean:JSP页面使用javaBean <jsp:useBean id="对象名" class="包名.类名" scope="作用范围(request/page/application/session)"/>
        getProperty:获取javaBean的属性 <jsp:getProperty name="javaBean对象" property="javaBean对象属性名" />
        setproperty:为对象设置属性值 <jsp:setProperty name="javaBean对象" property="javaBean对象属性名"/>
        param:设置参数
        forward:转向
        plugin:插件

    4.转发与重定向
        转发:request.getRequestDispatcher("welcome.jsp").forward(request,response);
            特点:浏览器地址不改变,属于同一request请求。可以访问WEB-INF下资源。
        重定向:response.sendRedirect("welcome.jsp")
            特点:浏览器地址改变,向服务器发送两个请求。注意在使用request.setAttribute()时的作用域。

    5.jsp与servlet的区别
        1).jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)
        2).jsp更擅长于页面显示,servlet更擅长于逻辑控制。
        3).Servlet中没有内置对象,jsp中有9个内置对象。
    6.servelt的生命周期
        创建servlet实列-->初始化参数-->调用servlet中service方法处理客户段请求-->销毁,调用destroy()方法指定哪些可以被系统GC处理。
    7.EL表达式
        使用方法:
                ${empty a} 如果a为null则为true
                ${pageScope/requestScope/sessionScope/…}
    8.JSTL
        <c:set var="变量名"  value="值" scope="作用域">
        <c:set target="对象名" property="对象属性" value="属性值">
        <c:out value="值" default="默认值" escapeXml="false"> escapeXml属性为是否转义,默认转义
        <c:remove var="属性名" scope="作用域">

        <c:if test="条件" var="储存判断结果true/false" scope="作用域">
            主体内容
        </c:if>

        <c:choose >
            <c:when test="条件">
            </c:when>
            <c:otherwise>
            </c:otherwise>
        </c:choose>

        <c:forEach items="集合名" var="当前成员" begin="起始位置默认0" end="结束位置" step="步长">
            主体内容
        </c:forEach>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值