JAVA-从系统获取对UI的响应
我是java新手,我有一个servlet,它连接到某个系统并获取数据,在调试代码时,我看到我能够连接并获取数据(我没有收到任何错误)。我使用以下代码:JAVA-从系统获取对UI的响应,java,servlets,java-8,Java,Servlets,Java 8,我是java新手,我有一个servlet,它连接到某个系统并获取数据,在调试代码时,我看到我能够连接并获取数据(我没有收到任何错误)。我使用以下代码: try { urlConnection.connect(); } catch (IOException e) { String messagePrefix = "Connection error: "; LOGGER.error(messagePref
try {
urlConnection.connect();
} catch (IOException e) {
String messagePrefix = "Connection error: ";
LOGGER.error(messagePrefix, e);
}
OutputStream clientOutStream = responseToClient.getOutputStream();
copyStream(backendInStream, clientOutStream);
responseToClient.setStatus(backendResponseCode);
int backendResponseCode = urlConnection.getResponseCode();
InputStream backendInStream = null;
try {
if (backendResponseCode < 400) {
backendInStream = urlConnection.getInputStream();
}
} catch (IOException e) {
String messagePrefix = "Input stream error: ";
LOGGER.error(messagePrefix, e);
}
试试看{
urlConnection.connect();
}捕获(IOE异常){
String messagePrefix=“连接错误:”;
LOGGER.error(messagePrefix,e);
}
OutputStream clientOutStream=responseToClient.getOutputStream();
copyStream(后端InStream、clientOutStream);
responseToClient.setStatus(后端响应代码);
int backendResponseCode=urlConnection.getResponseCode();
InputStream backendInStream=null;
试一试{
if(后端响应代码<400){
backendInStream=urlConnection.getInputStream();
}
}捕获(IOE异常){
字符串messagePrefix=“输入流错误:”;
LOGGER.error(messagePrefix,e);
}
现在我有了这个简单的index.html,我的问题是如何将数据打印回浏览器
(我无法将html文件复制为代码:(
如果知道如何将响应传递到UI,我会尝试添加响应标记并将变量作为全局变量,但没有成功…是的,您可以使用dispatcher或httpsession发送响应,并使用jsp在UI中获取响应 在后端,只需使用
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
session.setAttribute("backendresponse",backendresponse))
}
在jsp中,您可以获取数据并将其存储在arraylist中,如下所示:
<%
ArrayList<> list=(ArrayList<>)session.getAttribute("backendresponse");
%>
在您的disp.jsp中
<%
ArrayList<> list=(ArrayList<>)session.getAttribute("backendresponse");
%>
<html>
<head>
</head>
<body>
<%for(int i=0;i<list.size();i++)
{%>
<h1> <%=list.get(i).getData() %></h1>
<%}%>
</body>
</html>
您应该使用doGet方法,该方法让PrintWriter获取HTML的每一行:
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
.
.
.
}
public void doGet(HttpServletRequest),
HttpServletResponse响应)引发IOException,ServletException
{
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
out.println(“”);
out.println(“”);
.
.
.
}
使用JSP显示输出Hanks,我没有JSP页面,我应该创建一个吗?我只有index.html打开表单,用户可以键入数据…如果我需要在哪里创建,我应该在哪里创建?在webapp文件夹下?是的,你可以在webContent文件夹中创建JSP,并将html代码复制到该jspok,但这是一个mvn项目,我没有b内容文件夹就在webapp的src->main->webapp下,那么我应该把它放在哪里呢?是的,你可以把它放在webapp->WEB\u INF文件夹中:)1.index.html在webinf下,它应该在同一个地方吗?我应该把从系统得到的数据放在哪里?看我的代码你的类是否扩展了HttpServlet
?请参考[链接] ()
<%
ArrayList<> list=(ArrayList<>)session.getAttribute("backendresponse");
%>
<html>
<head>
</head>
<body>
<%for(int i=0;i<list.size();i++)
{%>
<h1> <%=list.get(i).getData() %></h1>
<%}%>
</body>
</html>
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
.
.
.
}