JSP基础

来源:互联网 发布:网络爬虫实战 编辑:程序博客网 时间:2024/06/06 16:56

Jsp基础
1)Jsp的执行过程
tomcat服务器完成:jsp文件->翻译成java文件->编译成class字节码文件-> 构造类对象-> 调用方法
tomcat的work目录下存放jsp运行时的临时文件!!
2)Jsp语法:
1)jsp表达式:<%=变量或表达式%> 向浏览器输出变量或表达式计算的结果
2)jsp脚本: <% java代码 %> 执行java代码 原理:翻译到_jspService()方法中
3)jsp声明: <%! 变量或方法 %> 声明jsp的成员变量或成员方法
4)jsp注释: <%!– jsp注释 –%> 用于注释jsp代码,不会翻译到java文件中,也不会执行。

    3)jsp的三大指令            3.1 include指令:用于包含其他页面。原理:先合并再翻译,叫静态包含            3.2 page指令:告诉tomcat服务器如何把jsp文件翻译成java文件                 language: 翻译的动态语言。                 import: 类导入            jsp文件编码问题:                pageEncoding: 告诉tomcat服务器使用什么编码翻译jsp文件(jsp->java文件)                contentType: tomcat服务器发送给浏览器的数据编码(tomcat服务器->浏览器)             异常错误相关的:                errorPage:  指定当前jsp页面的错误处理页面。                isErorrPage:  指定当前页面是否为错误处理页面。false,不是错误处理页面,则不能使用                              exception内置对象;true,是错误处理页面,可以使用exception内置对象。                配置全局的错误处理页面:
  <!-- 全局错误处理页面配置 -->  <error-page>    <error-code>500</error-code>    <location>/common/500.jsp</location>  </error-page>  <error-page>    <error-code>404</error-code>    <location>/common/404.html</location>  </error-page>
                session:  是否开启session功能。false,不能用session内置对象;true,可以使用session内                              置对象。                buffer:  jsp页面的缓存区大小。                isELIgnore: 是否忽略EL表达式。

Jsp的内置对象(重点)
2.1 什么是内置对象?
在jsp开发中,会频繁使用到一些对象
。例如HttpSession,ServletContext,ServletContext,HttpServletRequet。如果我们每次要使用这些对象都去创建这些对象就显示非常麻烦。所以Sun公司设计Jsp时,在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,而开发者只需要直接使用这些对象调用方法即可!,这些创建好的对象就叫内置对象!!!!

                举例:                servlet:                         HttpSession session = request.getSession(true); (需要开发者做)                jsp:                    tomcat服务器:  HttpSession session = request.getSession(true);(不需要开发者做)                    开发者做的: session.getId();        2.2 9大内置对象        内置对象名          类型           request     HttpServletRequest          response      HttpServletResponse           config        ServletConfig        application        ServletContext         session         HttpSession        exception        Throwable        page            Object(this)        out             JspWriter        pageContext     PageContext 

pageContext对象
pageContext对象的类型是PageContext,叫jsp的上下文对象

         1)可以获取其他八个内置对象
    public class 01_hello_jsp {                    public void _jspService(request,response){                        创建内置对象                        HttpSession session =....;                        ServletConfig config = ....;                        把8个经常使用的内置对象封装到PageContext对象中                        PageContext pageContext  = 封装;                        调用method1方法                        method1(pageContext);                    }                    public void method1(PageContext pageContext){                        希望使用内置对象                        从PageContext对象中获取其他8个内置对象                        JspWriter out =pageContext.getOut();                        HttpServletRequest rquest =     pageContext.getRequest();                        ........                    }            }
            使用场景: 在自定义标签的时候,PageContext对象频繁使用到!!!

ServletContext context域
HttpServletRequet request域
HttpSession session域 –Servlet学习的
PageContext page域 –jsp学习的

            作用: 保存数据和获取数据,用于共享数据            #保存数据                1)默认情况下,保存到page域                        pageContext.setAttribute("name");                2)可以向四个域对象保存数据                        pageContext.setAttribute("name",域范围常量)            #获取数据                1)默认情况下,从page域获取                        pageContext.getAttribute("name")                2)可以从四个域中获取数据                        pageContext.getAttribute("name",域范围常量)                    域范围常量:                        PageContext.PAGE_SCOPE                        PageContext.REQUEST_SCOPE                        PageContext..SESSION_SCOPE                        PageContext.APPLICATION_SCOPE                3)自动在四个域中搜索数据                        pageContext.findAttribute("name");                    顺序: page域 -> request域 -> session域- > context域(application域)

四个域对象:
pageContext page域
request request域
session session域
application context域

        1)域对象作用:                保存数据  和 获取数据 ,用于数据共享。        2)域对象方法:                setAttribute("name",Object) 保存数据                getAttribute("name")  获取数据                removeAttribute("name") 清除数据        3)域对象作用范围:                page域: 只能在当前jsp页面中使用(当前页面)                request域: 只能在同一个请求中使用(转发)                session域: 只能在同一个会话(session对象)中使用(私有的)                context域: 只能在同一个web应用中使用。(全局的)
0 0
原创粉丝点击