zoukankan      html  css  js  c++  java
  • jsp,javaBean,过滤器拦截器

                                                                                  jsp开发技术

    一:

    指令语句:用来提供整个jsp网页的相关信息。

    <%@ 指令名     属性1=“属性值”      属性2=“属性值”  属性n=“属性值”%>

    jsp程序片段(包括jsp声明):

    <%        java程序                    %>

    jsp表达式:

    <%=任何java逻辑取值         %>

    二:

    jsp隐含对象:

    Servlet类的_jspServlet()方法定义了九个jsp隐含对象,编写jsp时可以利用这9个隐含对象与jsp的执行环境进行互动。

      servlet相关的隐形对象

    page:代表jsp本身,是当前jsp转换成的servlet类的实例,能调用servlet类中定义的方法。

    config:被servlet容器用来给servlet初始化时给其传递配置信息,该对象存放着servlet初始的数据结构。

      I/O相关的隐形对象

    out:该对象把结果输出在网页上,用来管理控制buffer缓冲区和输出流outputstream

    request:包含所有请求信息(用户主机信息等)。

    response:主要用于将后台处理结果传回前台。 常用方法还有addCookie(Cookie  cookie);

            Context相关的隐形对象

    session:表示目前某个用户的会话状态。  常用方法:getId()——取得session的id

    application:用来取得或更改servlet的设定。

    pageContext:能够存取其他隐含对象

      error相关的隐含对象

    三:

    对象的范围(4种)

    每个对象都有一个范围属性,该属性规定了什么时间内,哪些页面可以访问这些对象。

    1:页面范围

     此范围对象只能在创建对象的页面中访问。这些对象被绑定到pageContext对象中,可以调用pageContext对象的getAttribute()来访问page范围的对象。

    2:请求范围(其他范围都是一个对象在该范围内,此范围需要两个对象来共同完成)

    一次请求响应(所以说的不包含重定向)可能需要跨越多个servlet,两种转发方法都能实现:faword和include,两种方法的区别是,faword转发后,转发到的servlet的reponse不能使用前一个servlet的响应体信息,而include则可以。

    3:会话范围

    JSP容器为每一次会话创建一个session,从开启浏览器到关闭浏览器可以在不同页面访问这个session。

    4:应用范围

    在web应用程序运行期间,所有页面都可以访问application对象。

    对象属性的范围(4种)

    权限修饰符用于定义:某对象的各个属性,行为分别对其他类文件的能见度。(在其他类中可以访问该类对象的哪些属性,可以操作该类对象的哪些行为。)

    对于一类对象的属性和行为,允许四种修饰符:public,无修饰符,protected,private

    作用域          当前类    同一package   子孙类     其他package

        public                 √               √                   √               √

        protected       √       √              √          ×

        friendly          √       √             ×           ×

        private          √       ×             ×           ×

    javaBean的三要素

    javaBean类必须有一个无参的构造方法

    javaBean类属性应定义为私有

    javaBean类定义set,get方法来对属性进行操作

     private static final    JspFactory   _jspxFactory = JspFactory.getDefaultFactory();

     PageContext  _jspx_page_context= _jspxFactory.getPageContext(this, request, response, null, true, 8192, true);

     Counter test = null;

     test = (Counter)_jspx_page_context.getAttribute("test", 2);
          if (test == null) {
            test = new Counter();
            _jspx_page_context.setAttribute("test", test, 2);
          }

    当启动servlet容器(Catallina)时,容器先查找配置文件web.xml,根据配置的每一个servlet创建一个实例(多线程单实例模式,可以让同一个servlet类可以创建多个实例,但一般不这么做)。每一个servlet实例只被初始化一次(执行init()方法)。

    servletContext类用来与servlet容器通信,被包含在servletConfig对象中。每个webapp只对应一个servletContext。

    cookie:

    Cookie userAccount=new Cookie("userAccount",URLEncoder.encode(name,"UTF-8"));
            userAccount.setMaxAge(60*60*90);//以秒为单位
             response.addCookie(userAccount);

    Cookie[] cookies = request.getCookies();//这样便可以获取一个cookie数组
             for(Cookie cookie : cookies){
                 String cookiename = cookie.getName();// get the cookie name
                 System.out.println("接受到浏览器cookiename——"+cookiename);
                 String cookieValue = cookie.getValue(); // get the cookie value
                 System.out.println("接受到浏览器cookieValue——"+URLDecoder.decode(cookieValue, "UTF-8"));
             }

                                                                                过滤器和拦截器

    https://zhidao.baidu.com/question/583953960492530045.html

    servlet过滤器:

    在servlet被调用前检查request并修改request头和request内容,在servlet被调用/执行后检查response并修改response头和内容。

    servlet过滤器不仅可以过滤servlet这种web组件,也可以过滤jsp,html等web组件。

    servlet过滤器类必须实现javax.servlet,Filter接口,这个接口中有三个方法是servlet类必须实现的:

    init(FilterConfig fg):servlet过滤器的初始化方法,此方法可以读取web.xml中的servlet过滤器参数。

    doFilter(ServletResquest s,ServletResponse ss,FiterChain fc):此方法完成过滤器的实际操作,客户请求与servlet过滤器关联的URL时,servlet容器调用过滤器的此方法。FilterChina参数用于访问后续过滤器。

    destory():servlet容器销毁过滤器实例时调用此方法。

    监听器:

    ServletContext接口是Servlet中最大的接口,呈现了web应用的servlet视图。每个web应用都会有一个servletContext对象与之关联。

    新生的小心情
  • 相关阅读:
    Online
    C语言的原码,反码,补码
    PHP常用函数
    [javascript] npx 命令简单使用
    [javascript] vue的实例生命周期钩子函数
    curl扩展post请求http接口报错:failed creating formpost data
    [javascript] 基于elementui的后台界面开发
    [javascript] var let const声明变量的区别
    [PHP] 实现oauth下的单点登陆
    [日常] KRA与KPI 绩效考核
  • 原文地址:https://www.cnblogs.com/jianmianruxin/p/7765259.html
Copyright © 2011-2022 走看看