Servlet的线程特性:
第一次访问Servlet时,服务器将创建一个该Servlet类的对象,并调用doXXX方法生成响应;多个客户端访问同一个Servlet时,不再创建新的对象,而是共用同一个Servlet对象。可以说,Servlet是多线程单实例的。
请求和响应接口:
请求(request):通过浏览器提交给服务器端的所有数据,都称为请求数据。
响应(response):通过服务器返回给客户端的所有数据,都称为响应数据。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("请求对象:"+request);
System.out.println("响应对象:"+response);
System.out.println("你的IP地址是:"+request.getRemoteAddr()); 该方法返回客户端的IP地址。
HttpServletRequest:
- getParameter("pName")
- setCharacterEncoding("utf-8")
- getRemoteAddr();
HttpServletResponse::
- setContentType("text/html;charset=utf-8");
- getWriter();
按请求方法处理(get|post)
- 地址栏输入地址请求时,get提交
- 超链接跳转时,get提交
- form表达提交时,取决form的method属性,通常设置为post
- get请求由servlet的doGet方法处理
- post请求由servlet的doPost方法处理
Servlet中获取请求参数的方法
java.lang.String getParameter(java.lang.String name) 返回某个指定名字的请求参数的值,值为String类型;
java.lang.String[] getParameterValues(java.lang.String name) 返回指定名字的请求参数的值,值为String[]类型,一般用于一个名字对应多个值情况;
java.util.Map<java.lang.String,java.lang.String[]> getParameterMap() 将所有请求参数的name和value作为键值对返回,存储在Map对象中;
java.util.Enumeration<java.lang.String> getParameterNames() 返回所有的请求参数的名字,存在集合对象中;
Servlet中获取请求头属性的方法
java.lang.String getHeader(java.lang.String name) 返回某个请求头属性的值,值为String类型;
java.util.Enumeration<java.lang.String> getHeaders(java.lang.String name) 返回指定名字的请求头属性的值,值为集合类型,一般用于一个名字对应多个值情况;
int getIntHeader(java.lang.String name) 返回值类型是int类型的请求头属性值;
long getDateHeader(java.lang.String name) 返回日期类型的请求头属性值,返回long型值;
java.util.Enumeration<java.lang.String> getHeaderNames() 返回所有请求头属性的名字;