JSP基本介绍和九大内置对象等

一、JSP运行原理和运行机制

JSP(Java Server Pages)是一种在服务器端执行的动态网页技术,其运行原理和运行机制如下:

  1. 首先,客户端发送一个HTTP请求到服务器,请求访问一个JSP页面。

  2. 服务器接收到这个请求后,会将JSP页面交给JSP引擎进行处理。

  3. JSP引擎会对JSP页面进行解析,并生成一个对应的Servlet代码。

  4. 生成的Servlet代码会被编译成可执行的Java字节码,然后被加载到内存中。

  5. 一旦Servlet代码被加载到内存中,服务器就会创建一个Servlet实例,并使用该实例来处理当前的请求。

  6. Servlet实例会根据请求的参数和逻辑,生成动态的HTML代码,并将其发送给客户端。

  7. 客户端接收到服务器返回的HTML代码,将其显示在浏览器中。

需要注意的是,JSP页面中的Java代码会被JSP引擎自动转化为Servlet代码,并在运行时执行。同时,JSP页面中的静态内容会直接输出给客户端,而动态内容则会在服务器端生成,并发送给客户端。这样就实现了将Java代码和HTML代码混合的动态网页生成和运行过程。

二、JSP的组成部分:

1.指令部分:对当前页面的设置,必须写在当前页面的第一行:

    <%@ page language=”java” pageEncoding=”utf-8” %>

2.HTML静态页面部分

3.小脚本部分(写在HTML的body里面,我们写的是java程序):<%--小脚本部分--%>

4.表达式部分:负责输出显示内容到页面: <%= 输出内容 %>、

注释:html注释客户端源码可见: <!—内容-->

      Jsp注释客户端源码不可见:<%--内容--%>

 例如:Page部分

<%@ page 
contentType="text/html;charset=编码集" pageEncoding="编码集"
language="java"  //目前所学就选java
isELIgnored="false|true" 
autoFlush="false|true" buffer="缓冲区大小" 
errorPage="错误页面地址"  isErrorPage="false|true" //设定是否为错误页面
extends="继承那个页面" 
info="当前介绍" 
isThreadSafe="false|true" 
session="false|true" %>
三、九大内置内置对象 

描述:
    a) 在Jsp开发中,Jsp提供了9个内置对象,这些内置对象将由容器为用户进行实例化,用户直接使用即可。
    b) pageContext, request, response, session, application, config, out, page, exception;常用的是前面 5个,需要熟练掌握。
    c) 在Jsp开发中,可以保存数据,Jsp提供了四种数据保存范围;分别是 page,request,session,application。
1.Out 对象
    out对象:输出对象 
    数据类型:PrintWriter
    方法:

out.print("abcd");
out.flush();
out.close();

2.page对象
    page对象:当前对象,代表当前页面的对象

    数据类型:Object

3.Request 对象
    数据类型:servletRequest (大类别)、HttpServletRequest(小类别)

    Request的生命周期:请求开始--->响应结束;

    方法一:

request.getServerName(); //服务器ip
request.getServerPort(); //服务器端口
request.getRemotePort(); //客户端端口号
request.getRemoteUser(); //windows的
request.getRemoteHost(); //客户端
request.getRemoteAddr(); //客户端
request.getAuthType(); //
request.getMethod(); //请求方法
request.getRequestURL(); //请求地址

     方法二:

request.setCharacterEncoding("utf-8"); //设置请求的编码集,只针对post请求,对get请求没有用;

request.getParameter("key"); //获取浏览器传过来的key的value值,用String类型接受,(单个值),比如一些单选框的内容等

request.getParameterValues("key"); //获取浏览器传过来的key的多个value值,用 String[] 类型接受,(多个值),比如一些多选框的内容等

Map<String,String[]>  all = request.getParameterMap(); //接受浏览器传过来的所有的值;

     方法三:

request.setAttribute("key",value); //向request容器中放value(object),起一个名称key(String)
Object value = request.getAttribute("key"); //从request容器中获取指定的key的value值
request.removeAttribute("key"); //删除request容器中指定的key
request.getRequestDispatcher("url").forward(request,response);//转发

 

4.Response 对象
    Response 对象:响应对象,服务器对浏览器的响应

    数据类型:ServletResponse | HttpServletResponse

    方法:

response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
response.sendRedirect("url"); //重定向

注:转发和重定向区别:(类比借钱的列子)

转发:一次请求一次响应

重定向:两次请求两次次响应

5. Session 对象
        session 对象:会话对象,浏览器和服务器的一次通话,包含浏览器的多次请求和服务器的多次响应;
        数据类型:HttpSession
        生命周期:
                开始:浏览器第一次请求服务器开始
                结束:  1.浏览器关闭;
                        2.服务器关闭;
                        3.最大等待时间到;
                        4.执行了 invalidate() 方法;

方法一:
    session.setAttribute("A","abc");
	session.removeAttribute("A");
	session.getAttribute("A");
方法二:
    session.getId(); //获得请求的ID
    session.isNew(); //是否是第一次请求
    session.getCreationTime(); //获取第一次请求时间
    session.getLastAccessedTime(); //获取最后一次请求时间
    session.getMaxInactiveInterval(); //获取最大等待时间
    session.setMaxInactiveInterval(); //设置最大等待时间,以秒计;若不设置则默认为半小时;

6.application 对象
        application 对象:上下文对象、代表服务器的全局对象,一个服务器只有一个application
        数据类型:ServletContext;
        生命周期:服务器启动----->服务器关闭
        方法:

application.setAttribute("A","abc");
application.removeAttribute("A");
application.getAttribute("A");

7. exception 对象
        exception 对象:异常对象,代表当前页面的出现的异常,只有在错误的页面才能使用;
        数据类型:Throwable
8.pageContext 对象
        pageContext 对象:全文对象,管理其他对象和容器的
        pageContext 内置对象由Jsp 容器创建并初始化,pageContext 对象提供了对JSP 页面所有对象及控件的访问
        数据类型:PageContext
9.config 对象

四、Jsp 四大作用域
  • Page 范围:只在一个页面中保存数据;
  • Request 范围:只在一个请求中保存数据;
  • Session 范围:在一次会话范围中保存数据,仅供单个用户使用;
  • Application 范围:在整个服务器上保存数据,所有用户共享;

 ​​​​

  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值