Request对象获取请求⾏
package com.ljy.servlet;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;
@WebServlet(name = "RequestParamServlet", value = "/param")
public class RequestParamServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String method = request.getMethod();
System.out.println(method);
String contextPath = request.getContextPath();
System.out.println(contextPath);
//获取所有请求头
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()){
String key = headerNames.nextElement();
String value = request.getHeader(key);
System.out.println(key+"="+value);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//先获取一个参数的
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username+"="+password);
//获取多个参数
String[] hobbies = request.getParameterValues("hobby");
System.out.println(Arrays.toString(hobbies));
//获取所有的
Map<String, String[]> map = request.getParameterMap();
for(Map.Entry<String, String[]> entry:map.entrySet()){
String key = entry.getKey();
String[] value = entry.getValue();
System.out.println(key+"="+Arrays.toString(value));
}
}
}
这里ppt遗漏,特别注意一下,这里需要指明项目路径
这个是一个参数的
这个是接所有的参数
Request对象其实就是从客户端浏览器向服务器发送的⼀次请求信息的封装。那么实质上向Request中
所保存的数据有效期也是⼀次请求范围。
先创建两个servlet,用于测试,servlet1是用来设值还有取值,等这个对象服务器做出响应,就销毁该对象,即第二个servlet2来取相应的键的时候取不到,即为空,保护了数据的安全性。
package com.ljy.servlet;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet(name = "Servlet1", value = "/Servlet1")
public class Servlet1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("ljy",666);
Object value = request.getAttribute("ljy");
System.out.println("servlet1"+value);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
package com.ljy.servlet;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet(name = "Servlet2", value = "/Servlet2")
public class Servlet2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Object value = request.getAttribute("ljy");
System.out.println("MyServlet2 value = " + value);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
请求转发,模拟两个MyServlet1和MyServlet2,1到2是请求转发,但是是2处理的业务,但是名义是老板的,这就好比中介,老板去谈客户,但是是老板底下的员工在处理,最后还是老板拿钱。
package com.ljy.servlet;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet(name = "MyServlet1", value = "/MyServlet1")
public class MyServlet1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("/MyServlet2").forward(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
package com.ljy.servlet;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet(name = "MyServlet2", value = "/MyServlet2")
public class MyServlet2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.getWriter().print("我是MyServlet2 ⻚⾯数据");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}