java post跳转页面_java通过模拟表单实现post跳转

今天在实现一个跳转功能时发现参数太长了,用redirect无法实现,想改成post提交参数。java自身的api貌似无法实现,最后查到可以用模拟一个表单提交参数的方式实现。

代码如下:

增加http请求工具类

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

/**

* Created by crimson.

*/

public class HttpClientUtil {

Map parameter=new HashMap<>();

HttpServletResponse response;

public HttpClientUtil(HttpServletResponse response)

{

this.response=response;

}

public void setParameter(String key,String value)

{

this.parameter.put(key, value);

}

public void sendByPost(String url) throws IOException

{

this.response.setContentType("text/html");

PrintWriter out = this.response.getWriter();

out.println(""-//W3C//DTD HTML 4.01 Transitional//EN\">");

out.println("");

out.println("

");

out.println("

");

out.println("

");

Iterator it=this.parameter.keySet().iterator();

while(it.hasNext())

{

String key=it.next();

out.println("");

}

out.println("");

out.println(" ");

out.println(" ");

out.println("");

out.flush();

out.close();

}

}

调用处:

HttpClientUtil http=new HttpClientUtil (response);

http.setParameter("key", "value");

http.sendByPost(url);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是回答: JavaWeb 登录检查及界面跳转可分为以下几个步骤: 1. 创建登录页面:在 JSP 页面上布置输入用户名和密码的表单。 2. 创建 Servlet:用于接收登录表单提交的数据,并进行验证。 3. 校验用户名和密码:从表单提交的数据中获取用户名和密码,然后与数据库中的数据进行比对,如果验证通过,则将用户信息存入 Session 中。 4. 跳转页面:如果用户信息验证通过,则跳转至主页或其他需要登录才能访问的页面;如果验证不通过,则返回登录界面并给出错误提示。 以下是一个简单的示例: 1. 创建登录页面 login.jsp ``` <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Login</title> </head> <body> <form action="login" method="post"> <input type="text" name="username" placeholder="Username"><br> <input type="password" name="password" placeholder="Password"><br> <input type="submit" value="Login"> </form> </body> </html> ``` 2. 创建 Servlet LoginServlet ``` import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @WebServlet("/login") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); if (username.equals("admin") && password.equals("123456")) { HttpSession session = request.getSession(); session.setAttribute("username", username); response.sendRedirect("index.jsp"); } else { response.sendRedirect("login.jsp?error=1"); } } } ``` 3. 在主页 index.jsp 中获取用户信息 ``` <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Index</title> </head> <body> <% HttpSession session = request.getSession(); String username = (String) session.getAttribute("username"); out.print("Welcome " + username); %> </body> </html> ``` 在上述示例中,我们通过 request.getParameter() 方法获取登录表单提交的数据,然后进行校验。如果校验通过,则将用户名存入 Session 中,并调用 response.sendRedirect() 方法跳转至主页 index.jsp。如果校验不通过,则重定向至登录页面 login.jsp,并附带错误提示信息。 希望上述示例对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值