javaweb中jsp知识点剖析

jsp知识点剖析

javaWEB 微笑

   一  JSP

        JavaScript代码

            注释

                隐式注释
                    // 单行注释
                    /* */ 多行注释
                    <%-- 注释 --%>
                显示注释
                    <!-- 注释 -->
        java代码
            <% %> 局部变量、编写语句 等价于<jsp:script></jsp:script>
            <%! %> 全局变量,方法,类
            <%= %> 输出一个变量或一个具体的常量
        page指令
            生成session <%@ page session="true|false"%>
            声明属性 <%@page 属性="内容"%>
            页面编码
                 <%page language="java" contentType="text/html;charset=utf-8"%>
                <%@page contentType="text/html" pageEncoding="utf-8"%>    
            错误页
                跳转错误页:<%@page erroePage="erro.jsp"%>
                错误页认证: <%page isErrorPage="true" %>
        包含
            静态包含 (先包含后处理):  <%@include file="要包含的文件路径"%>
            动态包含(先处理后包含) <jsp:include>
        跳转指令
            客户端跳转
                a链接 <a href="#" />
                重定向
                    rsponse.setStatus(302);  rsponse.setHeader("Location","hello.jsp");
                    response.setHeader("refresh","2;URL=hello.jsp");
                    response.sendRedirect("hello.jsp");
            服务端跳转
                请求转发  RequestDispatcher rd=request.getRequestDispatcher("/IServlet").forward(request,response);
                请求包含 request.getRequestDispatcher("/IServlet").include(request,response);
                跳转指令<jsp:forward>
    JSP九大内置对象
        对象
            pageContext
            request
            response
            session
            application
            config
            out
            page
            exception
            常用法法
                public void setAttribute(String name,Object)
                public void getAttribute(String name)
                public void removeAttribute(String name)
        常用对象及其方法
            request
                public String getParameter(String name)
                public String[] getParameterValues(String name)
                public Enumeration getParameterNames()
                public String getServletPath()
                public getContextPath()
                public Httpsession getSession()
                public Cookie[] getCookies()
                public String getRemoteAddr()
                void setCharacterEncoding(String env) throws UnsupportedEncodingException
                public boolean isUserInRole(String role)
                public StringBuffer getRequestURL()
                public Enumeration getHeaderNames()
                public String getMethod()
            response
                public void addCookie(Cookie cookie)
                public void setHeader(String name,String value)
                public void sendRedirect(String location) throws IOException
            Cookie
                public Cookie(String name,String value)
                public String getNames()
                public String getValue()
                public void setMaxAge(int expiry)
            session
                public String getId()
                public long getCreationTime()
                public long getLastAccessedTime()
                public boolean isNew()
                public void invalidate()
                public Enumeration getAttributeNames()
            pageContext
                public abstract void forward(String relativeUrlPath) throws ServletException,IOException
                public void include(String relativeUrlPath) throws ServletException,IOException
                public ServletConfig getServletConfig()
                public ServletContext getServletContext()
                public ServletRequest getRequest()
                ublic ServletResponse getResponse()
                public HttpSession getSession()
            application
                String getRealPath(String path)
                public Enumeration getAttributeNames()
                public String getContextPath()
            config
                public String getInitParameter(String name)
                public Enumeration getInitParameterNames()
            out
                public int getBufferSize()
                public int getRemaining()
    javaBean
        作用
        称呼(三种)
            POJO(Plain ordinary Java Objects):简单的Java对象
            VO(Value Object)用于传递值
            TO(Transfeers Object)传输对象,远程传输需实现Serializable接口
        指令
            实例化Bean:  <jsp:usebean id="实例化对象名称" scope="保存范围" class="包.类名称" />
                JavaBean
                    包.类
                    类声明public class
                    封装属性private
                    提供setter、getter
                    至少一个无参构造方法
                javaBean范围
                    page
                    request
                    session
                    application
            设置属性
                自动匹配 <jsp:setproperty name="实例化对象的名称(id)" property="*" />
                指定属性 <jsp:setProperty name="实例化对象的名称(id)" property="属性名称" />
                指定参数 <jsp:setProperty name="实例化对象得名称(id)" property="属性名称" param="参数名称" />
                指定内容 <jsp:setProperty name="实例化对象的名称(id)" property="属性名称" value="内容">
            取得属性
                <jsp:getProperty name="实例化对象的名称(id)" property="属性名称" />
            javaBean的删除
                删除page的JavaBean
                    pageContext.removeAttribute(JavaBean名称)
                删除request的JavaBean
                    request.removeAttribute(JavaBean名称)
                删除session的JavaBean
                    session.removeAttribute(JavaBean名称)
                删除application的JavaBean
                    application.removeAttribute(JavaBean名称)
    表达式语言(Expression Language)
        使用 ${属性名称}
        内置对象
            11个内置对象
                pageContext
                pageScope
                requestScope
                sessionScope
                applicationScope
                param
                paramValues
                header
                headerValues
                cookie
                initParam
            内置对象的操作
                参考JSP的内置对象的方法
                参考网页:https://blog.csdn.net/hon_3y/article/details/54890071
        访问4种属性范围的内容
            查找顺序:page->request->session->application
            ${pageScope.属性}
            ${requestScope.属性}
            ${sessionScope.属性}
            ${applicationScope.属性}
        数据操作
            接收请求参数
                ${param.参数名称}
                接收一组参数 ${paramValues.参数名称}
            集合操作
                List和Set操作
                Map操作
            运算符
                算术运算符
                    +  如${20+30}
                    -  如${30-20}
                    *  如${20*30}
                    /或div  如 ${30 div 20}
                    %或mod  如${30 mod 30}
                关系运算符
                    ==或eq  ${30 eq 20}
                    !=或ne  如${30 ne 20}
                    <或lt  如${20 lt 30}
                    >或gt  如${30 gt 20}
                    <=或le  如${20 le 30}
                    >=或ge  如${30 ge 20}
                逻辑运算符
                    &&或and  如${true && true}
                    ||或or  如${true  || false}
                    !或not  如${!true}
                其他运算符
                    empty  如${empty info}
                    ?:  如${10>20?"大于":"小于"}
                    ()  如${10*(20+30)}
    JSTL(JSP Standard Tag Library)
        准备工作
            导入WEBINF/lib
                jstl.jar
                standard.jar
            jsp头部引入JSTL指令
                 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
        JSTL核心库
            <c:out>
            <c:set>
            <c:remove>
            <c:catch>
            <c:if>
            <c:choose>、<c:when>、<c:otherwise>
            <c:forEach>
            <c:forTokens>
            <c:import
            <c:url>
            <c:redirect>
        国际化标签库
            国际化标签库
                <fmt:setLocale>
                <fmt:requestEncoding>
            信息显示库
                <fmt:bundle>
                <fmt:message>
                <fmt:setbundle>
            数字及日期格式化
                <fmt:formartNumber>
                <fmt:parseNumber>
                <fmt:formartDate>
                <fmt:parseDate>
                <fmt:setTimeZone>
                <fmt:timeZone>
        SQL标签库
            数据源标签
                <sql:setDataSource>
            数据库操作标签
                <sql:query>
                <sql:update>
            事务处理标签

                <sql:transaction>


上面本来是这几天整理的思维导图,粘贴过来格式全米了,将就着看吧!

微笑值得注意的是jsp实质上是一个servlet,我们在tomcat目录下work目录中可以看到编译后的jsp是一个.class文件,这也说明了

jsp也存在一个对象,那就是this代表的servlet实例对象,通过this我们可以干servlet可以干的事,如获取虚拟路径下的真实路径,可以这样

<%

String path = this.getServletContext(.getRealPath("/")); 

//注意这里的ServletContetx其实就是当前环境,就是web容器,通过web容器我们可以得到真实路径

%>

关于真实路径和虚拟路径,我们可以在tomcat的web.xml文件中看到

<Context path="虚拟路径" docBase="真实路径" />,

虚拟路径就是我们敲在浏览器地址栏上的,而真实路径就是存在我们本地硬盘上的地址.

猜你喜欢

转载自blog.csdn.net/LonelyStar125/article/details/80091399