Web开发处理流程:用户输入网址,把用户请求发送给服务器,经过负载均衡后到达应用服务器(比如Tomcat),返回静态页面,或者是动态页面(由Servlet实现)。
Servlet主要完成:Web服务器将请求交给相应的容器来处理,当容器发现是对Servlet请求后,容器会创建俩个对象:HttpServletRequest和HttpServletResponse,将它们传给Servlet处理,再把返回的结果封装成Http格式返回给客户端。
而我们开发中主要在意Servlet处理中的参数HttpServletRequest和HttpServletResponse可以获得什么,下面通过实践查看:
1.首先在Idea中创建一个Web项目,然后创建一个HelloServlet
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* Created by kaizige on 2017/7/4.
*/
public class HelloServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println(req.getContextPath());
PrintWriter pw=resp.getWriter();
pw.println("hello world");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
3.根据javaee文档测试:
ServletRequest:
修改HttpServlet:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println(req.getContextPath());
PrintWriter pw=resp.getWriter();
pw.println("getPathInfo() :"+req.getPathInfo() );
pw.println("getAuthType() :"+req.getAuthType() );
pw.println("getContextPath() :"+req.getContextPath() );
pw.println("getMethod() :"+req.getMethod() );
pw.println("getServletPath() :"+req.getServletPath() );
pw.println("req.getHeader(\"encodeing\") :"+req.getHeader("encodeing") );
}