文章目录
- 一、WEB三大规范
- 二、j2ee相关接口(上)
- 1.javax.servlet.Servlet
- 2.javax.servlet.http.HttpServlet
- 3.javax.servlet.ServletRequest
- 4.javax.servlet.http.HttpServletRequest
- 5.javax.servlet.ServletResponse
- 6.javax.servlet.http.HttpServletResponse
- 7. javax.servlet.ServletContext
- 8. javax.servlet.ServletConfig
- 总结
一、WEB三大规范
- servlet
- filter
- listener
二、j2ee相关接口(上)
1.javax.servlet.Servlet
- servlet用于获取请求数据、处理请求、完成响应
- 使用servlet可以实现servlet接口并配置web.xml,但是不推荐
- init(ServletConfig config);//servlet对象创建的时候执行ServletConfig:代表的是该servlet对象的配置信息
- service(ServletRequest request,ServletResponse response);//每次请求都会执行
- destroy();//servlet销毁的时候执行
2.javax.servlet.http.HttpServlet
- 使用servlet可以继承HttpServlet并复写HttpServlet类的doGet、doPost方法并配置web.xml
- init();//servlet对象创建的时候执行
- doGet(HttpServletRequest request,HttpServletResponse response);//每次get请求都会执行
- doPost(HttpServletRequest request,HttpServletResponse response);//每次post请求都会执行
- destroy();//servlet销毁的时候执行
3.javax.servlet.ServletRequest
4.javax.servlet.http.HttpServletRequest
- 获得请求行
- String getContextPath()获得”/“+web应用名称,例如/WEB15_request
- String getMethod()
- String getRequestURI()获得相对web应用地址/WEB15_request/line
- String getRequestURL()获得绝对路径http://localhost:8080/WEB15_request/line
- String getRemoteAddr()获得访问的客户端IP地址
- String getQueryString()get提交url地址后的参数字符串username=lisi&password=123
- String getProtocol();获取请求行中的协议名和版本
- String getServletPath();
- String getRemotePort();
- String getRemoteHost();
- String getLocalAddr();
- String getLocalName();
- String getLocalHost();
- int getLocalPort();
- String getServerName();
- int getServerPort();
- String getScheme();//获取请求协议名
- StringBuffer getRequestURL();
- 获得请求头
- String getHeader(String name)
- Enumeration getHeaders(String name)
- Enumeration getHeaderNames()
- Long getDateHeader(String name)
- int getIntHeader(String name)
- String getContentType()
- int getContentLength()
- String getCharacterEncoding()
- 获得请求体
- String getParameter(String name) 多个只获得一个,没有则返回null
- Map<String,String[]> getParameterMap()获得指定参数名对应的所有键值
- String[] getParameterValues(String name)获得指定参数名对应的所有值(少用)
- Enumeration getParameterNames()
- 乱码:浏览器的中文用UTF-8编码,而HTTP协议使用iSO8859-1编码。不同的浏览器接收和发送数据取决于浏览器类型,通过Http请求体中的User-Agent属性可以辨别
- post乱码 request.setCharacterEncoding(“UTF-8”);
- get乱码 String parameter=new String(parameter.getbytes(“iso8859-1”),“utf-8”);
- 转发 request.getRequestDispatcher(”/?”).forward(req,resp);
- 域对象
- Object setAttribute (String name, Object o)set注意名字相同时则覆盖
- String getAttribute(String name)
- void removeAttribute(String name)
5.javax.servlet.ServletResponse
6.javax.servlet.http.HttpServletResponse
- 设置响应行
- void setStatus(int sc)
- void sendError(int sc,[String messge])
- 设置响应头(值不重复)
- void addHeader(String name, String value)
- void setHeader(String name, String value);
- 设置定时刷新的头:setHeader(“refresh”, “5;url=http://www.baidu.com”);
- void addIntHeader(String name, int value)
- void setIntHeader(String name, int value)
- void addDateHeader(String name, long date)
- void setDateHeader(String name, long date)
- void setContentLength(int len)
- void setContentType(String type)
- void setLocale(Locale loc)
- void setCharacterEncoding(String charset)
- 设置响应体
- getWriter().write(“”)字符串,可以插入标签
- getOutputStream().write(byte[] bytes) 因为getWriter()之前已调用getOutputStream(),故两者不能同时使用
- setHeader(“content-Type”,“text/html;charset=utf-8”);中文乱码
- sendRedirect(“/WEB14/servlet2”);重定向
- setStatus(302);setHeader(“Location”, “/WEB14/servlet2”);
7. javax.servlet.ServletContext
- 获得ServletContext
- ServletConfig.getServletContext();
- this.getServletContext();(推荐)
- 获得web.xml全局的初始化参数 getInitParameter(String name);
- 域对象(整个web应用)
- void setAtrribute(String name,Object obj);
- Object getAttribute(String name);
- void removeAttribute(String name);
- WebContext目录内任何资源绝对路径
- String getRealPath(String path);//:/WEB-INF/
- InputStream getResourceAsStream(String path); 以/开头path相对WebContext目录InputStream
8. javax.servlet.ServletConfig
- 获得该servlet在web.xml上的name String getServletName();
- 获得该servlet的初始化的参数
- String getInitParameter(String name);
- Enumeration getInitParameterNames();
- 获得Servletcontext对象 ServletContext getServletContext();
总结
本文介绍了的j2ee规范(上),如有问题欢迎私信和评论