精华内容
下载资源
问答
  • Web知识点总结

    千次阅读 2014-03-24 22:06:20
    1.label的for属性-----绑定小伙伴 http://www.cnblogs.com/lixlib/archive/2011/10/19/label-for.html

    1.label的for属性-----绑定小伙伴

    http://www.cnblogs.com/lixlib/archive/2011/10/19/label-for.html

    2.div和span的区别

    http://www.divcss5.com/rumen/r79.shtml#top

    http://zh.wikipedia.org/wiki/Span%E4%B8%8Ediv

    3细说Form表单

    http://www.cnblogs.com/fish-li/archive/2011/07/17/2108884.html

    4.linux系统myeclipse中的Access restriction:

    解决方案1: 
    Eclipse 默认把这些受访问限制的API设成了ERROR。 
    Windows -> Preferences -> Java -> Compiler -> Errors/Warnings -> 
    Deprecated and trstricted API -> Forbidden reference (access rules): -> change to warning 

    解决方案2: 
    只需要在project build path中先移除JRE System Library,再添加库JRE System Library,重新编译后就一切正常了。 


    解决方案3: 
    工程上右键->工程属性->java builder path->Libraries标签,点击JRE System Library里面的Access rules,add sun/** 为accessible,如果该项存在,就edit。 

    解决方案4: 
    Windows -> Preferences -> Java -> Installed JREs -> 选择用的JDK -> Edit -> Add External JARs

    原文地址:http://blog.sina.com.cn/s/blog_6714fba70100x6mz.html


    5.dom4j,dom,sax,jaxp解析xml文件

    DOM解析将文件读取到内存中生成DOM树,如果文件量过大,则无法使用
    SAX解析顺序读入所需要的文件内容,不会一次性全部读取,不受文件大小的限制
    DOM解析适合于对文件进行修改和随机存取操作
    SAX适合于大文件读取操作
    无论是JDOM还是DOM4J,都是融合了DOM解析对XML文件的修改、存取操作优点和SAX解析对大文件读取的优点,没有说基于哪一个

    展开全文
  • JAVA WEB 知识点总结

    2021-03-17 16:19:10
    使用idea创建java web项目 1. 2. 3.第三步取名即可了 4.配置Tomcat 5.左侧点击加号新建本地Tomcat即可 关于XML xml(可扩展标记语言) 特点: 1.xml具有平台无关性,是一门独立的标记语言 2.xml具有自我描述性 为...

    使用idea创建java web项目

    1.List item
    2.
    在这里插入图片描述
    3.第三步取名即可了
    4.配置Tomcat
    在这里插入图片描述
    5.左侧点击加号新建本地Tomcat即可
    在这里插入图片描述

    关于XML

    1. xml(可扩展标记语言)
      特点:
      1.xml具有平台无关性,是一门独立的标记语言
      2.xml具有自我描述性
    2. 为什么学习xml
      1.网络数据传输(主要用JSON)
      2.数据存储
      3.配置文件(XML)

    servlet常见格式

    <servlet>
        <servlet-name>aa</servlet-name>//servlet的名字要对应servlet-mapping中的名字
        <servlet-class>kkb.xzk.Demo1</servlet-class>//配置文件所在的位置
    </servlet>
    <servlet-mapping>
        <servlet-name>aa</servlet-name>//servlet的名字要对应servlet中的名字,去寻找
        <url-pattern>/tologin</url-pattern>//对应前端的请求路径
    </servlet-mapping>
    

    关于XML的面试题
    java中有几种xml解析方式?
    答:4种
    (以下是按照小编的理解写的)

    1. SAX解析:小学生读书,一行一行读
      优点:1.遇到问题直接提问(处理)2.看到后面忘记前面
      缺点:单向阅读,无法同时访问不同数据

    2. DOM解析:初中生被古文,先背下来再理解
      优点:双向解析,完全掌握内容
      缺点:累(消耗资源较大)

    3. JDOM解析:有特定java模板,高中生背课文,有方法,背的更快
      优点:使用具体类不用接口,简化了DOM的API,大量使用了java集合列,方便java开发人员
      缺点:没有较好的灵活性,性能不是那么优异

    4. DOM4J解析:集结了更多的优点,目前大部分开源项目中大量采用DOM4J

    DOM4J解析XML

    1. 引入jar文件 dom4j.jar 
    2. 创建一个指向XML文件的输入流 FileInputStream fis = new FileInputStream("xml文件的地址"); 
    3. 创建一个XML读取工具对象 SAXReader sr = new SAXReader(); 
    4. 使用读取工具对象, 读取XML文档的输入流 , 并得到文档对象 Document doc = sr.read(fis); 
    5. 通过文档对象, 获取XML文档中的根元素对象 Element root = doc.getRootElement();
    

    对于java,js,xml,json描述对象的区别

    一本书
        书名
        简介
    
      java
         class Book{
                 private String name;
                 private String info;
                 get/set....
         }
         Book b = new Book();
         b.setname("金苹果");
         b.setinfo("种苹果");
    
      js
         var b = new Object();
         b.name="金苹果";
         b.info="种苹果";
    
      XML
         <book>
         <name>金苹果</name>
         <info>种苹果</info>
         </book>
    
      JSON
         {
            "name":"金苹果",
            "info":"种苹果"
         }
    

    Servlet

    什么是servlet?
    Servlet是用java编写的服务器端程序,起主要功能在于交互式地浏览和修改数据,生成动态的web内容,Servlet是指任何实现了这个Servlet接口的类
    在这里插入图片描述

    Servlet工作模式
    1.客户端发送请求到服务器
    2.服务器启动并调用Servlet,Servlet根据客户端请求生成相应内容并将其传给服务器
    3.服务器将相应返回客户端

    Servlet API
    在这里插入图片描述
    Servlet与web.xml

     <servlet>
     <servlet-name>⾃定义名称</servlet-name>
     <servlet-class>处理请求的类的完整路径</servlet-class>
     </servlet>
     <servlet-mapping><!-- mapping 表示映射 -->
     <servlet-name>⾃定义名称</servlet-name>
     <url-pattern>请求名</url-pattern>
     </servlet-mapping>
    

    标签的执行顺序
    前端请求过来以后–>web.xml–>servlet-mapping标签中的url-pattern标签中的内容和请求名
    进⾏匹配->匹配成功后找对应的servlet-mapping标签中的servlet-name->
    去servlet标签中找和上⼀个servlet-name相同的name值->去找servlet标签中
    的servlet-class中处理类的完整路径

    Servlet生命周期和工作原理
    1.生命周期
    当客户端发送第一次请求后,由容器(web服务器(Tomcat))去解析请求,根据请求找到相对应的Servlet,判断该类的对象是否存在,不存在则创建servlet实例,调取init()方法,进行初始化操作,初始化完成后调取service()方法,由其判断客户端的请求方式,是get或者post方法,对应执行doget()或者dopost()方法,处理完成后,做出相应结果给客户端,单次请求处理完毕,第二次请求时不会执行init()方法,直接执行service()方法,以此继续,直到服务器关闭
    在这里插入图片描述
    2.工作原理
    (1).Servlet接口定义了Servlet与servlet容器之间的契约:Servlet容器将Servlet类载入内存,并产生Servlet实例和调用它的具体方法,在一个应用程序中,每种Servlet类型只能有一个实例

    (2).用户请求致使Servlet容器调用Servlet的Service()方法吗,并传入一个ServletRequest对象和一个ServletResponse对象,ServletRequest对象和ServletResponse对象都是由Serlvet容器封装(例如Tomcat)好的,不需要程序员去实现

    (3).ServletRequest中封装了当前的Http请求 ,因此,开发人员不必解析和操作原始的Http数据。ServletResponse表示当前用户的Http响应,程序员只需要操作ServletResponse对象就能把响应轻松的发回给用户。

    (4).对于每一个应用程序,Servlet容器还会创建一个ServletContex对象。这个对象封装了上下文(应用程序)的环境详情。每个应用程序只有一个ServletContex。每个Servlet对象也都有一个封装Servlet配置的ServletConfig对象。

    请求(SerlvetRequest)

    HttpServletRequest表示Http环境中的Servlet请求

    常用方法

    1. String getParamenter(String name)根据表单组件名称获取提交数据,返回值是String
    2. String[]getParameterValues(String name) 获取表单组件对应多个值的请求数据
    3. void setCharaterEncoding(String charset)指定每个请求的编码(针对post请求才起作用)
    4. RequestDispatcher getRequestDispathcer(String path) (跳转页面)
      返回一个 RequestDispathcer对象,该对象的forward()方法用于转发请求
     request.getRequestDispatcher("../success.jsp").forward(request,response);
    

    (5).存值 request.setAttribute(“key”,value);
    (6).取值 request.getAttribute(“key”)取值后需要向下转型

    String a = (String)request.getAttribute("uname");
    

    客户端发送给服务器的方法
    法一:通过表单get/post提交

    法二:通过a标签发送数据(get提交)

    <a href = "/login?name=12&password=123">
    

    注释:第一个参数使用?拼接,只有的参数都是用&拼接,获取数据还是通过 String name = request.getParameter(“name”);

    法三:通过地址栏直接拼接-get请求

    法四:js提交数据-get请求
    location.href = “目标请求?key=value&key=value”

    法二和法三都属于get提交方式,表单提交可以使用get,post提交方式

    get/post 提交的区别

    1. get请求:请求时数据会附加在URL之后一?分割URL和传输数据,多个参数用&连接。URL的编码采用的是ASCII编码,而不是UNICLED,所以,所有的非ASCII字符都要编码之后再传输
    2. post请求:post请求会把请求的数据放在HTTP请求包的包体中。上面的item=bandsaw就是事迹的传输数据,
      小总结:get请求会将数据暴露在地址栏中,而post请求不会
    3. 传输数据的大小:post>get,get请求收到URL的约束,而post请求受到各服务器对其大小的约束
    4. 安全性:post>get

    处理请求乱码问题
    法一:setCharacterEncoding(“UTF-8”);post提交时管用

    法二:String s = new String(变量名.getBytes(“ISO-8859-1”),“UTF-8”)//针对于get提交时中文乱码

    String s = new String(request.getParameter("key").getBytes("ISO-8859-1"),"GBK")
    

    法三:修改Tomcat重点配置文件://使用get提交
    在Tomcat⽬录结构\conf\server.xml中设置字符集

    <Connector port="8080" protocol="HTTP/1.1" 
     connectionTimeout="20000"
     redirectPort="8443" URIEncoding="UTF-8" />
    

    响应

    在Service API中,定义一个HttpServletResponse接口,它继承自ServletResponse接口,专门用来封装HTTP响应消息。在HttpServletResponse接口中定义了向客户端发送响应状态码,响应信息头,响应信息体的方法。

    常用方法:

    1. void addCookie(Cookie var1);//给这个响应添加了一个cookie
    2. void sendRedirect(String var1);//发送一条响应码,将浏览器跳转到指定的位置
    3. printWriter getWriter() 获得字符流,通过字符流的write(String s)方法可以将字符串设置到respinse缓冲区中,随后Tomcat会将response缓冲区中的内容组装成Http响应返回给浏览器端
    4. setContenType() 设置响应内容的类型

    响应图示
    在这里插入图片描述
    重定向和转发的对比
    重定向:response.sendRedirect()
    转发:request.getRequestDispathcer(…/success.jsp).forward(request,response);
    相同点:都是用来跳转页面的
    不同点:
    一. 重定向时地址栏会改变,request中存储的数据会丢失。 转发是地址栏显示的是请求页面的地址,request数据可以保存
    二:转发属于一次请求一次响应,重定向属于两次请求(地址栏修改了两次)两次响应

    会话(session)

    会话的概念:从打开浏览器到关闭浏览器,期间访问服务器就成为一次对话(默认30分钟)
    request存的值只能在单次请求中保存,保存的数据不能跨页面,当重定向时,request存的值会丢失
    session的数据可以在多个页面中共享,即使重定向页面,数据也不会丢失
    session中可以包含n个request

    常用方法:

    void setAttribute(String key,Object value) //以key/value的形式保存对象值,将数据存储在服务器端

    Object getAttribute(String key) //通过key值获取对象值

    void invalidate() //设置seesion对象失效

    String getId() //获取seesinid,当第一次登录后,session会产生唯一一个id,浏览器之后访问如果发现id还是之前的那个id,那么说明是同一个会话

    void setMaxInactiveInterval(int interval) //设置session的非活动时间
    例:
    法一:在servlet中添加(单位:秒)
    session.setMaxInactiveInterval(10*60);//设置有效时间为10分钟
    法二:修改web.xml(单位:分)

    <session-config>
     <session-timeout>10</session-timeout>
     </session-config>
    

    获得初始化参数

    局部定义初始化参数

    第一步,在web.xml中的servlet加入
    <init-param>
     <param-name>encoding</param-name>
     <param-value>utf-8</param-value>
     </init-param>
     第二步在servlet获取初始化参数重写init()方法
     public void init(ServletConfig config) throws ServletException {
     encoding= config.getInitParameter("encoding");
    }
    

    全局初始化参数修改

    第一步:定义context-param
    <context-param>
     <param-name>bianma</param-name>
     <param-value>utf-8</param-value>
     </context-param>
     第二步:获取数据
     @Override  // 请求->init()->service()->doget/dopost->destory();
     public void init(ServletConfig config) throws ServletException {
    bianhao=config.getServletContext().getInitParameter("bianma");
    }
    

    servlet3.0

    注解(提供给程序读取的信息)–注释(提供给程序员看的信息)
    注解的格式:@开头 如 :@Overrride
    @WebServlet注解配置Servlet
    @WebServlet常用属性

    在这里插入图片描述

    补充

    1. loadOnStartup属性:标记容器是否启动应用时就加载Servlet,默认不配置或数值为负数是表示时客户端第一次请求Servlet时加载;0或者证书表示启动应用就加载,正数情况下,数值越小,优先级越高,越先加载

    例:@WebServlet(value="/test1",loadOnStartup=1)

    1. name属性:可以指定也可以不指定,通过getServletName()可以获取到,如果不指定则为Sevelt的完整类名(路径)

    2. urlPatterns/value属性:String[]类型,可以配置多个映射,如:urlPatterns={"/user/test","/user/demo"}

    3. urlPatterns的常用规则:
      /*或者/ : 拦截所有
      *.do: 拦截指定后缀
      /user/test:拦截路径

    JSP

    什么是JSP
    JSP是一个简化的Sevlet设计,它是在传统的html网页中插入java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件。用JSP开发的web应用时跨平台的。

    JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计

    jsp动态页面(页面数据可以动态更新,支持嵌套java代码和html代码)

    JSP的原理

    在这里插入图片描述

    JSP中如何嵌套java代码
    使用小脚本(<%!java代码%>)

    JSP九个内置对象

    1. request 对象(客户端–>服务器)
      request对象是javax.servlet.httpServletRequest类型的对象。该对象代表了客户端的请求信息,主要用于接收通过HTTP协议传送到服务器的数据(包括头信息,系统信息,请求方式以及请求参数等)。request对象的作用域为一次请求

    2. response对象(服务器–>客户端)
      response代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。其作用域在JSP页面中。

    3. session(会话)对象(服务器–>用户)
      session对象是服务器自动创建的与用户请求相关的对象,服务器为每个用户都生成了一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map来保存数据,因此保存数据的格式为"key/value"

    4. application对象
      application对象可将信息保存在服务器中,直到服务器关闭,比session的生命周期更长,类似于"全局变量"ServletContext

    区别:request:单次请求
    session:浏览器访问期间(会话期间)
    application:服务器启动期间,所有的数据都可以跨浏览器

    1. out对象
      out对象用于web浏览器内输出信息,并且管理应用服务器上的输出缓冲区,在使用其输出数据时,可以对数据缓冲区进行操作,即使清楚缓冲区的残余数据,为其他的输出让出缓冲空间,输出完毕之后,要即使关闭输出流

    2. pageContext对象
      pageContext对象的作用是取得任何范围的参数,通过它可以获取JSP页面的out,request,reponse,session,application等对象。pageContext对象的创建的初始化都是由容器来完成的,在JSP页面中可以直接使用pageContext对象

    3. config对象
      config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取 一个config对象。当一个Servlet 初始化时,容器把某些信息通过config对象传递给这个 Servlet。 开发者可以在 web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。

    4. page对象

    5. exception对象

    EL表达式

    语法格式:${需要展示信息的名字}
    当表达式没有指定变量或者对象范围时,容器会依次从pageContext–>request–>session–>application中查找该变量或者对象

    EL中基础的操作符
    在这里插入图片描述

    JSTL

    JSTL标准标签库是一个jsp标签集合,封装了JSP应用的通用核心功能

    JSTL支持通用的,结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。除了这些,它还提供了一个框架来使用JSTL的自定义标签

    使用方法:

    1. 下载 jakarta-taglibs-standard-1.1.2.zip 包并解压,将 jakarta-taglibs-standard-1.1.2/lib/ 下的两个 jar 文 件:standard.jar 和 jstl.jar 文件拷贝到 /WEB-INF/lib/ 下。
    2. 在JSP页面中引入<%@ taglib prefix=”页面使用的名称” uri=”功能范围的路径”%>
      例:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

    在这里插入图片描述

    展开全文
  • 总结了javaweb的知识点,非常基础,没事可以拿出来复习下微博基础知识
  • Java Web 知识点总结

    2020-02-26 13:19:09
    [1]前端的框架(前端知识的概括[js、JQ]) A、JS [1]JS中的基础的语法 [2]BOM对象 [3]DOM对象 B、JQ 对JS的封装 javascriptQuery JQ的特点就是在获得元素上多种多样 ...

    [1]前端的框架(前端知识的概括[js、JQ])

           A、JS

                [1]JS中的基础的语法

                [2]BOM对象

                [3]DOM对象

           B、JQ

                对JS的封装 javascriptQuery

                JQ的特点就是在获得元素上多种多样

                JQ实现动画效果比较的简单

        [2]JSP+servlet

           A、Servlet 的作用

                 1、使用Servlet进行网页的开发

                 2、进行流程控制 {这个作用做3件事情}

           B、Servlet 的生命周期

                 0、类加载

        (url)servlet123-----servlet----servlet----com.lzj.servlet.MyServlet

          Class  clazz=  Class.forName("com.lzj.servlet.MyServlet");

          Object   obj= clazz.newInstance();

                 1、实例化  离不开反射

                 2、初始化--init离不开反射

                 2、服务请求---service离不开反射

                 3、销毁--des离不开反射

           C、Servlet中方法的使用

                 (1) 读取初始化参数

                  (2)读取全局参数

           D、Servlet中注解的使用: @WebServlet ,注意 :书写这个注解后就不用去web.xml中配置了Servlet相关的操作。

           E、请求和响应

           F、中文乱码的处理解决

              {GET方式乱码(A、在tomcat中servce.xml中进行配置

                                      B、使用数组)

    数组方式解决:

    byte []  bytes = str.getBytes("iso-8859-1");

    String  cstr =  new String(bytes,"utf-8");

          POST乱码解决:req.setCharacterEncoding("utf-8");}

           G、浏览器端控制的跳转方式有几种

                A、提交form表单{get/post}

                B、超链接{get}

                C、URL地址{get}

              服务器端控制的跳转方式有几种 ?

               A、转发 {只可以在当前的项目中跳转}

               B、重定向{可以跳转到任何的资源位置}

    使用转发和重定向的参考依据: 在即将跳转的页面是否需要携带数据 。

           H、路径问题

                 [1]绝对路径

    绝对路径方式:(以Http开始,路径中含有IP地址、端口、访问的地址)

                 [2]根路径

    根路径方式:用“/”开始(/代表当前服务器),后面紧跟上下文路径。

                 [3]相对路径A

                 [4]相对路径B

    [注]:重定向中“/”代表的是当前服务器;转发中“/”代表的是当前项目。

          I、Session和Cookie

              作用:解决HTTP无状态

             Session的数据是保存到服务器中,在浏览器中cookie保存的是JsessionID。

             session失效的时机

                  [1]手动注销session

                  [2]超过session的最大不活动时间

                  [3]关闭浏览器  

     

      Cookie:在浏览器中{默认:本次会话、可以自己指定}

          K、JSP

                JSP的本质就是一个servlet

                JSP页面中包含的元素

                   {

                      [1]HTML静态网页

                      [2]java代码{小脚本<%%>  声明式   表达式}

                      [3]指令表示

                      [4]动作标识

                      [5]注释

                   }

    展开全文
  • java web 知识点总结

    千次阅读 2017-09-11 10:26:13
    1、什么是Servlet? 答:可以从两个方面去看Servlet: a、API:有一个接口servlet,它是servlet规范中定义的用来处理客户端请求的程序...b、组件:服务器端用来处理客户端请求的组件,需要在web.xml文件中进行配置。

    1、什么是Servlet?

    答:可以从两个方面去看Servlet:

    a、API:有一个接口servlet,它是servlet规范中定义的用来处理客户端请求的程序需要实现的顶级接口。

    b、组件:服务器端用来处理客户端请求的组件,需要在web.xml文件中进行配置。

    2、Servlet的生命周期,并说出Servlet和CGI的区别?

    答:servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。

          这个生存期由javax.servlet.servlet接口中的init、service、destroy方法表达。

         web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现

         根据请求的不同调用不同的do**()方法。结束服务,web容器调用servlet的destroy()方法。

         

    区别:

    Servlet处于服务器进程中,它通过多线程运行service()方法,一个实例可以服务于多个请求,并且实例一般不会被销毁;而

    CGI对每个请求都产生一个新的进程,服务完成后就销毁,所有效率低于Servlet。

     3、Servlet的基本架构

    答:

    复制代码
    public class ServletName extends HttpServlet
    {
         //初始化方法
         public void init()
         {
           ……
         }
         //GET请求处理的方法
         public void doGet(HttpServletRequest request,HttpServletResponse response)
         {
            ……
         }
          //POST请求处理的方法
         public void doPost(HttpServletRequest request,HttpServletResponse response)
         {
             ……
         }
           //结束服务的方法
         public void destroy()
         {
             ……
         }
    }
    复制代码

    4、Servlet API中forware()和redirect()的区别?

    答:

    a、浏览器显示

         重定向会改变URL地址,请求转发不会改变URL地址。

    b、资源共享

         重定向不可以资源共享,请求转发可以。

    c、功能

        重定向可以用URL绝对路径访问其他Web服务器的资源,而请求转发只能在一个Web应用程序内进行资源转发,即服务器内部的一种操作。

    d、效率

        重定向效率低,相当于再一次请求;请求转发效率相对较高,跳转仅发生在服务器端。

    5、request.getParameter()和request.getAttribute()的区别?

    答:

    a、request.getParameter()获取的类型是String;

        request.getAttribute()获取的类型是Object

    b、request.getPrameter()获取的是POST/GET传递的参数值和URL中的参数;

         request.getAttribute()获取的是对象容器中的数据值/对象

    c、request.setAttribute()和request.getAttribute()可以发送、接收对象;

        request.getParamter()只能接收字符串,官方不开放request.setParamter()(也就是没有这个方法)

        setAttribute()和getAttribute()的传参原理:

        setAttribute()是应用服务器把这个对象放在该页面所对应的一块内存中去,当你的页面服务器重定向到另外一个页面时,

        应用服务器会把这块内存拷贝到另一个页面所对应的那块内存中。这个就可以通过getAttribute()获取到相应的参数值或者对象。

    6、JSP有哪些内置对象?作用分别是什么?

    答:JSP一共有9个内置对象:

    request:负责得到客户端请求的信息,对应类型:javax.servlet.http.HttpServletRequest

    response:负责向客户端发出响应,对应类型:javax.servlet.http.HttpServletResponse

    session:负责保存同一客户端一次会话过程中的一些信息,对应类型:javax.servlet.http.httpsession

    out:负责管理对客户端的输出,对应类型:javax.serlvet.jsp.jspwriter

    application:表示整个应用环境的信息,对应类型:javax.servlet.servletcontext

    config:表示ServletConfig,对应类型:javax.servlet.servletconfig

    exception:表示页面中发生的异常,可以通过它获得页面异常信息,对应类型:java.lang.exception

    pagecontext:表示这个JSP页面上下文,对应类型:javax.servlet.jsp.pagecontext

    page:表示当前JSP页面本身。

    7、JSP有哪些动作?作用分别是什么?

    答:JSP一共有以下6中基本动作

      JSP:include       (当页面被请求的时候引入一个文件)

      JSP:forward      (将请求转到另一个页面)

      JSP:useBean     (获得JavaBean的一个实例)

      JSP:setProperty (设置JavaBean的属性)

      JSP:getProperty (获得JavaBean的属性)

      JSP:plugin         (根据浏览器类型为Java插件生成object或者embed两种标记)

    8、JSP常用指令有哪些?

    答:page、include、taglib

    a、page指令:定义页面的一些属性,常用属性:

    contentType="text/html;charset=utf-8";    向浏览器端输出数据的编码

    pageEncoding="utf-8";                            JSP编译成java文件时所用的编码

    session="true"                                        是否自动创建session

    b、include指令:引入一个静态的JSP页面

    c、taglib指令:引入一个标签库

     9、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso-8859-1等,如何输出一个某种编码的字符串?

    答:下面这个例子是将iso-8859-1转换成utf-8编码方式。

    复制代码
    public String Translate(String str)
    {
       String s="";
       try{
             s=new String(str.getBytes("iso-8859-1"),"UTF-8");
             s=str.trim();
       }catch(Exception e){
            System.err.println(e.getMessage());
        }
    return s; }
    复制代码
    10、get和post的区别?

    a、get是用来从服务器上获取数据,而post是用来向服务器传递数据;

    b、get将表单中数据按照variable=value的形式,添加到action所指向的URL后面,并且两者用"?"连接,变量之间用"&"连接;

    而post是将表单中的数据放在form的数据体中,按照变量与值对应的方式,传递到action所指定的URL。

    c、get是不安全的,因为在传输过程中,数据是被放在请求的URL中;而post的所有操作对用户来说都是不可见的。

    d、get传输的数据量小,这主要应为受url长度限制;而post可以传输大量的数据,所有上传文件只能用post提交。

    e、get限制form表单的数据集必须为ASCII字符;而post支持整个IS01 0646字符集。

    f、get是form表单的默认方法。

    11、javascript常用的方面?

    答:数据校验、页面特殊效果等。

    12、常用的web容器和开发工具?

    答:容器:Tomcat、Weblogic

         工具:Eclipse、Jbuilder

     20、JSP的四种范围?

    答:a、page是代表一个页面相关的对象和属性。一个页面由一个编译好的java servlet类(可以带有include指令,但不可以带有include动作)表示。这既包括servlet又包括编译成servlet的jsp页面。

          b、request是代表与web客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个web组件(由于forware指令和include动作的关系)

          c、session是代表与用于某个web客户机的一个用户体验相关的对象和属性。一个web回话也可以经常跨域多个客户机请求。

          d、application是代表与整个web应用程序相关的对象和属性。这实质上是跨域整个web应用程序,包括多个页面、请求和回话的一个全局作用域。

    13、应用服务器有哪些?

    答:BEA Weblogic Server、IBM WebSphere Application Server、Oracle9i Application Server、JBoss、Tomcat。

    14、几种回话跟踪技术?

    答:cookie、url重写、hidden表单隐藏域、session

    15、Servlet执行时一般实现哪几个方法?

    答:

    复制代码
    public void init(ServletConfig config){}
    
    public ServletConfig getServeltConfig(){}
    
    public String ServletInfo(){}
    
    public void service(HttpServletRequest request,HttpServletResponse response){} 

    public void destroy(){}
    复制代码

    16、简述HttpSession的作用、使用方法,可用代码说明。

    答:HttpSession中可以跟踪并存储用户信息,把值设置到属性中,有两个方法:setAttribute("变量/对象","变量/对象");getAttribute("变量/对象");例如:在一个方法中用session.setAttribute("username",username);在session中设置一个属性名为username的变量或者对象,然后可以在同一个session范围内使用session.getAttribute("username"); 来得到username属性或者对象。

    17、J2EE是技术、平台还是框架?

    答:J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。

         J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。

    18、cookie和session的作用、区别、应用范围。

    答:a、cookie数据保存在客户端,session数据保存在服务端。

         b、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,相当重要的数据,应该使用session保存到服务端。

         c、session会在一定时间内保持在服务器上,但是会占用内存资源,当访问的用户过多,会加重服务器的负载,考虑到减轻服务器的压力,可以将不重要的数据放在cookie中持久的保存。

         d、单个cookie保存的数据不能超过4k,很多浏览器都限制站点最多保存20个cookie。

    19、JSP如何处理运行时异常(run-time)exception?

    答:可是使用页面的errorPaga属性捕捉没有处理的运行时异常,然后自动转向到一个错误处理页面,代码如下:

    <%@page errorPage="错误页面URL"%>

    如果在页面请求时出现运行时异常时,以上代码会将代码转向到错误页面,在错误页面里面,可以通过以下代码定义这个页面是错误处理页面:

    <%@page isErrorPage="true"%>

    这样描述错误信息的Throwable对象就可以在错误页面里面访问到。

     20、在servlet和JSP之间能共享session对象吗?

    答:Yes

    HttpSession session=request.getsession(false);
    session.getAttribute"变量名");   //获取保存在session容器中的变量

     21、使用JSP连接数据库连接缓冲池的最好的方法是什么?

    答:a、使用JDBC2.0中带有此服务的Driver

          b、使用提供此服务的application server

    22、在JSP中如何写文本文件?

    答:使用PrintWriter对象:

    复制代码
    <%@page improt="java.io.*"%>
    <%
          String str="HelloWorld!";
          File file=new File("1.txt");
          file.createNewFile();
          try{
               FileOutPutStream fops=new FileOutPutStream(file);
               PrintWriter pw=new PrintWriter(fops);
               pw.println(str);
               pw.flush();
               pw.close();
    }
    %>
    复制代码

    23、JSP的缺点?

    答:a、大多数的Servlet引擎不支持connection pooling。

          b、Servlet引擎没有标准。

          c、JSP与其他脚本语言的交互。

          d、不易对Java程序进行调试。

    23、在JSP页面中如何删除一个cookie?

    答:

    <%
         Cookie cookie=new Cookie("cookie名","cookie值");
         cookie.setMaxAge(0);
         cookie.setPath("/");
         response.addCookie(cookie);
    %>

    24、如何实现servlet的单线程模式?

    答:在JSP中使用page指令进行设置,具体代码如下:

    <%@page isThreadSafe="false"%>

    25、HttpServlet类中主要方法有哪些?

     26、XML文档定义有几种形式?他们之间有何本质区别?解析XML文档有哪几种方式?

    答:a、两种形式:DTD、schema

         b、本质区别:schema本身是xml的,可以被XML解析器解析(这也是从dtd上发展schema的根本目的。)

         c、有DOM、SAX、STAX等。

    DOM:处理大型文件时性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前就把整个文档装入内存,适合对XML的随机访问;

    SAX:是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载这个XML文件。当遇到向文件开头、文件结束或者标签开头、标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问。

    STAX:Streaming API for XML

     27、你在项目中用到了XML技术的哪些方面?如何实现的?

    答:用到了数据存储、信息配置两方面。

    在做数据交换平台时,将不能数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接受者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。

    在做软件配置时,利用XML可以和方便的进行,软件的各种配置参数都存储在XML文件中。

    28、EL表达式的功能,为什么要用EL表达式?(Expression Language)

    答:

    功能:

    a、从四个域对象中取出数据数据显示。

    b、取出请求参数数据显示。

    原因:

    在页面中用jsp脚本和jsp表达式来获取数据显示比较麻烦

    a、需要判断

    b、可能需要强转

     29、JSTL的功能,为什么要用JSTL?(JavaServer Pages Standard Tag Library)

    答:

    功能:主要用于基本输入输出、流程控制、循环、XML文件剖析、数据库查询及国际化和文字格式标准化的应用等。

    原因:在jsp页面做条件判断或者循环操作并输出时,比较费力。

     30、为什么要使用自定义标签?MyTag如何实现?

    答:

    原因:

    a、不想在jsp中编写java代码

    b、JSTL标签库不能满足实际项目的需求

    实现的流程:

    a、编写标签处理器类(SimpleTagSupport的实现类)

         重写doTag()

    b、编写标签库文件(WEB-INF/xxx.tld)

         整个文件的定义:<short-name>  uri

         标签的定义:<tag>

    c、在jsp页面中使用标签:

        导入标签库(xxx.tld)

        使用标签

     31、说说自动登录功能的编码实现?

    答:a、登录功能是用session实现的,就是向session对象中保存当前用户的对象。

          b、自动功能是用cookie实现的,就是登录时将用户的信息保存为持久cookie。

          c、下次访问时,读取请求中如果有用户信息的cookie就可以自动登录。

    32、如何防止表单重复提交?

    答:使用session技术:

    a、在regist.jsp页面中生成一个为一个随机值,将其保存到session中,同时将其保存为表单的隐藏域的值。

    b、在处理注册的请求时,获取session中的值,获取请求参数的值,比较两者是否相同,如果相同说明不是重复提交,请求通过同时删除session中保存的的值,如果不相同则是重复提交,不能通过。

    33Request对象的主要方法有哪些?

    答:

    setAttribute(String name,Object):设置名字为namerequest的参数值

    getAttribute(String name):返回由name指定的属性值

    getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例

    getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

    getCharacterEncoding():返回请求中的字符编码方式

    getContentLength():返回请求的Body的长度

    getHeader(String name):获得HTTP协议定义的文件头信息

    getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例

    getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例

    getInputStream():返回请求的输入流,用于获得请求中的数据

    getMethod():获得客户端向服务器端传送数据的方法

    getParameter(String name):获得客户端传送给服务器端的有name指定的参数值

    getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例

    getParametervalues(String name):获得有name指定的参数的所有值

    getProtocol():获取客户端向服务器端传送数据所依据的协议名称

    getQueryString():获得查询字符串

    getRequestURI():获取发出请求字符串的客户端地址

    getRemoteAddr():获取客户端的IP地址

    getRemoteHost():获取客户端的名字

    getSession([Boolean create]):返回和请求相关Session

    getServerName():获取服务器的名字

    getServletPath():获取客户端所请求的脚本文件的路径

    getServerPort():获取服务器的端口号

    removeAttribute(String name):删除请求中的一个属性

    34、Tomcat根目录下有哪些文件?

    答:

    a、config:配置文件存放路径

    b、webapps:项目部署的目录

    c、bin Tomcat运行需要的脚本与jar的目录

    d、lib:运行项目时所需要的jar的目录

    e、word:部署项目的缓存目录

    f、temp:临时文件的存放目录

    g、logs:记录日志的目录

    35、什么是Tomcat,怎样启动停止,配置文件,日志文件的存储?

    答:Tomcat是一种web服务器,java编写的web项目可以部署在上面,用户在客户端请求时,都是将请求发到Tomcat上,Tomcat在将请求发到对应的项目上。

    启动Tomcat:

    在windows下:进入bin目录,双击startup.bat

    在Linux下:cd进入bin目录,sh startup.sh

    在开发工具Eclipse下:右键选择debug server或者run server

    停止Tomcat:

    在windows下:进入bin目录,双击shutdown.bat

    在Linux下:cd进入bin目录,sh shutdown.sh

    在开发工具Eclipse下:右键选择stop server

    配置文件在Tomcat的config目录下

    日志文件在Tomcat的logs目录下

     36、实例化servlet有几种方式?

    答:有两种方式

    a、第一次请求时,实例化servlet对象

    b、在web.xml文件中,在servlet标签中添加loadon-startup标签,tomcat启动时就会实例化servlet对象。

    37、JSP乱码如何解决?

    答:a、JSP页面乱码

         <%@page contentType="text/html;charset=utf-8" %>

         b、表单提交时出现乱码

         request.setCharacterEncoding("utf-8");

         c、数据库出现乱码

         jdbc:mysql://localhost:3306:/user?useSSL=false&useUnicode=true&characterEncoding=utf-8;

         其实我一般的处理的方法就是配置一个过滤器对每个JSP页面进行字符集处理。

    38、session和application的区别?

    答:a、两者的作用范围不同

        session是用户级别的,application是web应用程序级别的,是一个全局作用域。

        一个用户一个session,每个用户的session不同,用户所访问的网站多个页面共享同一个session。

        一个web应用程序一个application对象,每个web应用程序的application对象不同,但是一个web应用程序的多个用户之间共享一个application。

       b、生命周期不同

       session:用户首次在网站中发出请求创建session,用户注销、离开网站或者关闭浏览器消亡。

       application:启动web服务器创建,关闭web服务器销毁。

     39、在Eclipse中调试时,怎样查看一个变量的值?

    答:在要查看的变量前先设置断点,然后选中变量,右键选择debug as →Java Application,打开debug视图,这时在Variables窗口中可以看到变量当前的值。

    如果是局部变量,也可以在局部变量窗口中查看。要知道一个方法被调用的方法调用链,可以在方法栈中查看。

     40、你们公司使用的代码配置管理工具是什么?

    答:除了说以前使用的CVS,现在新项目使用SVN了,还简要说一下使用的过程,如果有可能,还说说仓库的概念和如何使用锁之类的细节。

     41、你们项目总金额多少,多少人开发,总共花了多少个月?

    答:像巴巴运动网这种规模的项目,可以说是4、5个人开发了四五个月,费用则是四五十万。按每人每月两万收入去计算就差不多了。

     42、什么是重量级?什么是轻量级?

    答:轻量级是指它的创建和销毁不需要消耗太多的资源,意味着可以在程序中经常创建和销毁session对象。

         重量级意味着不能随意的创建和销毁它的实例,会占用太多的资源。

     43、如何从form表单中获取checkbox的值?

    答:可以在页面将checkbox的name属性设置相同,value属性取每个条目的id,在后台使用request.getParametervalues("name");获取一组值。

     44、过滤器有哪些作用?

    答:a、可以验证客户是否来自可信的网络

         b、可以对客户提交的数据进行重写编码

         c、可以从系统里获得配置的信息

         d、可以过滤掉客户某些不应该出现的词汇

         e、验证客户是否登录

         f、验证客户的浏览器是否支持当前的应用

         g、可以记录系统的日志

     45、过滤器的用法?(对客户端的请求统一编码和对客户端进行验证)

    答:实现Filter接口,同时重写Filter接口的三个方法:

         init(FilterConfig config)    用于获取FilterConfig对象

        doFilter(ServletRequest request,ServeltResponse response,FilterChain chain)   进行过滤处理一些业务

        destroy()    销毁Filter

     46、C/S与B/S的区别?

    答:有如下8个方面的不同:

    a、硬件环境的不同

      C/S:一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。
      B/S:建立在广域网之上的,不必是专门的网络硬件环境,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。
    b、对安全要求不同 
      C/S:一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。
      B/S:建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户。
    c、对程序架构不同 
      C/S:程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。
      B/S:对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。
    d、软件重用不同 
      C/S:程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好.
      B/S:对的多重结构,要求构件相对独立的功能。
    e、系统维护不同  
      C/S:程序由于整体性,必须整体考察,处理出现的问题以及系统升级。
      B/S:构件组成,方面构件个别的更换,实现系统的无缝升级。
    f、处理问题不同 
      C/S:程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关。
      B/S:建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的。 
    g、用户接口不同 
      C/S:多是建立的Window平台上,表现方法有限,对程序员普遍要求较高。
      B/S:建立在浏览器上,有更加丰富和生动的表现方式与用户交流;并且大部分难度减低,减低开发成本。
    h、信息流不同 
      C/S:程序一般是典型的中央集权的机械式处理,交互性相对低。
      B/S:信息流向可变化,B-B B-C B-G等信息、流向的变化,更像交易中心。

     47、什么是web容器?

    答:给处于其中的应用程序组件(JSP、Servlet)提供一个环境,是JSP、Servlet直接跟容器中的变量交互,不必关注其他系统问题。

    主要有web服务器来实现。例如:tomcat、weblogic、sphere、JBoss等。该容器提供的接口严格遵守J2EE规范中的web application标准。

    我们把遵守以上标准的web服务器叫做J2EE的web容器。

     48、什么是EJB容器?

    答:Enterprice Java Bean容器。它提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器

    进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如:邮件服务、事务管理……

     49、开发中都用到了哪些设计模式?用在什么场合?

    答:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次的使用

    哪些已有的解决方案,无需再重复相同的工作。主要用到了MVC设计模式。用来开发JSP/Servlet或者J2EE的相关应用。简单工厂模式等。

     50、说说你所熟悉的或听说过的J2EE中的几种常用模式?及对设计模式的一些看法。

    答:

    Session Facade Pattern:使用SessionBean访问EntityBean。 

    Message Facade Pattern:实现异步调用

    EJB Command Pattern:使用Command.JavaBeans取代SessionBean,显示轻量级访问。

    Data Transfer Object Factory:通过DTO Factory简化EntityBean数据提供特性

    Generic Attribute Access:通过AttributeAccess接口简化EntityBean数据提供特性

    Business Interface:通过远程(本地)接口和Bean类实现相同接口规范业务逻辑一致性

    EJB架构的设计好坏将直接影响系统的性能、可扩展性、可维护性、组件可重用性及开发效率。项目越复杂,项目队伍余越庞大,则越能体现良好设计的重要性。

     51、J2EE常用的设计模式?说明工厂模式。

    答:Java中一共有23中设计模式:

    Factory(工厂模式)、Builder(建造模式)、Factory Method(工厂方法模式)、ProtoType(原始模型模式)、Singleton(单例模式)、

    Facade(门面模式)、Adapter(适配器模式)、Bridge(桥梁模式)、Composite(合成模式)、Decorator(装饰模式)、

    FlyWeight(享元模式)、Proxy(代理模式)、Command(命令模式)、Interpreter(解释器模式)、Visitor(访问者模式)、

    Iterator(迭代子模式)、Mediator(调停者模式)、Memento(备忘录模式)、Observer(观察者模式)、State(状态模式)、

    Strategy(策略模式)、Template Method(模板方法模式)、Chain Of Responsibility(责任链模式)、

    工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某个类的实例,通常一组类中有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

     52、EJB2.0有哪些内容?分别用在什么场合?EJB2.0和EJB2.1的区别?

    答:规范内容包括Bean提供者,应用程序装配者,EJB容器,EJB配置工具,EJB服务提供者,系统管理员。这里面,EJB容器是EJB之所有能够运行的核心。

    EJB容器管理着EJB的创建,撤消,激活,去活,与数据库的连接等等重要的核心工作。

     53EJBJAVA BEAN的区别? 

    :Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,

    由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现

    Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。

    Enterprise Java Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访

    (跨进程、跨计算机)。EJB必须被布署在诸如WebspereWebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,

    而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件。

      54EJB的基本架构

    复制代码
    //Remote Interface接口的代码 
    package Beans; 
    import javax.ejb.EJBObject; 
    import java.rmi.RemoteException; 
    public interface Add extends EJBObject { 
    //some method declare 
    } 
    //Home Interface接口的代码 
    package Beans; 
    import java.rmi.RemoteException; 
    import jaax.ejb.CreateException; 
    import javax.ejb.EJBHome; 
    public interface AddHome extends EJBHome { 
    //some method declare 
    } 
    //EJB类的代码 
    package Beans; 
    import java.rmi.RemoteException; 
    import javax.ejb.SessionBean; 
    import javx.ejb.SessionContext; 
    public class AddBean Implements SessionBean { 
    //some method declare 
    } 
    复制代码

     55、存储过程和函数的区别

    答:存储过程是用户定义的一系列sql语句的集合,涉及特定表或者其他对象的任务,用户可以调用存储过程,而函数通常是数据库

    已定义的方法,它接受参数并返回某种类型的值并且不涉及特定用户表。

     56、什么是事务?

    答:事务时作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,

    只有这样才能成为一个事务:

    原子性:事务必须是原子工作单元,对于其数据修改,要么全都执行,要么全都不执行。

    一致性:事务在完成时,必须使所有的数据保持一致的状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如B树索引或双向链表)都必须是正确的。

    隔离性:由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前

    的状态,要么是另一并发事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播

    一系列事务,以使数据结束时的状态与原始事务执行的状态相同。

    持久性:事务完成后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。

     57、触发器分为事前触发和事后触发,两种触发有什么区别?语句级触发和行级触发有什么区别?

    答:事前触发运行于触发事件发生之前,而事后触发运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。

    语句级触发可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。

     58、EJB容器提供的服务

    答:主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。

     59、EJB的三个角色和三个对象

    答:角色:EJB角色主要包括Bean开发者、应用组装者、部署者、系统管理员、EJB容器提供者、EJB服务器提供者。

         对象:Remote(Local)接口、Home(LocalHome)接口、Bean类

     60、EJB的几种类型?

    答:会话(Session) Bean,实体(Entity)Bean、消息驱动的(Message Driven)Bean

         会话Bean又可分为有状态(Stateful)和无状态(Stateless)

         实体Bean可分为Bean管理的持续性(BMP)和容器管理的持续性(CMP)两种

     61、Bean实例的生命周期

    答:对于Stateless Session Bean、Entity Bean、Message Driven Bean一般存在缓冲池管理,而对于Entity Bean和

    Stateful Session Bean存在Cache管理,通常包含创建实例,设置上下文、创建EJB Object(create)、业务方法调用、

    remove等过程,对于存在缓冲池管理的Bean,在create之后实例并不从内存清除,而是采用缓冲池机制不断重用实例;

    而对于存在Cache管理的Bean,则通过激活或去激活机制保持Bean的状态并限制内存中实例数量。

     62、激活机制

    答:以Stateful Session Bean为例:其Cache大小决定了内存中可以同时存在的Bean实例的数量,根据MRU或NRU算法,

    实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个EJB实例业务方法时,如果对应的EJB Object发现自己

    没有捆绑对应的Bean实例,则从其去激活Bean存储中(通过序列化机制存储实例)回复(激活)此实例。状态变迁前会

    调用对应的EJB Active 和EJB Passivate方法。

     63、remote接口和home接口的作用

    答:remote接口中定义了业务方法,用于EJB用户调用业务方法。

         home是EJB工厂用于创建、移除和查找EJB实例

     64、客服端调用EJB对象的几个基本步骤

    答:a、设置JNDI服务工厂以及JNDI服务地址系统属性

       b、查找home接口

       c、从home接口调用create方法创建remote接口

       d、通过remote接口调用其业务方法


     

    展开全文
  • java web知识点总结

    2016-12-03 22:30:00
    创建:启动服务器时就创建,服务为每个web应用创建该项目的ServleContext 摧毁:关闭服务器或者项目从服务器中移除。 注:无论是访问Servlet,还是jsp,html 该对象都被创建。 2.HttpSession 创...
  • Java-web知识点总结

    2018-07-12 18:17:11
    Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象...
  • JAVA WEB知识点总结

    2015-08-16 13:37:00
    http://www.cnblogs.com/xdp-gacl/p/3729033.html 转载于:https://www.cnblogs.com/chengxuyuandashu/p/4734240.html
  • 代码规范总结 Html:超文本标签语言,主要负责网页的内容 一、网页的基本格式 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200921181534448.png#pic_center) body一般是主要代码编写处。 title是页面标题...
  • 章五 JavaBean是一种Java语言写成的可重用,跨平台的团见组件。有属性、方法和事件三部分构成。 JavaBean的编写规范包括Bean类的构造方法,定义属性的访问方法编写规则Bean类必须有一个无参构造方法 ...
  • 章二 JSP脚本和指令的使用 问1:Jsp页面包含几种元素? ... JSP指令: 表达式: Scriptlet:脚本 嵌入的java代码 声明:!%>定义Jsp页面中的变量和方法。...以%开头的是JSP注释,客户端无法看到。...问2:为什么第一次访问Jsp...
  • request.getRequestDispatcher().forward()方法可以实现转发(forward),但是只局限于当前的Web应用下。转发后的程序还是使用当前的一对请求request和响应response。浏览器并不能知道在服务器内部发生了转发行为,...
  • application “应用”是是指在服务器上运行的应用,当前Web应用在服务器上从启动到结束,数据可以被所有的用户查看。 问3:什么是会话? 会话是指在一段时间内,单个用户通过浏览器域Web服务器的一连串和不...
  • Web前端知识点总结.doc

    2019-10-04 10:04:13
    Web前端知识点总结
  • java web复习知识点总结
  • 前端webApi知识点总结

    2020-12-31 16:12:28
    前端webApi知识点总结 1.获取元素 获取1个:document.querySelector('选择器') 获取多个:document.querySelectorAll('选择器'),是一个伪数组 2.操作属性 1.获取类名 classNmae//JS给类名做了加工:...
  • web知识点总结

    2014-03-21 19:40:00
    这是一篇简单的web开发知识点总结,适用于刚开始学习编程的人来学习的。我是为了能够在熟记熟记这些知识点总结的一篇文章。 1什么是浏览器? (1)浏览器就是接收浏览者的操作(打开一个网址,点击一个链接,点击...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,092
精华内容 1,236
关键字:

web知识点总结