-1

我必须显示一个在 index.jsp 中编码的页面,在这个页面中我使用了 onload 提交

<script type="text/javascript">
    function myfunc () {
    var frm = document.getElementById("my_form");
    frm.submit();
    }
    window.onload = myfunc;
</script>
<form id="my_form" action="tempmonitor" method="post">

以上是我的jsp代码,我在这个页面上打印了你好。但是当我点击 URL localhost:8090/tempmonitoringsystem/index.jsp。它显示 nanosec den 的 index.jsp 转到以下 URL localhost:8090/tempmonitoringsystem/tempmonitor,我不知道它重定向到哪里。我正在附加我的 servlet 代码以及 xml 代码。

TempMonitorServlet.java

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    System.out.println("hello world");
    String path = "E:\\"; 

      String files;
      File folder = new File(path);
      File[] listOfFiles = folder.listFiles(); 

      for (int i = 0; i < listOfFiles.length; i++) 
      {      
          if (listOfFiles[i].isFile()) 
          {
              files = listOfFiles[i].getName();

              if (files.endsWith(".txt") || files.endsWith(".TXT"))
              {
                  System.out.println(files);
                  ReadingFromFile read_file = new ReadingFromFile();

                  String last_line_from_file = read_file.read(files) ;
                  System.out.println("\n"+last_line_from_file);
                  if(last_line_from_file != null)
                  {

                      drawImage(req,resp ,last_line_from_file,files) ;
                  }
              }
          }
      }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>ZigbeeRest</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>

<servlet>
<servlet-name>tempmonitor</servlet-name>
<servlet-class>tempmonitor.TempMonitorServlet

</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.restful.Zigbee.services.ZigbeeApplication</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>tempmonitor</servlet-name>
    <url-pattern>/tempmonitor</url-pattern>
</servlet-mapping>

4

2 回答 2

0

您的 servlet 没有发送任何响应,您的表单希望收到它的请求。你需要“打印”一些东西到你的HttpServletResponse resp. 换句话说,

PrintWriter out = response.getWriter();

out.write("hello world");

// loop over your files,
out.write(file);

你写给 PrintWriter 的任何东西都会被发送回客户端。

我假设这就是您的意思System.out.println,并且您没有尝试将内容打印到日志文件或类似文件中。

于 2012-12-19T07:49:34.663 回答
0

好吧,似乎当您调用 index.jsp 时,页面已加载。加载页面时,javascript 将触发表单的提交。由于您将表单操作设置为“tempmonitor”,因此页面将发送到 /tempmonitoringsystem/tempmonitor。

我不确定“/tempmonitoringsystem”是您的 webapp 上下文还是您正在部署在应用程序容器的根上下文中。如果是这样,/tempmonitor 将不会与 servlet 匹配。

在您的 doPost 方法中,您也不会写入输出流。

于 2012-12-19T08:36:35.013 回答