JSPday02(内置对象、include指令)

内置对象(9种)

  在JSP的页面中,我们可以通过一个对象名称直接调用相应的方法,而不是需要进行实例化。该类的对象叫做内置对象。

page:代表当前页面对象

  在jsp页面中通过对比page和this可以看出,两者均指向同一对象

  

pageContext:

  代表当前页面的上下文对象

out:输出对象

exception:处理页面中产生的异常信息   使用方式

config:获取到当前页面的初始化的参数值

request:代表一次请求。主要是从客户端获取到所请求的信息内容。在该过程中,如果使用post进行提交,那么很可能会产生乱码,解决方案:

  •  setCharacterEncoding(“string字符编码”):将所传输的内容按照指定的编码进行格式化。
  •  可以通过给指定的字符串进行字节数组转换,同时指定对应的编码 使用new String(“String字符串”,“UTF-8”)

  

   在url地址中,是可以重新编辑请求数据的,除此外,还有可能利用一些第三方的框架或者是使用Socket发起请求,那么此时,如果后端没有做任何的防御性判断,有可能会产生异常。 

  转发: request.getRequestDispatcher(跳转的目标页面),使用forward(request,response)跳转页面,,只能跳转到自身项目下的页面

  转发和重定向的区别:

  1.  请求次数不同:转发请求一次,重定向请求两次
  2.  地址栏不同:转发地址栏不变,重定向地址栏发生变化
  3.  是否共享数据:转发属于一次请求,数据共享,重定向属于两次请求,则数据不共享
  4.  跳转限制:转发只能跳转至自身项目下的页面,重定向可以跳转至任意的url
  5.    发生行为不同:重定向的是客户端行为,转发是服务端行为

response:代表一次响应

  sendRedirect(String page):实现一次重定向,page可以是一个页面,也可以是一个外部链接。

session:代表一次会话

  当用户进入到网站系统中,就会开始一次会话。在Tomcat中默认过期时间时30分钟。可以通过session.setMaxInactiveInterval(时间[s]为单位)设置session的过期时间,可以通过session.getMaxInactiveInterval()获取到过期时间的设置。通过getId()可以获取到每个用户自己的JSESSIONID,该ID是由客户端cookie所产生的。使用setAttribute(String,object)设置session范围内的对象,可以通过getAttribute(String)获取到对应的对象。当调用invalidate()方法时,会注销session,使其失效,如果调用了removeAttribute(key)这个方法,就会从当前session中移除掉对应的key的session属性。

 

 application:代表一次应用级的作用域

include指令

使用指令方式

  <%@ include file="xxx.jsp"%>

  先将页面拼合在一起,然后再运行。如果在被拼合的页面内包含有本页面中同名的变量,那么会产生异常。

使用jsp的行为元素

   <jsp:include page="页面名称" />

  先完成自身页面的编译,然后再进行拼接。

总结:如果页面是静态的,那么比较适合使用指令方式进行拼接。

  如果页面是动态的,那么使用jsp的行为元素更加适合。

  

posted @ 2020-09-15 20:12  大明湖畔的闰土  阅读(167)  评论(0编辑  收藏  举报