Servlet与JSP之间的数据传输
我有一个JSF/JSP页面、一个托管bean和一个单独的文件/类,它使用Servlet与JSP之间的数据传输,jsp,jsf,servlets,Jsp,Jsf,Servlets,我有一个JSF/JSP页面、一个托管bean和一个单独的文件/类,它使用doPost方法扩展HttpServlet 我有一个单独的测试程序,它通过HttpURLConnection向doPost方法发送一个xml对象 需要什么: 用临时数据(works)启动JSP页面 稍后,向doPost方法发送一个新的xml对象(工作-我在doPost方法中获取数据) 在JSP中显示新数据(不起作用) 注: 当数据进入时,它会正确地点击doPost方法 doPost方法执行request.getRequest
doPost
方法扩展HttpServlet
我有一个单独的测试程序,它通过HttpURLConnection
向doPost
方法发送一个xml对象
需要什么:
doPost
方法发送一个新的xml对象(工作-我在doPost
方法中获取数据)doPost
方法doPost
方法执行request.getRequestDispatcher(“/faces/xxx.jsp”).forward(请求,响应)代码>(请求已正确加载数据)李>
JSP托管bean中的初始方法被正确命中
我不能在这里使用任何Javascript。艾尔是有问题的
问题:
我还没有找到从servlet将请求对象获取到JSP托管bean的方法(可能非常明显)
问题是:
JSP如何检索请求对象并将请求对象传递给托管bean?
有没有一个端到端的例子没有找到请求。您只是不确定如何从托管bean内部获取请求吗?如果是这样,请在托管bean中的操作方法中尝试以下操作:
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
HttpServletRequest request = (HttpServletRequest)externalContext.getRequest();
我有一个JSF/JSP页面、一个托管bean和一个单独的文件/类,该文件/类使用doPost方法扩展HttpServlet
停止在JSF中使用servlet。servlet显然有一些您希望在其他地方重用的功能。只需将其重构为一个独立的、可重用的类/方法,然后您就可以在servlet类和JSF托管bean中导入/调用该类/方法
至于您的实际问题:假设您在说“request object”时实际上是指“request attribute”,这在JSF页面中似乎是不可访问的,那么这可能只有两个原因:要么属性名称错误,要么不是您期望的bean/pojo实例(如果创建多个实例,可能会发生这种情况) 假设您使用的是JSF,那么从托管bean可以做的一件非常简单的事情就是将数据作为属性传递到请求中,然后分派到所需的servlet:
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
request.setAttribute("myData",myData);
context.getExternalContext().dispatch("/MyServlet");
context.responseComplete();
在servlet中:
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String myData = (String)req.getAttribute("myData");
//Do something with myData }
如果您编辑您的问题,将托管bean中的一些相关片段作为servlet中doPost()方法的主体,可能会有所帮助。我不明白你的问题是什么。您不知道如何访问支持bean中的请求对象,或者您可以访问它,但预期的数据丢失了?很抱歉,问题不清楚。我有一个JSP/JSL页面,其中有一个与之关联的托管bean。页面由request.getRequestDispatcher(“/faces/xxx.jsp”).forward(请求,响应)启动;从另一个来源。我正在请求一种使用JSTL的方法,以检索请求(或请求中的对象),并将其发送到托管bean。注意:假设request key=“chart”和object=privateChart假设支持bean(一个POJO)是“BeanA”,方法是“getChart”,当前使用JSTL 1.2