gpt4 book ai didi

java - jsp无法使用响应重定向页面

转载 作者:行者123 更新时间:2023-12-01 13:13:46 27 4
gpt4 key购买 nike

我无法使用response.sendRedirect(url);重定向到页面

我可以重定向到普通 jsp 页面中的链接,但无法在 jsp 页面中定义的函数中发送它。那么就我而言,在函数内进行重定向,如何解决这个问题?

仅供引用,错误是“响应无法解析”。

以下是我的源代码的一部分:

<%@ page language="java" contentType="text/html; charset=utf-8" 
pageEncoding="utf-8" %>
<%@ page import="javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<%@ page import="javax.activation.*"%>
<%@ page import="java.util.*,java.io.*"%>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>


<%!
public void sendSMS(String nickName, String setAname, String currAname,
String toPhone){
String acctInfo="xxx";
String acctPwd="xxx";
String contents="Message from Miss U:( \n Please be reminded that your friend:"+nickName+" is OUT of your setting area: "+setAname+". The current area is "+currAname+".";

String smsURL="http://api.accessyou.com/sms/sendsms-utf8.php?msg="+contents+"&phone="+toPhone+"&pwd="+acctPwd+"&accountno="+acctInfo;
response.sendRedirect(smsURL);
}
%>

最佳答案

当您调用辅助函数时,您必须传入 response目的。原因是 JSP 被转换为 Java 代码,然后对其进行编译,以便可以在 JVM 上运行。之间的事情<%!...%>将被转换为与 <%...%> 中的代码具有不同上下文的辅助方法。

您的 jsp 将被翻译成如下内容:

public class MyJsp {

public void doPost(HttpServletRrequest request, HttpServletResponse response) {
/* tons of code compiled off JSP */
sendSMS(...)
}

private void sendSMS(String nickName, String setAnmae...) {

String acctInfo="xxx";

response.sendRedirect(...); // error, there is no response object in the local context
}

}

像这样的东西会起作用

%@ page language="java" contentType="text/html; charset=utf-8" 
pageEncoding="utf-8" %>
<%@ page import="javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<%@ page import="javax.activation.*"%>
<%@ page import="java.util.*,java.io.*"%>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>

<%
sendSMS(arg1, arg2, arg3, ar4, response)
%>

<%!
public void sendSMS(String nickName,
String setAname,
String currAname,
String toPhone,
ServletResponse response){
String acctInfo="xxx";
String acctPwd="xxx";
String contents="Message from Miss U:( \n Please be reminded that your friend:"+nickName+" is OUT of your setting area: "+setAname+". The current area is "+currAname+".";

String smsURL="http://api.accessyou.com/sms/sendsms-utf8.php?msg="+contents+"&phone="+toPhone+"&pwd="+acctPwd+"&accountno="+acctInfo;
response.sendRedirect(smsURL);
}
%>

注意 sendSMS 中的情况您无权直接访问requestresponse对象。

关于java - jsp无法使用响应重定向页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22626845/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com