1. jsp (java server page)

(1)jsp是什么?

sun公司制订的一种服务器端动态页面技术规范。
注:
    因为虽然使用servlet也可以生成动态页面,
但是过于繁琐(需要使用out.println),并且难以
维护(修改页面,就需要修改java代码),所以,sun
才制订了jsp规范。
    jsp是一个以.jsp为后缀的文件,该文件被容器
转换成一个对应的Servlet然后执行。也就是说,jsp
的本质就是一个Servlet!

(2)如何写jsp?

1)step1.添加一个以.jsp为后缀的文件。

2)step2.在该文件里面,可以添加如下内容:

a. html(css,javascript) : 直接写。
b. java代码:
    b1. java代码片断
    <%  java代码   %>
    b2. jsp表达式
    <%= java表达式 %>
c. 隐含对象
   c1.什么是隐含对象?
    可以直接使用的对象,比如out,request,
    response。
   c2.为什么可以直接使用这些隐含对象?
     容器会添加获得这些隐含对象的代码。
d. 指令
    d1.什么是指令?
    通知容器,在将jsp转换成servlet时,
    做一些额外的处理,比如导包。
    d2.语法
    <%@ 指令名 属性=值 %>
    d3.page指令
       import属性:用于导包,比如
        <%@ page import="java.util.*"%>
        <%@ page import="java.util.*,java.text.*"%>
       contentType属性:设置response.setContentType方法的参数值。
       pageEncoding属性:告诉容器,在读取
            jsp文件的内容时使用指定的字符集去解码。


(3)jsp是如何运行的?

1)step1. 容器要将jsp转换成servlet。

html(css,js) ----> service方法里面,使用
                out.write输出。
    注: out.write方法会将null转换成""输出,
        而out.println方法会将null直接输出。
<%     %>   -----> service方法里面,照搬。
<%=    %>   -----> service方法里面,使用
                out.print输出。

2)step2. 容器调用该servlet。

2.转发

(1)什么是转发?

一个web组件将未完成的任务转交给另外一个
web组件继续做。
注:
    web组件指的是servlet或者是jsp。
    常见的情况是servlet将数据转发给jsp来
    展现。

(2)如何转发?

step1.绑订数据到request。

request.setAttribute(String name,Object obj);
比如:
  request.setAttribute("users",users)

step2.获得转发器。

RequestDispatcher rd = request.getRequestDispatcher(String uri);
注:
    RequestDispatcher是一个接口。
    uri:转发的目的地,通常是一个jsp。

step3.转发

rd.forward(request,response);
注:
    转发的本质,是一个web组件通知容器
    去调用另外一个web组件。

Object request.getAttribute(String name);
注:如果绑订对应的值不存在,返回null。

Servlet学习笔记05——什么是jsp?的更多相关文章

  1. # jsp及servlet学习笔记

    目录 jsp及servlet学习笔记 JSP(Java Server Page Java服务端网页) 指令和动作: servlet(小服务程序) jsp及servlet学习笔记 JSP(Java Se ...

  2. Servlet学习笔记(四)

    目录 Servlet学习笔记(四) 一.会话技术Cookie.session 1. 什么是会话技术? 2. 会话技术有什么用? 3. Cookie 3.1 什么是Cookie? 3.2 使用Cooki ...

  3. 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归

    机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...

  4. C++ GUI Qt4学习笔记05

    C++ GUI Qt4学习笔记05   qtc++正则表达式 QIntValidator           --  只让用户输入整数 QDoubleValidator     --  只让用户输入浮 ...

  5. Servlet学习笔记(三)

    目录 Servlet学习笔记(三) 一.HTTP协议 1.请求:客户端发送欸服务器端的数据 2.响应:服务器端发送给客户端的数据 3.响应状态码 二.Response对象 1.Response设置响应 ...

  6. Servlet学习笔记(二)

    目录 Servlet学习笔记(二) Request对象 1.request和response对象: 2.request对象继承体系结构: 3.什么是HttpServletRequest ? 4.Htt ...

  7. jsp&servlet学习笔记

    1.路径引用问题 一个css.jsp.html.或者javascript文件从从一个工程复制到另一工程,如果引用的时候使用的时相对路径,看似没有错误,但是却一直引用不进来,这时候要使用绝对路径,这样才 ...

  8. [原创]java WEB学习笔记05:Servlet中的ServletConfig对象

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. Servlet 学习笔记

    Servlet 运行在服务器上的 java 类: Servlet 容器为 javaWeb 应用提供运行时环境,负责管理 servlet 和 jsp 生命周期,以及管理他们的共享数据. 现在我们知道了 ...

随机推荐

  1. pat03-树1. 二分法求多项式单根(20)

    03-树1. 二分法求多项式单根(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 杨起帆(浙江大学城市学院) 二分法求函数根的 ...

  2. oracle简单命令

    1.cmd 中 sqlplus /nolog 2.SQL> conn sys/password as sysdba

  3. get post put delete

    get:获取资源 幂等 post:执行不安全和非幂等操作(幂等:多次请求于一次请求的效果一样) put:更新资源  幂等 delete:删除资源  幂等 如何理解幂等: public book { p ...

  4. lnmp架构-负载均衡

    一.几个基本概念 1.pv 值 pv 值(page views):页面的浏览量 概念:一个网站的所有页面,在一天内,被浏览的总次数.(大型网站通常是上千万的级别) 2.uv值 uv值(unique v ...

  5. Use Exception.ToString() instead of Exception.Message.

    Exception.Message contains only the message (doh) associated with the exception. Example: Object ref ...

  6. Android 给EditText添加下划线

    在安卓高版本,默认是有下划线的,其默认下划线的颜色是由其主题颜色来控制的! 控制如下: <style name="AppTheme" parent="Theme.A ...

  7. Android监听安装卸载

    需要通过receiver来监听: 在AndroidManifest.xml文件中注册的receiver中必须加上<data android:scheme="package"/ ...

  8. GDB多线程调试分析

    0x00: 在Linux系统上Gdb提供了一组多线程调试命令,如表所示: 多线程调试的主要任务是准确及时地捕捉被调试程序线程状态的变化的事件,并且GDB针对根据捕捉到的事件做出相应的操作,其实最终的结 ...

  9. 【Android学习入门】Android studio基本设置

    1.背景设置 依次选择File->Settings-->Appearance & Behaviour->Apprearance,然后勾选 show line number. ...

  10. 【菜鸟学Linux】Cron Job定期删除Log(日志)文件

    以前一直做Windows开发,近期的项目中要求使用Linux.作为小菜鸟一枚,赶紧买了一本经典书<鸟哥的Linux私房菜>学习.最近刚好有一个小任务 - 由于产品产生的Log很多,而且增长 ...