我对JAVA很老,但是对JSP和Servlet的话题却很陌生。我正在尝试通过将JSP中的值放入servlet来执行一些jdbc操作。为此,我编写了一个带有下拉列表和一个提交按钮的JSP。
Jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<div align='left' >
<div align='left' >
<label class="text-white mb-3 lead">Which report do you want to generate?</label>
<select id="reportSelection" data-style="bg-white rounded-pill px-5 py-3 shadow-sm " class="selectpicker w-100" name="reportselection">
<option>Outage</option>
<option>DataQuality</option>
<option>Latency</option>
</select>
</head>
<body>
<p id = "demo"> </p>
<script>
var d = new Date();
document.getElementById("demo").innerHTML = d;
</script>
</body>
</div>
</div>
</body>
<hr class="colorgraph">
<div class="row">
<div class="col-xs-12 col-md-6"><input type="submit" value="Submit" class="btn btn-primary btn-block btn-lg register" tabindex="7"></div>
</div>
</body>
</html>
这就是我的servlet类的样子。
@WebServlet("/getdata.do")
public class DataServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
GetTableColumn gt = new GetTableColumn();
String issue = request.getParameter("reportSelection");
String message;
try {
if ("Latency".equals(issue)) {
message = gt.process("latency");
} else if ("DataQuality".equals(issue)) {
message = gt.process("DataQuality");
System.out.println("Data quality");
} else if ("Outage".equals(issue)) {
message = gt.process("Outage");
}
} catch (SQLException s) {
s.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
我正在读取Servlet类中的JSP下拉值,并根据收到的值将String传递给方法process
。我在网上查看如何配置web.xml文件,如下所示。http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd“版本=“ 4.0”>
<servlet>
<servlet-name>DataServlet</servlet-name>
<display-name>DataServlet</display-name>
<description>Begin servlet</description>
<servlet-class>com.servlets.DataServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DataServlet</servlet-name>
<url-pattern>/parse</url-pattern>
</servlet-mapping>
我正在尝试在IntelliJ上运行代码,这是我在IntelliJ上配置tomcar服务器的方式。
运行代码时,我看到页面正在按预期方式生成jsp。
[我不了解的是如何使用onclick配置submit
,以便在支持的触发器中单击Submit和Java程序。我已经编写了Java代码,只是通过从方法process
中获取输入来从数据库中读取值。运行得很好,并要求我从JSP接受输入并将结果显示回JSP。单击提交按钮时,控制台输出没有任何进展。我想我没有正确映射它。在线上的大多数链接都将JSP和JAVA包含在一起,这更加令人困惑。任何人都可以让我知道如何通过单击submit
按钮来触发程序
由于正在使用@WebServlet
,因此不需要在web.xml
中进行映射。只需在JSP主体内添加以下行:
<form action="getdata.do" method="post">
查看您的JSP文件,请注意您的头部和身体标记。我认为在其他体内放置身体并在体内封闭头部标记是错误的。其他情况可能比单击提交按钮发送表单更重要,您应该将其放在标签表单中,类似这样。
<form action = "getdata.do" method = "POST">
First Name: <input type = "text" name = "first_name">
<br />
Last Name: <input type = "text" name = "last_name" />
<input type = "submit" value = "Submit" />
</form>