005.servlet
1.什么是servlet;
广义上来说,Servlet是一组规范,包含了与服务端小程序相关的很多API;
狭义上来说,servelt是运行在服务器端(tomcat)的小程序;它的作用是用来接受客户端的请求,并对客户端作出响应 ;通常是使用Http协议来进行通信;
2.如何开发一个servlet;
定义一个类,来继承GenericServlet或HttpServlet; 重写doGet,或doPost方法;PS:service方法是将doGet和doPost合并
配置servlet的映射url(可以使用web.xml,也可以使用@WebServlet注解)
web.xml中的代码:
<servlet>
<servlet-name>bookServlet</servlet-name>
<servlet-class>com.oracle.servlet.BookServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>bookServlet</servlet-name>
<url-pattern>/book.do</url-pattern>
</servlet-mapping>
创建一个实例,一个映射。
@WebServlet注解原理相同
web.xml的欢迎页目录(由上到下搜索):
PS:访问后需刷新一次
006.HttpServletRequest 007.httpServletReuqest常用方法
ServletRequest
此接口封装了所有客户端的请求数据;这个对象由容器创建(tomcat),并将此对象以参数的形式传递给servlet的服务方法(service,doGet,doPost);如果我们使用的是Http协议,这时可以使用HttpServletReuqest接口;
HttpServletReuqest的常用方法
getParameter():根据请求参数名称来获得请求值
getParameterNames():获得所有请求名;
getparameterMap():获得请求数据的映射;
getParameterValues():获得多个请求值;
getHeader():获得消息头;
getHeaderNames():获得所有的消息头的名称;
getIntHeader():获得消息头的修值,并转换成int类型;
getMethod():获得请求方法的类型
getProtocol():获得协议版本
getRequestURI():获得uri;
getRequestURL():获得完整的请求路径;
getServeletPath():获得服务端的请求路径(不包含应用名)
getContextPath():获得布署后的应用名;
getQueryString():url中的查询字符串;
setCharacterEncoding("UTF-8");
PS:doGet方法中文乱码问题的解决办法:在get方法第一行设置,代码如下
//设置request请求的编码
request.setCharacterEncoding("UTF-8");
008.httpServletResponse
ServletResponse
响应;
response是由容器创建,并以参数的形式传递给servlet 的service方法,response封装了很多向客户端返回响应的方法;
主要的方法有:
setContentType():设置向客户端返回的数据的类型;
setContentType("text/html;charset=UTF-8");
getWriter();获得字符流;
getOutputStream();
sendRedirect();重定向;
009.servlet生命周期