JavaWebDay10

一、简答题

1>简述servlet的生命周期

1.加载:容器通过类加载器使用Servlet类对应的文件来加载Servlet。

2.创建:通过调用Servlet的构造函数来创建一个Servlet实例。

3.初始化:通过调用Servlet的init()方法来完成初始化工作,这个方法是在Servlet已经被创建,但在向客户端提供服务之前调用。

4.处理客户请求:Servlet创建后就可以处理请求,当有新的客户端请求时,Web容器都会创建一个新的线程来处理该请求。接着调用Servlet的。

Service()方法来响应客户端请求(Service方法是根据请求的method属性来调用doGet()和doPost())。

5.卸载:容器在卸载Servlet之前需要调用destroy()方法,让Servlet释放其占用的资源

2>servlet中的两个init方法

       一个是带参数的,一个是不带参数的,这两个方法都在genericservlet中定义,且带参数init会调用无参数的init方法,因此,,如果在servelt中覆盖了无参数的init方法,那么初始化的时候,带参数的init方法会调用无参数的init完成初始化的一些配置;反之如果覆盖了代餐的init,那么就不会走调用午餐init的流程,此时无参数的init方法不会被执行;

3>servlet在什么时候创建,servlet是单例的吗

1.第一次被调用(第一次处理请求)

2.Servlet本身只是一个Java,并不是单例结构,所以Servlet是不是单例最终取决于运行它的Web容器。注解加载时默认是单例的。如果一个Servlet没有被部署在分布式的环境中,一般web.xml中声明的一个Servlet只对应一个实例。如果在web.xml中声明了几次,即使同一个Servlet,如果声明多次,也会生成多个实例。

二、编程题 model2开发模式 实现 数据展示与删除 页面使用 el+jstl实现 提交的代码 servlet代码以及 jsp代码 以及 运行结果图

 

package JDBC.action;

import JDBC.bean.Emp;
import JDBC.dao.EmpDao;
import JDBC.dao.impl.EmpDaoImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

@WebServlet(urlPatterns = "/emp.do")
public class EmpServlet extends HttpServlet {
    private EmpDao empDao = new EmpDaoImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        List<Emp> list = empDao.findAll();
        req.setAttribute("list",list);
        req.getRequestDispatcher("emp.jsp").forward(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
}
package JDBC.action;

import JDBC.bean.Emp;
import JDBC.dao.EmpDao;
import JDBC.dao.impl.EmpDaoImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

@WebServlet(urlPatterns = "/del.do")
public class DelServlet extends HttpServlet {
    private EmpDao empDao = new EmpDaoImpl();
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String id = req.getParameter("id");
        empDao.delete(Integer.parseInt(id));
        resp.sendRedirect("emp.do");
    }
}
<c:forEach items="${list}" var="e">
  <tr>
    <td>${e.empid}</td>
    <td>${e.empname}</td>
    <td>${e.empsex}</td>
    <td>${e.empaddr}</td>
    <td>${e.empbirth}</td>
    <td>${e.empphone}</td>
    <td>${e.deptid}</td>
    <td>${e.sal}</td>
    <td>${e.comm}</td>
    <td>
      <a href="del.do?id=${e.empid}" >删除</a>
    </td>
  </tr>
  </c:forEach>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值