J2EE的基础学习_jsp_servlet_获得连接池

来源:互联网 发布:php开源投票系统 编辑:程序博客网 时间:2024/04/27 22:23

之前一直在学J2EE框架今天想花点时间来总结一下。J2EE是一个技术框架,主要用于在web开发中很好的嵌入java的逻辑代码。我大致总结了J2EE的三大技术核心。(主要从其的职责分的,按MVC划分的)

一、Jsp(主要担任的是V层 即是视图层 )

1.jsp的意思即为java  service  page。在jsp文本中可以嵌入java的逻辑代码。使页面具有交互性可以动态的改变页面。jsp的代码在执行时,先是将jsp代码转换成java代码,再编译成.class文件,最后以流的形式输送给浏览器,让浏览器进行解释并且显示。

2.jsp分为两部分:

       1).静态部分,即就是我们的html代码部分,这个主要是显示我们的静态页面的

       2).动态部分,就是我们jsp的用武之地。jsp页面中嵌入动态的java逻辑代码的方式有五种:

          1.<%@ %>指令,通过指令我们可以进行导包,引入其他jsp代码中声明的方法。

          2.<% %>小脚本,小脚本是这五个中,用的最多的。在小脚本中可以写入我们的逻辑处理代码。注意的是小脚本实质上是一个已经声明的方法,所以在其内部不能声明方法。一般在小脚本中我们可以采用  / 注释段/  和/* 注释段 */对jsp逻辑代码进行注释。其最具有独特的地方是,它由9个内置对象。分别为request(HttpServletRequest)、response(HttpServletResponse)、out(PrintWriter)、session(HttpSession)、application(ServletContext)、page、pageContext、config、exception........本文中我就主要总结我最常用的五种内置对象。(见第3小点)

          3.<%=%>表达式,表达式主要是用于返回小脚本中内置对象或者是在小脚本中声明的的数据。例如:<%=request.getAttribute("key")%>

          4.<%! %>声明,声明是自定义方法,可以把自定义的方法,通过指令引入到其他jsp的文件中(通过指令<%@ include file="方法声明的资源地址"%>)

          5.<%-- --%>注释,注释主要用于在jsp文件中做注释的,这个用的很少。例如:<%-- 注释的 --%>和html中<!-- 注释 -->效果一样。当然jsp文本中也可以中<!--  -->注释。

3.jsp中<%%>小脚本中常用的5个内置对象

       1).request(HttpServletRequest)对象,字面意思就知道这是请求处理对象,是客户端到服务器所携带的参数和一些客户端信息都存储在这个对象里面。request的重要方法有getParamter("参数的key")方法,用来获取客户端携带给服务器的请求参数的。还有一点重要的是,request对象的方法getRequestDispatcher("地址资源")是用来转发的,所以请求参数是可以共享的。

       2).response(HttpServletResponse)对象,这个是响应处理对象,是用来设置服务器响应给浏览器的数据的属性或者设置在此请求的地址,最终要的方法有sendRedirect("请求地址资源"),此操作还是在服务器端,但是相当于是浏览器再次发送了一次地址请求,叫做重定向,但是通过这种方式,页面之间的请求参数则是不共享的。      

      3).out(PrintWrite) 输出对象,其一个主要的作用是向浏览器中输出html脚本,给浏览器解释执行。另外一个作用就是在异步请求中,用来给请求的资源返回响应数据。(异步请求在接下来会总结)

      4).session(HttpSession)这是会话对象,当每一个客户端请求服务器是都拥有自己的session对象,用来存储一次会话的的参数数据的或者记录一下重要信息。session的生命周期是,一次浏览器的打开到浏览器的关闭。服务器会给每一个客户端都创建一个session对象。

      5).application(ServletContext)服务器上下文对象,他的生命周期是和服务器一样的。application内置对象主要是用来共享服务器中共享的资源的和数据的,如果是每个客户端都需要的资源或数据则可以存放到application中,所以application对象是对所有客户端可见的,而session对象是只对当前客户端是可见的。

      6).第六点说一个并非是小脚本的内置对象,它是存在与客户端的,与服务器端的session对象相同之处,那就是我们的Cookie对象,它是客户端存储数据的一个重要的对象,向我们平常浏览器中记住密码的功能就是通过此对象来完成的。

