Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从java类命中jsp_Java_Jsp - Fatal编程技术网

如何从java类命中jsp

如何从java类命中jsp,java,jsp,Java,Jsp,如何在不使用servlet的情况下从java类命中jsp? 我需要从客户端计算机到服务器(tomcat)的参数,然后插入数据库 下面是我的java类编码: public void callJSP(String fullContent) { // convert String into InputStream InputStream is = new ByteArrayInputStream(fullContent.getBytes()); InputStreamRead

如何在不使用servlet的情况下从java类命中jsp? 我需要从客户端计算机到服务器(tomcat)的参数,然后插入数据库

下面是我的java类编码:

public void callJSP(String fullContent) {

    // convert String into InputStream
    InputStream is = new ByteArrayInputStream(fullContent.getBytes());
    InputStreamReader isr;
    BufferedReader br;
    String line;
    URL url;
    URLConnection connection;
    ObjectOutputStream output;
    ObjectInputStream input;
    try {
        isr = new InputStreamReader(is);
        br = new BufferedReader(isr);
        line = br.readLine();
        url = new URL("http://localhost:8080/WebContent/FeedIssueToDB.jsp");
        connection = url.openConnection();
        connection.setDoOutput(true);
        output = new ObjectOutputStream(connection.getOutputStream());
        output.writeObject(line);
        output.close();
        /*input = new ObjectInputStream(connection.getInputStream());
        input.readObject();
        input.close();*/
        // TODO do your stuff here
    } catch (Exception ex) {
        // TODO
    }
}
这是JSP:

<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage=""%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%
String fullContent= request.getParameter("line");
System.out.println("full content -"+fullContent);

  %>
  <%

Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://192.168.0.55:1433/RTDATA_TT", "sa", "dominorich");
PreparedStatement ps=conn.prepareStatement("INSERT INTO SummaryFeedIssue(\"DateTimeIssue\", \"Source\", \"ServerIP\", \"Keywords\",\"Remarks\") VALUES (?,?,?,?,?)");

StringTokenizer st1 = new StringTokenizer(fullContent, "|");
String dateTime="";
String source="";
String serverIP="";
String keywords="";
String remarks="";
while (st1.hasMoreTokens()) {
    dateTime = st1.nextToken();
    source = st1.nextToken();
    serverIP = st1.nextToken();
    keywords = st1.nextToken();
    remarks = st1.nextToken();
 ps.setString(1,dateTime );
 ps.setString(2,source );
 ps.setString(3,serverIP );
 ps.setString(4,keywords );
 ps.setString(5,remarks );

ps.execute();
conn.close();

}

%>


运行应用程序后,它不会执行任何操作。我的编码有错误吗?

您不应该在JSP中编写业务逻辑,而应该让管理器或帮助器类拥有业务逻辑,并在JSP中调用它们的方法

但是,

要运行代码,应更改行

url = new URL("http://localhost:8080/WebContent/FeedIssueToDB.jsp");

并且无需将该行写入输出流


将行作为参数传递应该可以完成您想要完成的工作。

请不要编写业务逻辑jsp页面。请告知什么是具有业务逻辑的管理器或帮助器类。得到示例了吗?很抱歉,在这种情况下我是新手。Manager类只意味着在其他类中编写业务,并在JSP中实例化该类,然后调用这些方法来执行操作。@SharonWong只是不在JSP中编写任何Java代码,而是使用taglets和JSTL,并调用页面外部的Java类。JSP本身应该只显示数据并将请求转发给它后面运行的Java代码。Manager类只是意味着在其他类中编写业务,并在JSP中实例化,并在这些类中调用方法来执行操作。在您的例子中,编写与获取连接和在数据库中保存数据相关的完整代码(假设您在一个类中创建一个save(inputData)方法),并在JSP中创建其对象,并调用其“new YourClass().save(fullContent)”。如果你明白了,请告诉我
url = new URL("http://localhost:8080/WebContent/FeedIssueToDB.jsp?line="+line);