javaweb 之 jsp学习总结

1.什么是jsp?
    用户角度,就是一个网页
    程序员角度,就是一个servlet

    2.为什么会有jsp?
    HTML多数情况下是静态内容
    但有时候需要动态数据,这些动作需要查询数据库,然后在网页上显示,HTML里面不能写java代码,jsp可以

    3.三大指令,九大内置对象

 一.jsp指令
<%@ page ... %>
定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等
<%@ include ... %>
包含其他文件
<%@ taglib ... %>
引入标签库的定义,可以是自定义标签


1.page指令
    language表示jsp中可以写java
    contentType表示文件是什么类型
    pageEncoding表示jsp内容编码
    extends用于指定jsp翻译成java文件后继承谁
    import导包
    session 值可选true  false  true的话可以直接使用session对象

    <%@ page contentType="text/html;charset=UTF-8" language="java"  pageEncoding="utf-8" %>
    <%@ page import="java.util.Date" %>

2.Include指令
JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。
包含的文件就好像是该JSP文件的一部分,会被同时编译执行。
Include指令的语法格式如下:
<%@ include file="文件相对 url 地址" %>

包含另外一个jsp的内容进来
背后细节:把另外一个jsp文件所有内容拿过来一起输出,所有标签内容都包含进来

 二.jsp动作标签
     <jsp:include page="相对 URL 地址" flush="true" />
     <jsp:forward page="相对 URL 地址" />
                jsp:forward动作把请求转到另外的页面。jsp:forward标记只有一个属性page
     <jsp:useBean id="name" class="package.class" />
     <jsp:setProperty name="myName" property="someProperty" .../>
     <jsp:getProperty name="myName" property="someProperty" .../>


 三.jsp内置对象  重点
    所谓内置对象就是可以直接在jsp页面中使用这些对象

1.九个内置对象
request                                            HttpServletRequest类的实例
response                                         HttpServletResponse类的实例
out                                                   PrintWriter类的实例,用于把结果输出至网页上
session                                            HttpSession类的实例
application                                       ServletContext类的实例,与应用上下文有关
config                                               ServletConfig类的实例
pageContext                                    PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page                                                 类似于Java类中的this关键字
Exception                                         Exception类的对象,代表发生错误的JSP页面中对应的异常对象


2.四个作用域对象
pageContext  (pageContext)作用域仅限于当前页面
request   (HttpServletRequest)  作用域仅限于一次请求,只要服务器对该请求做出了响应,该值就没有了
session    (HttpSession) 作用域仅限于一次会话(多次请求,多次响应)
application  (ContentServlet)整个工程都可以访问.服务器关闭后值就没有了

使用作用域来存储数据
 pageContext.setAttribute("name","page");
    request.setAttribute("name","request");
    session.setAttribute("name","session");
    application.setAttribute("name","application");
使用作用域取出数据
<%=pageContext.getAttribute("name")%>
<%=request.getAttribute("name")%>
<%=session.getAttribute("name")%>
<%=application.getAttribute("name")%>
先输出response里面的值再输出out里面的值
<% out.print("hello");%>
<%  response.getWriter().print("world");%>
<%--jsp的声明--%>
<%! int i=2;%>
<%! int a,b,c;%>

<%--jsp 表达式--%>
<p>今天是:<%= new Date()%></p>


<%--jsp行为
JSP行为标签使用XML语法结构来控制servlet引擎。它能够动态插入一个文件,重用JavaBean组件,
引导用户去另一个页面,为Java插件产生相关的HTML等等。
<jsp:action_name attribute="value" />
--%>

猜你喜欢

转载自blog.csdn.net/fnwibwj/article/details/81490801