• JSP九大内置对象


      内置对象就是jsp提供好的对象,用的时候直接使用对象名,而不用手动创建对象。这些系统创建好的对象就叫做内置对象.

    九大内置对象

       内置对象名       类型

    1. request           HttpServletRequest
    2. response        HttpServletResponse
    3. config             ServletConfig
    4. application     ServletContext
    5. session        HttpSession
    6. exception            Throwable
    7. page                   Object(this)
    8. out                      JspWriter
    9. pageContext       PageContext

      out,request,response,session,application这五个是常用的内置对象。然后page,pageContext,exception,config是不常用对象。

    Web程序的请求响应模式是指:用户用http发出请求(request),服务器给用户响应(response)

    缓冲区就像一个碗,把饭从锅里盛到碗里,再去吃。

    out对象

     代码:

    flush方法是将输出到屏幕上,这个时候如果清除缓冲区,这时候如果用clear方法会抛异常,抛出异常后,后面的信息就不会被打印。清除缓冲区的一个好处是,可以释放缓冲区大小,使得剩余缓冲区变大。flush后使用clearBuffer方法则不会抛出异常。

    get与post方式的区别

    <form name="FromName" action="动作" method="提交方式"></form>
    

      

    表单有两种提交方式:get和post

    get:明文提交通过URL,不超过2kb,安全性低,效率比post高。如搜索,查询等

    post:信息封装在HTML HEADER内,提交数据量可以很大,安全性高。如注册,修改,上传等功能

     例子:

    在某个jsp文件的body标签中插入以下:

    <form action="doLogin.jsp" name="loginForm" method="get">
    
      <table>
    
        <tr>
    
          <td>用户名</td>
    
          <td><input type="text" name="username" /></td>
    
        </tr>
    
        <tr>
    
          <td>密码</td>
    
          <td><input type="password" name="password" /></td>
    
        </tr>
    
        <tr>
    
          <td colspan="2"><input type="submit" value="登录"/></td>    
    
        </tr>
    
      </table>
    
    </form>

     点击登录,之后就可以跳转到doLogin.jsp页面上,用get方式的话,用户名密码都以明文方式提交,在URL中可以显示出来。

     request对象

    同一个选项卡中,checkbox 的name得相同

    然后在request.jsp中,

    • 注意:<%=request....%>中间不要忘记加个等于号,而且加了等号的就不要用分号结尾了

    页面:

    request.jsp

     设置字符编码

     

      在接受字符串之前,用setCharacterEncoding方法可以设置字符编码,这样输入中文接受后就不会是乱码,注意在接受页面的字符编码也要一致才行。无法通过url传递中文参数问题。需要修改tomcat配置你文档才可以 在server.xml中修改

    增加下面的字段

     然后重启tomcat服务器即可。 

     response对象

    尽管很重要,但在jsp中很少直接使用到。注意:sendRedirect方法是在response对象中的

      上面的outer对象和out内置对象不是一个概念,outer对象输出会先于内置对象,解决办法是:使用out.flush()方法,来强制清空缓冲区,那么也会强制将内容也显示在浏览器上。

       请求重定向,会将这个界面跳转到另一个request界面

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

      转发后:地址栏地址不变;重定向:地址栏会变。

    请求重定向的时候,第一个页面的信息不会保存。因此跳转到重定向后的网页的时候,第一个页面所传的信息不会保存。而且地址栏的地址会发生改变。

    请求转发,虽然转发到第三个界面(request.jsp),页面是第三个界面,但是地址栏还是停留在response.jsp中。然后第一个界面的信息也能够传到第三个界面(因为是转发过来的,不是重定向,重定向是不可以传过来信息的)

     注意:

     请求重定向是客户器端行为而请求转发是服务器端行为

    session

    在服务器中保存着不同用户的session,每一个用户对应一个sesson,保存在内存当中

    刷新页面,

     界面跳转,保存状态

    然后在另个jsp文件中

    可以看见session id是没有发生变化的,而且,也可以得到username

    回话本身,是有生命周期的,如果一天没有在这个页面进行任何操作那么页面的数据可能就没了

    session.setMaxInactiveInterval(10);//比如说设置10秒后session会话结束,这样的话session中的信息将在10秒后销毁

     

     Session生命周期

    1. 创建
    2. 活动
    3. 销毁

    当手动关闭所有页面再去重新访问某个jsp页面的时候,服务器中的sessionId还是存在的,并没有消失,只有在时间过了之后才会清除这个sessionId

     

    session超时时间

     Application

    就像java中的静态变量,属于类 而不属于对象,application是属于服务器的,不是某个项目的

    getAttributeNames方法是一个枚举类型

     

    除了自己设置的三个属性,application中还有其他自带的属性

    Page

    page 对象即表示当前对象
    JSP 会被编译为一个Servlet类 ,运行的时候是一个Servlet实例。 page即代表this

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.util.*"%>
         
    page:<%=page%>
    <br>
    this:<%=this%>

    运行结果:

    类似于this,是object的一个实例

    pageContext对象

    和application有什么区别?

    pageContext只在当前页面,下一个页面时该上一个页面的对象就失效。application是所有用户及页面可以共享一个对象

     

     

     

    Config

    config对象在servlet中做详细介绍

  • 相关阅读:
    数据库用户管理
    数据库(视图,事件,触发器,函数,存储,变量)
    我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3cp8ng15g94wc
    Python3安装与使用urllib2包之小坑
    移动端的vw px rem之间换算
    H5移动端开发
    实现拖拽复制和可排序的react.js组件
    vue2实现搜索结果中的搜索关键字高亮
    来,了解一下Java内存模型(JMM)
    video标签学习使用
  • 原文地址:https://www.cnblogs.com/volvane/p/9283818.html
Copyright © 2020-2023  润新知