首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

jsp-servlet程序设计

2012-12-21 
jsp-----servlet程序设计*.jsp---*.java---*.class文件servlet生命周期:装载----创建---------初始化

jsp-----servlet程序设计

*.jsp--->*.java--->*.class文件servlet生命周期:装载---->创建---->                   ----->初始化----->服务----->销毁--->卸载1.servlet本身只关心 初始化,服务,销毁三个操作1。初始化:正常情况下只有一次初始化,但是如果一个servlet长时间不使用之后再使用,则会重新初始化2。服务:一个servlet肯定会服务多次,如果一个servlet长时间不服务,则认为没用了,等待销毁。3。正常情况下也只有一次,容器关闭时销毁,当然,如果一个servlet长时间不使用,则也会被自动销毁。和人的生命周期一致:孕育生命----出生---成长,工作---死亡----销毁资料如果一个人长时间消失,则认为死亡,重新再人间复活( 黑户)初始化:public void init();public void init(ServletConfig config);服务:public abstract void service(ServletRequest req,ServletResponse);  一般情况下不会直接复写此方法,而复写   public void doGet(HttpServletRequest req,HttpServletResponse resp);   public void doPost(HttpServletRequest req,HttpServletResponse resp);销毁:   public void destroy();2.写程序看servlet生命周期public class LifeCycleServlet extends HttpServlet{     public void init(){     System.out.println("************初始化**************")  }   public void doGet(HttpServletRequest req,HttpServletResponse resp){       System.out.println("***********服务***************")   }   public void doPost(HttpServletRequest req,HttpServletResponse resp){        this.doGet(req,resp);   }   public void destroy(){       System.out.println("************销毁***************");       try{          Thread.sleep(5000);  //为了看到销毁的效果       }catch(Exception e){        }   }}<servlet>  <servlet-name>life</servlet-name>  <servlet-class>com.zhe.LifeServlet</servlet-class>  <init-param>    <param-name>driver</param-name>   <param-value>oracle.jdbc.driver.OracleDriver</param-value>  </init-param></servlet><servlet-mapping>   <servlet-name>life</servlet-name>   <url-pattern>/life</url-pattern></servlet-mapping>如果servlet中存在init和init(ServletConfig config)那么会调用init(ServletConfig config);//因为他干的事情多些如果我们复写了service(HttpServletRequest,HttpServletResponse);那么doGet和doPost将不会被执行了,因为所有的doXXX()方法都是在父类中(HttpServlet)使用service方法进行区分的. 容器----->services----->各个子类的doXXX()------这是一个典型的模板操作3.默认情况下servlet只在第一次运行的时候初始化,也可以经过配置,让其在容器启动的时候就可以进行初始化,修改web.xml文件即可。<servlet>  <servlet-name>life</servlet-name>  <servlet-class>com.zhe.LifeServlet</servlet-class>  <load-on-startup>1</load-on-startup> </servlet>4.使用Servlet取得其他的常用对象4.1取得Session对象 HttpServletRequest中有两个方法 1。 public HttpSession getSession();//表示直接取得当前的session 2.public HttpSession getSession(boolean create);//取得session,如果session不存在则创建 create = true4.2取得application对象就是和在jsp中一样的,使用 getServletContext()ServletContext app = super.getServletContext();System.out.println(app.getRealPath("/"));5.Servlet跳转客户端跳转与属性传递req.getSession().setAttribute("name","zwz");resp.sendRedirect("aa.jsp");但是如果name只传递一次,那么使用session太浪费空间了。。。。这时我们应该使用request来设置属性,但是使用request来设置属性的话,必须使用服务器端跳转才行,因为要保证是同一个requestRequestDispatcher接口可以完成RequestDispathcer rd = req.getRequestDispatcher("aa.jsp");rd.forward(req,resp); //<jsp:forward/>就是封装了这段代码

热点排行