二、Servlet(主要担任的是C 即是控制层)

1.servlet主要是用来处理客户端请求的。配置servlet的方式有两种

      1).通过配置文件web.xml来配置servlet

<servlet>  //这是配置一个servlet
    <servlet-name>response</servlet-name>   //servlet的名字
    <servlet-class>com.yc.servlet.TestServlet</servlet-class>  //servlet的处理类
    <init-param> 
      <param-name>unicode</param-name>   //servlet的初始化参数名
      <param-value>utf-8</param-value>  //与servlet初始化参数名对应的参数值
    </init-param>
  </servlet>
  <servlet-mapping>   //配置servlet的映射关系的
    <servlet-name>response</servlet-name>  //上面配置的servlet名字
    <url-pattern>/yd</url-pattern>   //请求地址
  </servlet-mapping>

上面的配置文件的意义:当请求地址为   项目名称/yd时,服务器就找到配置的servlet-mapping中的url-pattern中与之对应的地址,然后根据servlet-name找到servlet-class中的处理类来处理客户端的请求。

      2).第二种配置servlet的方法很简单就是我们的注解方式配置servlet。语法为:@WebServlet("请求地址"),意思同上当客户端地址栏的地址为请求地址时,则服务器就会把该请求交给对应的servlet处理类来处理。

2.servlet的生命周期和三大重要方法

      1).servlet对象的三大方法:1.init(ServletConfig config)这是方法是初始化servlet对象的,当第一次有对应请求地址发送到服务器端时,servlet容器就会实例化该servlet对象,并且初始化,config参数就是获得servlet的初始化参数并且对自身做初始化的。2.就是service(HttpServletRequest request,HttpServletResponse)方法,是用来做客户端请求处理的。关于的request和response对象之前就已经说过,request对象是用来获取客户端请求是携带到服务器的参数的,response对象是用来给客户端做响应的。

      2).servlet的生命周期:当第一次客户端有对应的servlet映射地址请求时,servlet容器就会创建对应的servlet对象,并且初始化该servlet对象,然后调用处理方法service。当第二次客户端再有对应的请求地址请求时,servlet容器则直接找到之前创建的servlet对象并且直接调用其处理方法service(也就是说servlet对象只有第一次请求时会被实例化和初始化),当服务器关闭后,servlet对象也随之销毁。

三、JDBC(主要担任的是M层是 即是模型层也成为了业务逻辑处理层)

JDBC是java database connection也就是数据库连接。在这里就不总结普通的数据库连接方式了.主要是总结一下在j2ee框架下通过jndi技术获得连接池。

1.什么是jndi,jndi 就是java naming document interface即java命名目录接口,个人理解就是通过给要获取的资源命名,这样要用它的时候直接通过资源名字来获得来取得的资源即可。

2.所有j2ee服务器都要求实现jndi的实现接口,Web服务器的是如何实现jndi的我个人总结了一下(主要说一下Tomcat服务器)。jndi首先是要给资源命名,web服务器是在我们的的context.xml中给资源命名并且给资源配置相关的属性的,获得连接的主要参数有

<Resource
        name="jndi/jsp"   //资源名字
        type="javax.sql.DataSource"   //资源的类型
        auth="Container"   //资源的管理者
        driverClassName="oracle.jdbc.driver.OracleDriver"   //数据库的连接驱动
        url="jdbc:oracle:thin:@localhost:1521:zydb"    //数据库的地址
        username="scott"   //数据库的用户名
        password="a"   // 数据库的密码     以上都是获得连接池必须配置的参数
        initialSize="10"     //初始化大小
        minIdle="10"   //最小的空闲的连接数
        maxActive="100"   //最多同时获得的连接个数
        maxWait="10000"  //最大等待的连接时间
     />

3.在服务器中通过实例化Context context=new Context();//获得服务器的上下文对象

DataSource datasource=context.lookup("java:comp/env/资源名") 即可获得连接池,从而很简单的就能过的我们的数据源了。

2 0
原创粉丝点击