阶段三:编写Servlet继承HttpServlet
HttpServlet源码解析
- HttpRequest:该类封装了全部请求协议
- HttpResponse:该类封装了全部响应协议
-
Servlet的生命周期
当被请求时,web服务器调用反射机制,调用无参数构造,然后调用init()方法,然后调用Service方法,当被销毁时,调用destroy()方法。 -
继承后然后写doGet()或doPost()方法。
-
在web.xml中配置欢迎页写
<welcome-file-list>
<welcome-file>
/index.html
</welcome-file>
</welcom-file-list>
默认欢迎页面是catalina/web.xml文件当中配置。
-
HttpServletRequest接口详解
request和response都是请求则有。
request.getParameter() => 获取value中的一维数组的第一个值
requset.getParameterNames() => 获取所有参数名称
request.getParameterValues() => 获取参数的数组 -
request对象被称为请求域对象,servletContext叫作应用域。
以下方法可以操作域:
setAttribute()
getAttribute()
removeAttribute() -
如何让两个servlet共用同一个请求域
request.getRequestDispacher().forward(request,response); //此请求域可以传递下一个servlet
7.servlet注解式开发(从servlet3.0后)
@WebServlet(value={"/oa/duoduo","/oa/xiaoxiao"});
写在servlet类上面。
tips1:WEB-INF:目录下面是受保护的页面,无法通过url访问。
tips2:注意不能自己new一个servlet,因为这样不能交给web 服务器来管理。
tips3:转发和重定向的区别:
转发:由tomcat来处理,转发是同一个请求。
重定向:由浏览器来处理,故由response.sendRedict(“url地址”);
所以只有当两个servlet共用同一个数据时才用转发,其他的时候都用重定向。
tips4:注解的使用方式:
1、@注解名(属性名=属性值,属性名=属性值)
2、如果注解是一个数组,且只有一个元素,那么大括号可以省略
3、如果属性名为value,且只有一个元素时,value也可以省略。