Servlet的HTTP请求(成长记录)

当浏览器请求网页时,它会向 Web 服务器发送特定信息,这些信息不能被直接读取,因为这些信息是作为 HTTP 请求的头的一部分进行传输的。

我的问题都在代码里了,所以我在我不懂得地方都加了解释

源代码:

package ServletTest;

import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/ServletTestHttp")
public class ServletTestHttp extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public ServletTestHttp() {
        super();
        
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");

       PrintWriter out = response.getWriter();
       String doType = new String(
    		   "<!DOCTYPE html>" +
    		   		"<html>"+
    		   			"<head><title>ServletHttp测试</title></head>"+
    		   			
    		   			"<body>"+
    		   				"<form>"+
	    		   				"<table width = \"100%\" border = \"1\">"+
	    		   				"<tr width = 100%>"+
    		   					"<td align = \"center\">Head名称</td>"+
    		   					"<td align = \"center\">Head值</td>"+
    		   					"</tr>"
    		   );
       out.print(doType);
       Enumeration headerNames = request.getHeaderNames();
      
       //Enumeration是枚举集合,request.getHeaderNames()返回一个Enumeration类型的数据,获取头信息

      while(headerNames.hasMoreElements()) {//判断头信息是否还有下一个信息

          String paraNames = (String)headerNames.nextElement();

           //获取下一个元素,并强制转换成String类型的数据

          String paraValues = (String)request.getHeader(paraNames);
           
          //request.getHeader("头信息") 
    	   out.print("<tr width = \"100%\">" 
    			   + "<td>"+paraNames + "</td>"
    			   + "<td>"+paraValues + "</td>"
    			   +"</tr>");
       }
      out.print("</table>"+"</form>"+"</body>"+"</html>");
		
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

在这个地方新建一个xml配置文件


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <servlet-name>ServletTestHttp</servlet-name><!-- 类名 -->
    <servlet-class>/StartMyJSP/ServletTest</servlet-class><!-- 所在的包名 -->
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletTestHttp</servlet-name><!-- 类名 -->
    <url-pattern>/StartMyJSP/ServletTestHttp</url-pattern><!-- 访问的网址 -->
  </servlet-mapping>
</web-app>

=============================分割线=============================分割线==================================================

上次在学习Servlet的HTTP请求的时候,对HTTP协议有一定的困惑。所以就找了一下关于HTTP的相关信息

一,什么是HTTP请求?

客户端连接上服务器后,向服务器请求web资源称为客户端向服务器发送了一个HTTP请求。HTTP请求包括:一个请求行,多个消息头,以及内容实体




猜你喜欢

转载自blog.csdn.net/draught_bear/article/details/78609148