20210409—JavaWeb—021.JSP(规范、java命令书写、文件内置对象)

学习记录21

1、JSP规范的定义

  • JAVAEE规范中一种
  • 制定了一个开发流程:开发JSP文件代替响应对象将处理结果写入到响应体
  • 制定了一个操作流程:Http服务器应该如何调用管理JSP文件

2、为何使用JSP文件代替响应对象

  • 响应对象的缺点

    • 响应对象适合数据量较少的处理结果
      数量过多,增加开发难度
  • JSP文件的优势

    • 降低将处理结果写入的开发工作量
    • 降低处理结果维护难度
    • 开发时:可以直接将处理结果写入到JSP文件,不需要手写out.print命令
      调用时:自动的将JSP文件的所有内容,通过输出流写入到响应体

3、HTML与JSP的区别

  • 资源文件类型不同

    • HTML文件属于静态资源文件,其相关命令需要在浏览器编译并执行
    • JSP文件属于动态资源文件,其相关命令需要在服务端编译并执行
  • 调用形式不同

    • 访问HTML文件:Http服务器直接通过一个输出流, 将HTML文件所有内容写入到响应体
    • 访问JSP文件:Http服务器根据JSP规范来操作,JSP文件编辑---->编译----->调用

4、JSP文件中Java命令书写规则

  • 输入标记,只能在执行标记中书写:<% pJava命令语句] %>
    • 将JSP文件中的Java命令与普通执行结果区分
    • 能声明Java变量
    • 能声明运算表达式:数学运算、关系运算、逻辑运算
    • 能声明控制语句
    • 如:
<% int a  =10;  %> 
<% boolean flag = 30 >= 40; %> 
<%
if(判断条件){				    
}else{}

while(){}				
%>  
  • 输出标记,格式:<%= [java的变量名] %><%= [java的表达式] %>
    • 通知Tomcat,将输出标记中的【变量的值】或【表达式运算结果】写入到响应体

5、JSP文件内置对象

  • request对象
<!--
    JSP文件内置对象:request
                类型:HttpServletRequest
                作用:在JSP文件运行时读取请求包信息,与Servlet在请求转发过程中实现数据共享

    浏览器:http://localhost:8080/myWeb/request.jsp?userName=aaa&password=123
-->
<%
    // 在JSP文件执行时,借助于内置request对象读取请求包参数信息
    String userName = request.getParameter("userName");
    String password = request.getParameter("password");
%>

来访用户姓名:<%=userName%><br/>
来访用户密码:<%=password%>
  • session对象
    • 两个session之间进行通信
<!--
JSP文件内置对象:session
    类型:HttpSession
    作用:在JSP文件运行时,可以session指向当前用户私人储物柜,添加共享数据,或者读取共享数据

-->

<!--将共享数据添加到当前用户私人储物柜-->

<%
    // HttpSession session = request.getSession();
    session.setAttribute("key1", 200);
%>
<!--
    session_1.jsp 与 session_2.jsp 为同一个用户/浏览器提供服务,
    因此可以使用当前用户在服务端的私人储物柜进行数据共享
-->
<%
    Integer value = (Integer) session.getAttribute("key1");
%>

session_2.jsp从当前用户session中读取数据:<%=value%>
  • application对象
    • jsp内设置,Servlet获取
<!--
        ServletContext application; 全局作用域对象
        同一个网站中Servlet与JSP,都可以通过当前网站的全局作用域对象实现数据共享
        JSP文件内置对象:application
-->

<%
        application.setAttribute("key2", "Hello JSP's application");
%>
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext appliction = request.getServletContext();
        String value = (String) appliction.getAttribute("key2");
        System.out.println("value = " + value);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值