web学习-jsp

来源:互联网 发布:淘宝运营方案ppt模板 编辑:程序博客网 时间:2024/06/05 12:01

ServletContext接口,表示的应用,tomcat启动时创建一个对象,tomcat关闭销毁对象,在整个web生命周期中,只有一个对象,表示的就是当前应用。

-------------------------------------------------------------------------------------------------------------

如何获取该对象:

      (1)若在servlet中:

               ServletContext ctx = super.getServletContext();

              GenericServlet 实现了Servlet和servletConfig接口,而getServletContext在ServletConfig接口中。

       (2)通过请求对象获取

                 ServletContext ctx2 = req.getServletContext();

                 ServletContext ctx3 = req.getSession().getServletContext();


 常用方法:

 (1)String getContextPath():获取当前应用的上下文路径

  (2)String getRealPath(String Path)获取某个资源的绝对路径


  (3)全局初始化参数


在web.xml设计全局初始化参数:

< context-param>

    <param-name>encoding</param-name>

   <param-value>utf-8</param-value>

</context-param>

获取全局的初始化参数,就再也不能使用SrevletConfig对象.getInitParamter来获取

只能使用ServletContext对象的.getInitParamter();


实现动态网页:

Servlet : java代码 (主)              +    html片段 (辅)             ----->动态网页

Jsp:          java代码(辅)                +    html页面(主)             ------->动态网页


---------------------------------------------------------------------------------------------------

Servlet

     (1)接收请求参数,封装对象

     (2)调用业务方法处理请求

     (3)控制界面跳转----》jsp/html

jsp:

        (1)界面输出



Tomcat根/config/web.xml文件



所有以*.jsp或以*.jspx结尾的资源都交给jspServlet来处理

该类负责把jsp翻译为servlet

jsp的本质就是servlet


------------------------------------------------------------------------------------





原理:把其中的代码,原封不动的翻译到servlet类中


jsp指令:

 用来设置jsp配置信息

特点;

1.不会向客户端输出

2.指令在jsp整个文件范围内有效

3.为翻译阶段提供全局信息

---------------------------------------------------------------

<%@ 指令名称 属性 = 属性值 属性 = 属性值   %>


1.page指令:  设置当前jsp配置信息


<%@ page language="java"  contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

          language="java"   在jsp中使用的脚步语言是java

           contentType="text/html; charset=UTF-8"              用来设置当前jsp的mime类型和编码

                        等价于:     response.setContentType("text/html; charset=UTF-8");

           pageEncoding="UTF-8"                        设置jsp编码

                       等价于 :     response.setCharacterEncoding("UTF-8");



2.include指令:jsp包含其他文件


     <% @ include="page" %>


9大jsp内置对象:在jsp中预先定义好的



  内置对象                                   数据类型                                        描述

pageContext                             PageContext                         当前jsp作用域对象

request                                       HttpServletRequest                请求对象

session                                     HTTPSession                              回话对象

application                                ServletContext                             当前应用对象

response                                HttpServletReaponse                      响应对象

page                                           Object                                        当前jsp/servlet对象

config                                        ServletConfig                              当前jsp配置对象

out                                                   JSPWrite                            输出流对象

exception                                  Throwable                            异常对象,必须设置当前jsp,isErrorPage=”true“




jsp中四大作用域对象

域对象                                   数据类型                                        描述

pageContext                             PageContext                         当前jsp作用域对象

request                                       HttpServletRequest             当前请求对象

session                                     HTTPSession                         当前回话对象

application                                ServletContext                       当前应用对象


jsp动作元素:


jsp动作代码可以取代jsp中的java代码




3.raglib指令:引入标签库


jsp静态包含和动态包含的区别

     静态包含:

     <%@ include file="文件"    %>


   动态包含:

  <jsp: include page=""></jsp:inclue>


--------------------------------------------------

从结果上,二者是一样,实质的区别(包含时机不同)

静态包含:在被翻译为servlet时,合并在一起


动态包含:在翻译阶段各自翻译成servlet文件,也分别编译为各自的字节码文件,

                    在运行时期才动态合并在一起


   

----------------------------------------------------------------------------------------------------------

在开发中,如何选择

         一般的,若包含静态页面,使用静态包含

                         若包含动态页面,使用动态包含

            

           一般的,我们不会单独访问被包含的文件,所以被包含的jsp,习惯使用.jspf作为拓展名

    被包含文件:xx.jspf


总结:

 (1)forward和redirect的区别:

                请求转发:地址栏不会变

               url重定向: 地址栏会变

           

  (2)什么是jsp:

           实质是servlet

  (3)jsp的三大指令:

              page,include,raglib

  (4)jsp九大内置对象

   

   (5)jsp 四大作用域

   (6) 动态包含和静态包含的区别

--------------------------------------------------------------------------------------------------------



0 0
原创粉丝点击