13_servlet & servletContext

2017-06-06  本文已影响0人  AndroidCat
Servlet
Servlet简介
Servlet快速入门
  1. 创建类实现Servlet接口
  2. 实现接口的方法
  3. 在web.xml进行servlet的配置
  1. 集成HttpServlet类
  2. 重写doPost()和doGet()两个方法
  3. 在web.xml进行servlet的配置
导入外部web项目报感叹号警告
Servlet方法
Servlet对象的生命周期(面试容易问)
Servlet的执行步骤
  1. 浏览器输入地址回车访问服务器,客户端封装一个http请求发送给服务器
  2. tomcat服务器解析url地址,找到对应的工程和对应的Servlet文件
  3. tomcat服务器创建Servlet对象,同时创建对应的ServletRequest对象和ServletResponse对象,传入server方法中
Servlet的基本配置(web.xml)
服务器启动实例化Servlet配置
缺省Servlet
欢迎页面
HttpServlet
修改HttpServlet模板
package ${enclosing_package};
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ${primary_type_name} extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().write("hello yhh...");
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}
用户登录功能
codding
ServletContext
ServletContext简介
ServletContext的生命周期
获取ServletContext
  1. Servlet的init(ServletConfig config)中通过config.getServletContext();获得(一般不用)
  2. (HttpServlet对象中)this.getServletContext();
ServletContext作用
  1. 获得web应用全局的初始化参数
    • 在web.xml中配置参数
    • <context-param><param-name></param-name><param-value></param-value></context-param>
    • spring框架的时候会用到
  2. 获得web应用中任何资源的绝对路径(==重要==)
    • String getRealPath(相对于该web应用的相对地址):获得真实路径
  3. ServletContext是一个域对象(==重要==)
    • 存储数据的区域就是域对象
    • ServletContext的作用范围:整个web应用(所有的动态web资源都可以随意得向ServletContext中存取数据,数据可以共享)
    • Servlet之间的数据传输(通信)
//在读取src(classes) 下的资源是可以同类加载器----专门加载classes 下的文件的
//getResource() 参数是一个相对地址 相对classes
String path = ContextServlet.class.getClassLoader().getResource("c.txt").getPath();
System.out.println(path);
记录登陆人数
public class LoginServlet extends HttpServlet {
    //在父类中init(ServletConfig config)内部提供了一个空的init()方法给我们自定义初始化调用
    @Override
    public void init() throws ServletException {
        //在Seveltcontext域中存一个数据count
        int count = 0;
        this.getServletContext().setAttribute("count", count);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读