1、dao
如何写一个DAO
step1、Entity类
step2、DAO接口
step3、DAO实现
step4、工厂类
工厂类是一个设计模式(所谓设计模式,是为解决一类相同或者相似的问题提出的一套解决方案,并且会对这个解决方案命名,比如工厂就是一个常用的设计模式)
工厂设计模式的特点
工厂为调用者提供符合接口要求的对象(这个对象一般称为产品),这样做的好处是,调用者不用了解对象的创建的细节,这样,当对象的创建过程发生对象改 变,不会影响到调用者。
Connection conn = DriverManager.getConnection...
2. Servlet 容器如何处理请求资源路径
比如,我们在浏览器栏输入:
http://ip:port/appname/abc.html,浏览器会将'/appname/abc.html'作为请求资源路径发送给servlet容器。
step1,servlet 容器会先假设访问的是一个servlet,会依据应用名(appname)找到应用所在的文件夹,然后找到web.xml文件。
step2,匹配<url-pattern>:
a、精确匹配(完全匹配)
b、通配符匹配:使用“*”来匹配任意长度的字符串。
比如<url-pattern>/ *</url-pattern>
<servlet>
<servlet-name>some</servlet-name>
<servlet-class>web.Someservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>some</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
这段代码就是url中/什么都可以访问SomeServlet
比如<url_pattern>/abc/ *</url-pattern>
c、后缀匹配:使用"*."开头,后面任意字符串,比如:
<url-pattern>*.do</url-pattern> 这个地方不要/
以上表示.do 结尾的请求。
setp3、如果都不匹配,则容器认为访问的是一个静态的资源文件,比如HTML文件,然后在容器会查找该文件,如果找到则返回,否则,会返回404.
3、一个Servlet处理多种请求?
step1,使用后缀匹配模式,比如
<url-pattern> *.do</url-pattern>
step2、分析请求资源路径,然后依据分析的结果分别进行不同的处理。
//获得请求资源路径
String request.getRequestURI();
4、Servlet的生命周期
(1)Servlet的生命周期的含义?
Servlet容器如何创建Servlet对象,如何给Servlet对象分配资源、如何调用Servlet对象的方法来处理请求、以及如何去销毁Servlet对象的整个过程。
(2)Servlet 生命周期的四个阶段;
1) 实例化:
a, 实例化,指的是容器调用Servlet的构造器,创建Servlet对象。
b,什么情况实例化?
情况1: 容器收到请求后才创建Servlet对象。
情况2:容器事先(容器启动时)将某些Servlet(需要配置load-on-startup)对象创建好。load-on-startup参数值必须是大于等于0的整数,越小优先级越高。
2)初始化
a,初始化,指的是容器创建好Servlet对象后,会立即调用Servlet对象的init方法。
b,init方法:
b1,init方法只会执行一次。
b2,GenericServlet已经实现了init方法,该方法会将容器创建好的servletConfig对象作为参数传给init方法。
b3,ServletConfig对象提供了一个GetInitParameter方法来访问Servlet的初始化参数。
step1,在web.xml 文件里面使用<init-param>来配置初始化参数
step2,String getInitParameter(String paraName)
b4,如果GenericServlet的init方法提供的初始化操作不满足需要,可以Override init() 方法。
3)就绪
a,就绪指的是Servlet对象可以接受调用了,容器收到请求之后,会调用Servlet对象的service方法处理。
b,HttpServlet已经实现了service方法,该方法会依据请求类型(GET/POST)方法调用,doGet,doPost方法所以,我们在写一个Servlet时,有两种选择:
选择一:Override HttpServlet的doGet,doPost方法;
选择二:Override Httpservlet 的service 方法;
4)销毁
a,销毁指的是Servlet容器在销毁Servlet对象之前,会调用destroy方法。
b,destroy 只会执行一次。
(3)Servlet生命周期相关的几个接口和类
1) Servlet接口
a,init(ServletConfig config)
b,service(ServletRequest req,ServletResponse res)
c,destroy()
2) GenericServlet抽象类
实现了Servlet接口中的init,destroy 方法。
3)HttpServle抽象类
继承了GenericServlet抽象类,实现service()方法。
4)ServletConfig 接口
String getInitParameter(String paraName)
5) ServletRequest接口是HttpServletRequest的父接口
ServletResponse接口是HttpServletReponse的父接口
5、jsp(java server Page) java服务器端动态页面
(1)什么是jsp?
sun公司制定的一种服务器端的动态页面生成的技术规范。
(2)为什么要使用jsp?
因为直接使用Servlet,虽然也可以生成动态的页面,但是,编写繁琐(需要使用out.println来输出),并且维护困难(如果页面发生了改变,需要修改java代码),所以sun制定课jsp规范。
jsp其实是一个以.jsp为后缀的文件,容器会自动将.jsp文件转换为一个.java文件(其实就是一个Servlet),然后调用该Servlet。所以,从本质上讲,jsp其实就是一个Servlet。
(3)如何写一个jsp文件?
step1、创建一个“.jsp”为后缀的文件。
step2、在该文件里面,可以添加如下的内容:
1)html(css、js)
直接写即可。
2)java代码:
a,java代码片段:
<% java代码%>
(4)jsp是如何运行的?
step1、容器根据.jsp 文件生成.java文件
未完待续。。。