一、GenericServlet?
servlet 是一个接口 下面有两个抽象类 GenericServlet 和 HttpServlet 需要被 继承并重写其中的方法。
package javaweb; import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/zxh") //注解配置 不需要xml配置
public class GenericServletDemo extends GenericServlet {
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("servlet 的儿子 generic servlet 是一个抽象类 子类继承时 需要重写他的一个抽象方法! ");
}
}
二、HttpServlet?
package javaweb; 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;
/* 一 HttpServlet?
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,
HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户的这些信息。 二 HttpServletRequest常用方法?
getRequestURL方法返回客户端发出请求时的完整URL
getRequestURI方法返回请求行中的资源名部分
getQueryString方法返回请求行中的参数部分(参数名+值)
getRemoteAddr方法返回发出请求的客户机的IP地址
getRemoteHost方法返回发出请求的客户机的完整主机名
getRemotePort方法返回web服务器所使用的网络端口号
getLocalPort方法返回web服务器所使用的网络端口号
getLocalAddr方法返回web服务器的IP地址
getLocalName方法返回web服务器的主机名 三 request?和 response?
1.原理?
由服务器创建 可以使用它
request 对象获取请求消息 response对象是响应 3.request继承关系
request------- servletrequest--------httpservletrequest(由Tomcat创建) 4.方法?【获取请求行的数据】
1 获取请求的方式 getMethod();
2 目录的路径 getContextPath(); *****
3 获取servlet路径 getServletPath();
4 获得get请求参数 getQueryString();
5获取请求的url getRequestURI();
getRequestURL(); *****
6 获得协议版本 getProtocol();
7 获取客户的ip getRemoteAddr(); 5.其他方法?【获取请求参数的通用方式】 get post 都可以
1 getParameter(String name);
2 根据参数的名称获得参数的数组 getParameterValues(String name)
3 getParameterNames() 获得所有的请求参数的名称
4 getParameterMap() 获得所有参数的集合 map
*/
@WebServlet("/text.html")
public class HttpServletDemo extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("提交方式为Post");
// 1 获取请求的方式 getMethod();
String method = request.getMethod();
System.out.println(method);
// 2 目录的路径 getContextPath(); *****
String contextPath = request.getContextPath();
System.out.println(contextPath);
// 3 获取servlet路径 getServletPath();
String servletPath = request.getServletPath();
System.out.println(servletPath);
// 4 获得get请求参数 getQueryString();
String s = request.getQueryString();
System.out.println(s);
// 5获取请求的url getRequestURI();
String re = request.getRequestURI();
// getRequestURL(); *****
System.out.println(re);
// 6 获得协议版本 getProtocol();
String protocol = request.getProtocol();
System.out.println(protocol);
// 7 获取客户的ip getRemoteAddr();
String remoteAddr = request.getRemoteAddr();
System.out.println(remoteAddr); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("提交方式为get");
}
}