- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是java新手,所以我尝试构建一个简单的Web服务。基本上用户应该将数据发送到服务器。服务器发送另一组显示给用户。
如果我想使用 POST 方法发送数据,我会收到错误 404。但是我能够运行 GET 请求,但 POST 不起作用。我尝试了很多版本。让我感到困惑的是,互联网上有不止一种可能的解决方案。
如果有人能给我提示,我做错了什么,我会很高兴。
我的 servlet 文件 .java
@WebServlet("/HomeServlet")
public class HomeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
RequestDao req = new RequestDao();
ResultDao res = new ResultDao();
int month = 0;
int year = 0;
double hours = 0;
private ResultDao execute;
private CalcMonthFlow calcMonthFlow;
public HomeServlet() {
super();
// TODO Auto-generated constructor stub
}
@Override
public void init() throws ServletException {
System.out.println("Servlet " + this.getServletName() + " has started");
}
@Override
public void destroy() {
System.out.println("Servlet " + this.getServletName() + " has stopped");
}
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
super.service(request, response);
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {
try {
response.getWriter().println("AHOJ");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String monthInput = request.getParameter("month");
String yearInput = request.getParameter("year");
String hoursInput = request.getParameter("hours");
response.getWriter().println(monthInput);
response.getWriter().println(yearInput);
response.getWriter().println(hoursInput);
}
}
我的 JSP 文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.time.LocalDateTime" %>
<!DOCTYPE html>
<html>
<head>
<title>Mandays</title>
<!-- responzivní web -->
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- CDN Bootstrap -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
<!-- JS -->
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<!-- jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('[data-toggle="tooltip"]').tooltip();
});
</script>
</head>
<body class="text-monospace">
<!-- Navigační lišta -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">Mandays</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">API</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Wiki</a>
</li>
</ul>
</div>
</nav>
<div class="jumbotron">
<p>Kalkulačka spočítá počet dnů a hodin v zadaném měsíci a roce včetně a bez svátků.</p>
</div>
<!-- Začátek kontejneru sloupců -->
<div class="container">
<!-- první řádka -->
<div class="row">
<!-- Level prázdnej panel -->
<div class="col"></div>
<!-- prostření obsahovej panel -->
<div class="col-6">
<form action="/submit" method="POST">
<div class="input-group mb-3 input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon1">Měsíc</span>
</div>
<input type="text" class="form-control" name="month" value="${data.month}" placeholder="05" aria-label="Month" aria-describedby="basic-addon1">
</div>
<div class="input-group mb-3 input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon1">Rok</span>
</div>
<input type="text" class="form-control" name="year" value="${data.year}" placeholder="2019" aria-label="Year" aria-describedby="basic-addon1">
</div>
<div class="input-group mb-3 input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon1" >Hodin</span>
</div>
<input type="text" class="form-control" name="hours" value="${data.hours}" placeholder="7.5" aria-label="Hours" aria-describedby="basic-addon1" data-toggle="tooltip" data-placement="right" title="Použijte desetinnou tečku.">
</div>
<input type="submit" class="btn btn-primary btn-sm" value="Spočítej">
</form>
</div>
<!-- Level prázdnej panel -->
<div class="col"></div>
</div>
</div>
</body>
还有我的 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns
/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee
/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>MandaysFigu</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>
</welcome-file-list>
<servlet>
<servlet-name>HomeServlet</servlet-name>
<servlet-class>present.HomeServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HomeServlet</servlet-name>
<url-pattern>/submit</url-pattern>
</servlet-mapping>
谢谢!
最佳答案
您的 <form>
的操作属性应包含 Web 应用程序的上下文路径,或使用相对路径(如果您的 JSP 位于 Web 应用程序的根目录中,则可以使用 action="submit")。
要包含上下文路径,根据您使用的 JSP 版本,您只需执行以下操作:
<form action="${request.contextPath}/submit" ... >
关于java - JSP 文件中的 doGet 有效,但 doPost 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60466108/
我正在开发一个带有 html/ftl 等的 Java 项目...... 我有一个 ftl 文件,其中包含如下列表: # Street Town Capacity ${ho.id} ${ho.
有没有一种方法可以在每次 doPost(req, res) 之后调用 method() 而不必重写 method()每个 servlet 中每个 doPost block 的末尾? 最佳答案 最简单的
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Servlets: doGet and doPost 我知道 doGet() 请求附加到查询字符串中的请求
我正在尝试将 Google 脚本转换为 Web App ,使用 CLASP。doGet(e) 中是否存在“e”对象的类型定义?/doPost(e)我可以在 typescript/clasp 方面使用吗
调用servlet时,调用dopost时某些字段不为空。如何在启动 servlet 时确保该字段始终为空。示例: import java.io.*; import javax.servlet.*
我们有一个长期工作的 doPost 方法,它会阻塞 Jetty 线程 protected void doPost(HttpServletRequest request, HttpServletResp
我正在将用户发送到 servlet Login,其中 doPost 方法是: protected void doPost(HttpServletRequest request, HttpServlet
我是网络编程的初学者。我使用 Eclipse Java EE 创建了一个应用程序,并在本地主机中运行了一个 Tomcat 服务器。 应用程序的目标是从客户端获取信息并发回其他信息。 我开发了一个 se
我有兴趣创建一个使用 JSP、Servlet 和 XML 的网络应用程序。 目前我有以下内容: JSP - 表单输入。 Servlet - 检索表单数据并将该数据发送到 java 对象。 Java 对
这个问题在这里已经有了答案: doGet and doPost in Servlets (5 个答案) 关闭 6 年前。 我有 2 个参数,User 和 Pass。我想将它们发送到一个 servle
下面的index.html调用(下面的)servet的doPost来查看某个url是否可以用于拍卖。一切都运行得很好。但是,我希望在页面重定向之后从其他类执行两个附加方法。我的问题是其他两个附加方法需
这是一个简单的 html 页面: GET_POST Insert username and password
这个问题已经有答案了: doGet and doPost in Servlets (5 个回答) 已关闭 6 年前。 我正在尝试构建我的第一个 Servlet,但我不确定如何开始。 我有一个 REST
美好的一天! 我正在阅读 Head First Servlets and JSP,它说 99% 的 servlets 使用 HttpServlet。另外1%是什么?它说在现实世界中,99.9% 的所有
编辑: 我将发布请求指向/vault/Login 但 servlet 在/vault/index 和 vault/login当将它指向索引时它起作用了。 我正在尝试制作一个登录系统。我有一个 html
我有一个基本的登录页面,它接受用户名和密码,并重定向到登录 servlet 以验证详细信息。 我还有一个过滤器,用于捕获传入登录 servlet 的任何请求,创建一个新对象,该对象将传入请求对象作为其
第一次来到 StackOverflow。我有一个关于 req.getParamter 的问题。我有一个校友类(class)()。在这个 Alumni 类中,我有一个 PersonalAddress 类
我正在尝试使用 http doPost() 构建一个简单的登录 servlet。 Login.html 是: Username :- Password :- 我的servlet代码是:Ser
我遇到了各种各样的问题,但没有一个能解决我的问题。我在谷歌应用程序脚本中写了一个简单的 doPost() 代码: function doPost(e){ Logger.log("Hello Wor
我正在使用 Servlet/JSP 测试基于表单的安全身份验证。我只是直接运行 servlet,它应该根据 web.xml 文件要求我进行登录身份验证。但它每次都只是简单地进入 doGET 方法。是的
我是一名优秀的程序员,十分优秀!