zoukankan      html  css  js  c++  java
  • Javaweb学习笔记6 jsp页面元素

    1. jsp页面元素

      a。脚本

          1. <%     %> 定义局部变量

        2.<%!       %>定义全局变量以及方法

        3. <%= 输出表达式     %>输出表达式(无分号,因为不是输出语句,而是表达式)

        4.<%@ %>指令有很多种,

            -page指令 位置  写在网页开始  属性有 language jsp                                                                            import pageEncoding contentType

            - include指令 taglib指令

        5. <!-- -->html 在浏览器源代码中可见

          // /* */ java

          <%- -%>

    2 jsp内置对象

      该对象不用new即可使用。有九大内置对象

      2.1 out 向客户端输出内容 

      

      2.2 request 请求对象 存储 客户端向服务端发送的请求信息

        常见方法 2.2.1 String getParameter(String name) 根据请求的字段名返回字段值

             2.2.2 getParameterValues   返回数组,常用chatbox

             2.2.3 void setCharacterEncoding(" utf-8") 设置请求编码。对方解析时需要知道你是什么编码。如果不设置则跟着tomcat默认。在tomcat7 以及7以前默认ISO-8859-1,之后默认utf-8

           2.2.4 getRequestDispatcher("a.jsp").forward(); 请求转发

           2.2.5 getServerContext() :获取项目的ServletContext对象

      

      2.3response  响应对象,封装响应信息

        void addCooike(Cookie cookie )服务端向客户端增加一个cookie对象

        void  sendRedirect(String location ) throws IOException :页面跳转的一种方式

        void setContextType(String type):设置服务端响应编码(设置服务端content type类型)

     

    //response.sendRedirect("succees.jsp");重定向会导致数据丢失
    //重定向是response提供的

    //转发是request提供的,数据保留,并且地址栏没有改变,仍然保留转发时的页面
    request.getRequestDispatcher("succees.jsp").forward(request, response);

    请求转发和重定向的区别         请求转发               重定向

    地址栏是否改变        不改变(check.jsp)    改变(succees.jsp)

    是否保留第一次请求时的数据       保留(内部转移数据安全) 不保留

    请求的次数          一次(地址栏都不变)   两次(不保留必然两次)

        2.4 session

      session 存放于客户端(是内置对象,使用不用new),

      而cookie存在于客户端(不是内置对象,使用需要new)作用 提高访问效率,但是安全性较差cookie 就是key:value。cookie是是由javax.servlet.http.cookie 类产生的

    构造方法 publlic Cookie(String key,String value)

    String getName():获取name  

    String getValue()获取value

    coid setMaxAge(int expiry) 设置最大有效期,单位是秒 

     cookie 是由服务端产生的,由服务端给予客户端。

      相当于本地缓存的作用,服务端发送给客户端

    添加cookie   response.addCookie(Cookie cookie )

    转发cookie(转发,重定向) 

    获取cookie request.getCookies()

    增加cookie是response,获取是request

    Cookie cookie = new Cookie()

    压着ctrl键进去,发现该类是public class javax.servlet.http.Cookie implements java.lang.Cloneable, java.io.Serializable 

    a. 服务端增加cookie :response对象,客户端获取对象:request对象

    b.不能直接获取某一个单独对象,只能一次性将所有的cookie对象拿到,

    通过F12可以发现,除了自己设置的Cookie对象外,还有一个名为JSESSION的Cookie

    2.5pageContext

    2.6application

    2.7config

    2.8page

    2.9expection

         

    用out.println不会新起行,新行要用<br/>

    超级痛苦的是和教学上打的一样,但我的代码就无法运行成功。

    解决办法:清除服务器缓存

         重启服务器(谁给我说劳资的jsp修改也需要重启!)

         如果先打<% %>然后在里面写了一堆(包含了方法),最后加了“!”变成<%! %>也会报错,因为这个!并没有加上去,请在开始创建时直接加。

          检查URL,看路径是否正确

    默认,method="get ", 地址栏,超链接都是 get方式 get方式可以在地址栏看到参数(不安全)。地址栏能传送的信息大小有限,有4--5kb,图片音频视频因为太大而报错。

    method="post"  .该方式在地址栏不显示。(推荐使用)

    出现乱码时先分清是get 方法还是post方法

      如果是get方式有两种方法

      1.0

       String name = request.getParameter("uname"); 这种方法即使设置了UTF-8也读取的是乱码,因为Tomcat是7.0,默认是ISO类的编码,所以无法识别。

    int age = Integer.parseInt(request.getParameter("uage")); 可以强制将返回show.jsp页面的变量转换成utf-8格式

    缺点是很麻烦,每个变量都要修改

      2.0

      第二个方法:修改serve.xml

      在修改端口号的位置新增加,URIEncoding= "UTF-8"

      如果是post方式

      1.0

      request.setCharacterEncoding("utf-8");这一行是解决post乱码的代码

    半下午耗这里,表示计算机狗伤不起。

     

  • 相关阅读:
    php 格利高里函数转化成时间戳
    图片转化成文件流
    下载文件(execl,img 等)
    项目开发流程
    大数据可以采用子查询
    文件上传接口
    多文件ajax 上传
    swoole 安装和简单实用
    jquery 滑动加载
    php实现分享到朋友圈,QQ,微博
  • 原文地址:https://www.cnblogs.com/xiaotianzhang16/p/10316152.html
Copyright © 2011-2022 走看看