方立勋JavaWeb学习笔记第五天

1.Servlet生命周期

1.初始化:init():Servlet第一次被请求时调用

除非在web.xml里配置了<load-on-startup>,这样web容器启动时Servlet就会被实例化

例如tomcat默认的Servlet:org.apache.catalina.servlets.DefaultServlet

2.响应客户请求:service():客户端每次请求时调用

tomcat会自动生成request和response对象传给service()

3.终止阶段:destory():停止web容器时调用




2.ServletConfig

为了防止“硬编码”带来的低耦合,可以把信息放进配置文件,在程序里读取
例如:

在web.xml的Servlet里配置

<init-param> 

   <param-name>charset</param-name> 

   <param-value>UTF-8</param-value> 

</init-param>

在程序里读取:getServletConfig().getInitParameter("chatset");


tomcat会在Servlet的init方法中把ServletConfig传进去,GenericServlet已经帮我们做好了

我们只需要调用getServletConfig即可

public void init(ServletConfig config) throws ServletException {

   this.config = config;

    this.init();

 }


3.ServletContext

ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。


4.重定向和转发


重定向:你找我借钱,我没钱,我你去找银行借:两个request

response.sendRedirect("/index.jsp");

重定向的本质:
response.setStatus(302);
response.setHeader("location", "/index.jsp");

转发:你找我借钱,我没钱,我你去银行借:一个request

getServletContext().getRequestDispatcher("/index.html").forward(request, response);


5.Servlet和普通Java类读取文件

Servlet:通过ServletContext

Properties properties = new Properties();
properties.load(this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties"));

普通Java类:通过classLoader
Properties properties = new Properties();
properties.load(
UserDao.class.getClassLoader().getResourceAsStream("db.properties"));
由于类加载器只加载一次,所以如果db.properties文件有所修改还是无法读取
我们可以用类加载器获取路径,然后用普通流读取文件
properties.load(new FileInputStream(Demo.class.getClassLoader().getResource("db.properties").getPath()));


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值