java-web学习笔记(第二章)

第二章:Servlet基础
1,创建Servlet有几种方式?处理http请求最好使用哪种方式?
  1>直接实现Servlet接口和它的所有方法;
  2>继承GenericServlet类,实现service()方法;
  3>继承HttpServlet类,重写所求类型的方法(doGet(),doPost())常用第三种方法
2,Servlet的生命周期
  1>加载和实例化;
  2>初始化,Servlet容器调用每个Servlet的init()方法对Servlet实例进行初始化
  3>处理请求,容器会为该请求创建一个请求对象和一个响应对象并调用service()方法处理请求;
  4>销毁,当容器需要终止Servlet时会调用Servlet的destroy()方法释放正在使用的资源,被垃圾回收器回收
3,重定向和请求转发的区别?
  1>重定向前后创建不同的请求对象,请求转发前后共享同一个请求对象
  2>重定向访问过程结束后会改变浏览器的url地址,请求转发不会改变
  3>请求转发只能将请求转发给同一个web应用中的组件,重定向不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一站点上的其他应用程序中的资源或其他站点的资源
  4>重定向:你找我借钱,我没钱,但是我让你去找别人借钱。(再“借钱”这个动作由你自己去执行)
  5>请求转发:你找我借钱,我没钱,但是我可以帮你去找别人借钱。(再“借钱”这个动作由我去执行
4,JSP中的路径问题(请求转发和重定向)
  1>jsp中经常会遇到图片打不开或404错误,其实是路径没有写对,解决方法?
    1》考虑链接或表单提交的路径
    2》重定向或请求转发的路径
  2>具体解决方案:
    1 表单提交和链接都是从客户端请求请求而来/指的Tomcat的根目录,写绝对路径应该写成"/当前Web程序根名称/资源名" 如"/WebModule1/jsp1.jsp","/bbs/servlet/MyServlet"
    2 重定向和转发的路径问题写相对路径重定向和转发没有区别,重定向response.sendRedirect("")是服务器向客户端发送一个请求头信息,由客户端再请求一次服务器.因此情况同上述1的一样,转发是在服务器内部进行的,写绝对路径/开头指的是当前的Web应用程序.绝对路径写法就是"/jsp1.jsp"或"/servlet/MyServlet"

猜你喜欢

转载自blog.51cto.com/13416247/2131696