说一说Servlet生命周期
servlet的生命周期是初始化(init)、服务(service)、销毁(destroy)
- 初始化(init):默认第一次请求前,只初始化一次。修改web.xml,允许服务器启动时初始化。
- 服务(service):方法被调用时进行服务,在项目启动期间可以进行多次服务(请求一次执行一次)
- 销毁(destory):当服务器关闭时进行销毁。只销毁一次
Servlet接口中声明3个方法,tomcat在不同的时候将调用不同的方法。
init 初始化方法,2种情况被调用
情况1:默认,第一次请求前
情况2:在web项目核心配置文件web.xml中,配置初始化,将在服务器启动时初始化。
每次请求时,调用服务
服务器关闭时,调用销毁。
什么是jsp?jsp和Servlet有什么区别?
Servlet是服务器端的程序
JSP是服务器页面程序
JSP本质上就是一个Servlet,在访问jsp时,在服务器端会将jsp先转换成servlet,再将生产的servlet的结果响应给浏览器。
jsp是html页面中内嵌Java代码,侧重页面显示;Servlet是中书写Java代码,侧重逻辑控制;
Servlet接口中有哪些方法?
- init(ServletConfig):初始化方法,默认第一次请求前执行,完成servlet初始化工作
- service(ServletRequest,ServletResponse):执行方法,一次请求执行一次。
- destroy():销毁方法,Servlet对象应该从服务中被移除的时候,容器会调用该方法进行销毁操作
- getServletConfig():获得ServletConfig配置对象,包括初始化参数等。
- getServletInfo():获得Servlet描述,一般没有用。
Servlet 3.0 中的异步处理指的是什么?
异步处理允许Servlet重新发起一条新线程去调用 耗时业务方法,这样就可以避免等待
Servlet中如何获取用户提交的查询参数或表单数据?
- request.getParameterValues(“参数”); //获得指定参数名的一组参数值 (String[])
- request.getParameter(“参数”); //获得指定参数名的一个参数值(String) , UserServlet?username=jack , 通过username获得值jack
public class TestRequestParam {
private HttpServletRequest request;
public void testDemo01(){
//请求数据:index.html?username=jack&hobby=抽烟&hobby=喝酒&hobby=烫头
// 获得username的值,一个值
String username = request.getParameter("username");
// 获得hobby的值,一组值
String[] hobbyArr = request.getParameterValues("hobby");
// 所有值 , map.key 参数名称,map.value 参数的值
Map<String,String[]> map = request.getParameterMap();
}
}