JavaWeb笔记(二)Servlet

Tomcat目录简介

  • bin——可执行文件
  • conf——配置文件
  • lib——依赖jar包
  • logs——日志文件
  • temp——临时文件
  • webapps——默认项目部署路径
  • work——存放运行时的数据
  • wtpwebapps——eclipse默认项目部署路径

Servlet

生命周期

  • init() 创建Servlet时执行一次
    • xml配置创建时间,负数为第一次被访问时创建,非负数在服务器启动时创建

        <servlet>
            <load-on-startup></load-on-startup>
        </servlet>
  • service() 每次访问Servlet时都会执行,单例
  • destroy() 正常关闭时执行一次,一般用于释放资源

配置

在web.xml中配置:

<servlet>
    <servlet-name>demo</servlet-name>
    <servlet-class>包名.类名</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>demo</servlet-name>
    <url-pattern>/demo</url-pattern>
</servlet-mapping>

Servlet3.0以上不用xml配置,支持注解配置

优化Servlet

减少Servlet的数量,将相关联模块Servlet写在一个Servlet中

  1. 创建一个BaseServlet继承HttpServlet(重写service方法,用作方法分发,没有访问路径)
  2. 创建Servlet(UserServlet)继承BaseServlet(相关联的Servlet写在同一个Servlet中)
  3. 修改方法修饰符为public,UserServlet访问路径为("/user/*")

代码

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //完成方法分发
        //1.获取请求路径
        String uri = req.getRequestURI();
        //2.获取方法名称
        String methodName = uri.substring(uri.lastIndexOf('/') + 1);
        try {
            //3.获取方法对象Method
            Method method = this.getClass().getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
            //4.执行方法
            method.invoke(this,req,resp);
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
    }

转载于:https://www.cnblogs.com/yxmhl/p/10659949.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值