JSP基础

作者: 寞离i | 来源:发表于2019-10-25 19:40 被阅读0次

    1.JSP注释
    1./........./ Java代码注释,页面不显示,客户端不可见
    2<!-- ..... --> HTML注释,页面不显示,但是会发送到客户端
    3.<%-- ..... --%> JSP注释,页面不显示,也不会发送到客户端
    2.JSP的脚本scriptlet
    1.<%=...%>表示在页面上打印数据
    2.<%!...%>声明,全局变量
    3.<%....%>局部变量,java语句
    3.JSP的四个域对象
    1.pageContext:当前页面内有效
    2.request:当前请求内有效
    3.session:当前的会话内有效(浏览器不关闭一直有效)
    4.application:当前服务器生命周期内有效(项目不重启一直有效)
    4.JSP的@指令
    1.page:contentType 设置页面的编码和格式
    pageEncoding 设置页面的编码
    import 引包
    errorPage 当前页面出现错误跳转的页面
    isErrorPage 这是一个错误页面
    2.include:包含页面
    3.taglib:引入第三方标签库
    5.动态标签
    格式:<jsp: include..... >、<jsp:forword .........>
    include:用于包含其他文件(同时存在)
    forword:用于重定向文件、页面跳转(覆盖)
    Param:用于参数传递
    useBean:用于调用JavaBean
    setProperty:用于设置JavaBean的属性值
    getProPerty:用于访问Bean的属性
    plugin:用于Applet的嵌入操作元素
    6.九大内置对象
    *request 封装用户提交的消息
    *response 向客户端发送数据
    *session 用来保存每一个用户的信息
    *application 表示所有用户的共享信息
    out 页面输出信息
    page jsp页面本身
    *pageContext JSP的页面容器
    config 服务器配置信息,可以取得初始化参数
    exception 显示异常信息
    7.修改代码
    一般而言,修改web.xml、配置文件、java需要重新启动tomcat服务。
    修改jsp、html、css、js不需要重启服务
    8.内置对象中的常用方法
    request:
    String GetParameter(String name):
    根据请求的字段key,返回字段值value
    String[ ] GetParameter(String name):
    根据请求的字段key,返回多个字段值value(checkbox)
    void setCharacterEncoding("编码格式utf-8"):
    设置请求编码,不设置则默认(tomcat以前默认ISO-8859-1,tomcat8以后改为了utf-8)
    getRequestDisPatcher("b.jsp"):请求转发的方式跳转页面
    getServiceContext():获取项目的ServletContext对象

    response:响应对象
    提供的方法:
    void addCookie(Cookie cookie):服务端向客户端增加cookie对象
    void sendRedirect(String location) throw IOException:页面跳转的一种方式
    void setContetType(String type):设置服务器响应的编码(设置服务器的contentType类型)
    页面重定向 response.sendRedirect("success.jsp");属于跳转页面,取不到数据,而且地址会改变,重定向有两次响应
    页面请求转发request.getRequestDispatcher("success.jsp").forward(request,response);能够拿到数据,而且地址不会变,请求转发只有一次响应

    session:(服务端)
    Cookie(客户端,不是内置对象):Cookie是由服务端生成的,再发送给客户端保存。相当于本地缓存。
    作用:提高服务端的访问效率,但是安全性较差。
    服务端准备Cookie:
    response.addCookie(Cookie cookie)
    页面跳转(转发、重定向)
    客户端获取Cookie:
    request.getCookie();
    服务器增加Cookie:response对象;
    客户端获取对象:request对象
    不能直接获取一个单独的对象,只能一次性将全部的cookie拿到

    session机制:
    客户端第一次请求服务器时,服务端会产生一个人session对象(用于保存该客户的信息);
    并且每个session对象,都会有一个唯一的sessionId(用于区分其他session)
    服务端又会产生一个cookie,并且该cookie的name=JSESSIONID,value=服务端sessionId的值;
    然后服务端会在响应客户端的同时将该cookie发送给客户端,至此,客户端就有了一个人cookie(JSESSIONID);
    因此,客户端的cookie就可以和服务端的session一一对应(JSESSIONID---sessionID)
    cookie保存在客户端,session保存在服务端
    session方法:
    String getId():获取sessionId
    boolean inNew():判断是否是新用户(第一次访问)
    void invalidate():使session失效(退出登录、注销)
    void setMaxInactiveInterval(秒 ):设置最大有效非活动时间

    appliation 全局对象
    String getContextPath():虚拟路径
    String getRealPath(Strring name):绝对路径
    9.四大域对象
    小-->大
    pageCOntext:当前页面有效(页面跳转后无效)
    request:同一次请求有效;其他请求无效(请求转发后有效;重定向后无效)
    session:同一次会话有效(无论怎么跳转都有效;关闭/切换浏览器后无效;)
    appliation:全局变量;整个项目运行期间都有效(切换浏览器任然有效);关闭服务、运行其他项目无效
    以上4个对象共有的方法:
    Object getAttribute(String name):根据属性名,获取属性值
    void setAttribute(String name,Object obj):设置属性值(新建,修改)
    setAttribute("a","b");
    如果a对象之前不存在,则新建一个a对象;如果a之前已经存在,则将a的值改为b
    void removeAttribute(String name):根据属性名。删除对象

    多个项目共享、重启后任然有效:JNDI技术
    以上的4个范围对象,通过setAttribute()复制,通过getAttribute()取值;
    以上范围对象。尽量使用最小的范围。因为对象的范围越大,造成的性能损耗越多。

    相关文章

      网友评论

          本文标题:JSP基础

          本文链接:https://www.haomeiwen.com/subject/yqssvctx.html