tomcat服务器开启后,用户只要在页面请求数据,服务器就能收到并作出响应
Request继承体系:
ServletRequest:java提供的请求对象根接口
HttpServletRequest:java提供的对Http协议封装的请求对象接口
RequestFacade:Tomcat定义的实现类
1.Tomcat需要解析请求数据,封装为request对象,并且创建request对象传递到service方法中
2.使用request对象,查阅JavaEE API文档的HttpServletRequest接口
注意:
在自定义的Servlet中
如果实现的是Servlet接口那service方法里的参数类型是ServletRequest和ServletResponse
如果实现的是HttpServlet接口那么service方法里的参数是HttpServletRequest和HttpServletResponse
Request获取请求数据:
获取请求数据:
请求数据分为3部分:
1.请求行:GET /request-demo/req1?username=zhangsan&password=123 HTTP/1.1
(请求方式+请求路径?请求参数+协议版本)
String getMethod():获取请求方式:GET
String getContextPath():获取虚拟目录(项目访问路径):/request-demo(比较常用,这个方法是动态,注意是动态获取虚拟目录,根pom.xml的依赖坐标tomcat里configuration标签的path子标签相关联,path用/表示任意路径,即可,优势是如果不用动态,直接将path路径写死,将来要改很多处代码)
StringBuffer getRequestURL():获取URL(统一资源定位符):http://localhost:8080/request-demo/req1 (注意:此处返回的是StringBuffer,要用toString()方法转译一下)
String getRequestURI():获取URI(统一资源标识符):/request-demo/req1
String getQueryString():获取请求参数(GET方式):username=zhangsan&password=123
2.请求头
String getHeader(String name):根据请求头名称,获取值
3.请求体
ServletInputStream getInputStream():获取字节输入流
BufferedReader getReader():获取字符输入流(可以直接用readline方法直接读取一行)
上面的方法在java代码自定义Servlet类(继承httpServlet)中,有doget方法和dopost方法,注意区分使用方法,doget方法内写好调用方法,直接运行tomcat然后打开网址刷新一下网址,就可以获取信息,dopost(写好方法)要在webapp里编写一个html页面,要有输入框账号密码提交按键之类的,然后运行tomcat服务器,打开网址输入提交账号,idea控制台就能显示数据,用户输入的数据可以多次分割来获取数据
通用方式获取请求参数: