JAVAWeb - HttpServletRequest
一.Request入门
HttpServletRequest:代表客户端的请求,通过http协议访问服务器,Http请求中的所有信息会被封装到HttpServletRequest,通过这个HttpServletRequest的方法,获得客户端的所有信息
<html> <body> <h2>Hello World!</h2> </body> <%--这里提交的路径,就是需要谁处理的路径--%> <form action="${pageContext.request.contextPath}/login" method="get"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> <input type="submit"><br> </form> </html>
简单的一个表单,把用户名和密码交给后端 servlet 处理
public class RequestTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int username =Integer.parseInt( req.getParameter("username"));
String user="1";
int user1=Integer.parseInt(user);
int password =Integer.parseInt( req.getParameter("password"));
String pwd="1";
int pwd1=Integer.parseInt(pwd);
System.out.println(username+":"+password);
if(username==user1)
{
if(password==pwd1){
resp.sendRedirect("/Success.jsp");
}
else {
resp.sendRedirect("/index.jsp");
}
}
else {
resp.sendRedirect("/index.jsp");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
后端拿到Parameter对象所携带的值后,进行一个简单的对比校验然后做出决定是否重定向
应用:
获取前端参数,请求转发
public class Loginservlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
String[] hobbys = req.getParameterValues("hobbys");
System.out.println("======================");
System.out.println(username);
System.out.println(password);
System.out.println(Arrays.toString(hobbys));
System.out.println(req.getContextPath());
System.out.println("======================");
req.getRequestDispatcher("/Success.jsp").forward(req,resp);//这里的“/”就已经包含了文件目录不需要加其它的项目目录
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
在网页发出请求的时候,处理方法,有post和get两种,同时,我们的servlet对应的两个重写方法,doGet和doPost方法是与之对应的,在我们不知到用户要用什么进行传输信息时,可以只用写一个方法,然后相互调用就可以比避免出现507,网页不支持post或get方法的情况
补充:对于请求过来的数据,一般使用两个方式进行接收
一个是 getParameter :用于接收单个数据(字符串)
另一个是 getParameterValues :用于接收多个数据(字符串数组)
注:字符串数组的输出方式:Arrays.toString (数组名)这个方法可以直接输出字符串数组

浙公网安备 33010602011771号