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乱码的代码

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

 

posted @ 2019-02-19 15:25  子汉疆南  阅读(269)  评论(0编辑  收藏  举报