- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了这个 Web 应用程序,在输入城市坐标(纬度、经度)(来源:json)后,返回发生在美国的 10 个最近地震的列表。现在,我有两个问题:
问题一。
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.dominikazb.earthquakes.engine.ReadJsonFile;
@WebServlet("/read")
public class ReadLongitudeAndLatitudeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String latitudeOfSearchedCityString = request.getParameter("latitudeOfSearchedCity");
String longitudeOfSearchedCityString = request.getParameter("longitudeOfSearchedCity");
ReadJsonFile.getReadJson().convertJsonToJavaObjects(latitudeOfSearchedCityString, longitudeOfSearchedCityString);
response.sendRedirect("list");
}
}
import java.io.IOException;
import java.util.TreeMap;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.dominikazb.earthquakes.engine.ReadJsonFile;
@WebServlet("/list")
public class PrintEarthquakesServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
TreeMap<Double, String> outputMap = ReadJsonFile.getReadJson().read10closestCities();
request.setAttribute("outputMap", outputMap);
request.getRequestDispatcher("/earthquakesList.jsp").forward(request, response);
}
}
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
@JsonIgnoreProperties(ignoreUnknown = true)
public class ReadJsonFile {
private static ReadJsonFile readJson = new ReadJsonFile();
private static String place;
private static double longitude;
private static double latitude;
private Map<Double, String> distanceAndPlaceMapForAllCities = new TreeMap<>();
private HarvesineFormula harvesine = new HarvesineFormula();
public static ReadJsonFile getReadJson() {
return readJson;
}
@SuppressWarnings("unchecked")
public void convertJsonToJavaObjects(String latitudeOfSearchedCity, String longitudeOfSearchedCity) throws IOException, JsonParseException {
ObjectMapper om = new ObjectMapper();
om.configure(org.codehaus.jackson.map.DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); //ignore fields that are not formatted properly
TypeReference<HashMap<Object,Object>> typeRef = new TypeReference<HashMap<Object,Object>>() {};
HashMap<Object, Object> resultMap = om.readValue(new URL("https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson"), typeRef);
ArrayList<Object> featuresArrayList = (ArrayList<Object>) resultMap.get("features");
for(Object o : featuresArrayList) {
try {
LinkedHashMap<Object, Object> featuresLinkedHashMapInside = (LinkedHashMap<Object, Object>) o;
Map<Object, Object> newMapping = (Map<Object, Object>) featuresLinkedHashMapInside.get("properties");
place = newMapping.get("place").toString();
Map<Object, Object> geometryMap = (Map<Object, Object>) featuresLinkedHashMapInside.get("geometry");
ArrayList<Object> coordinatesArrayList = (ArrayList<Object>) geometryMap.get("coordinates");
longitude = (double) coordinatesArrayList.get(0);
latitude = (double) coordinatesArrayList.get(1);
double latitudeOfSearchedCityDouble = Double.parseDouble(latitudeOfSearchedCity);
double longitudeOfSearchedCityDouble = Double.parseDouble(longitudeOfSearchedCity);
double distanceBetweenTheCityAndEarthquakes =
harvesine.haversine(latitudeOfSearchedCityDouble, longitudeOfSearchedCityDouble, latitude, longitude);
distanceAndPlaceMapForAllCities.put(distanceBetweenTheCityAndEarthquakes, place);
} catch (ClassCastException | NullPointerException e) {
continue;
}
}
}
public TreeMap<Double, String> read10closestCities() {
TreeMap<Double, String> first10resultsFromTheList = distanceAndPlaceMapForAllCities.entrySet().stream()
.limit(10)
.collect(TreeMap::new, (m, e) -> m.put(e.getKey(), e.getValue()), Map::putAll);
return first10resultsFromTheList;
}
}
public class HarvesineFormula {
public double haversine(double latitude1stCity, double longitude1stCity,
double latitude2ndCity, double longitude2ndCity) {
double distanceBetweenLatitudes = Math.toRadians(latitude2ndCity - latitude1stCity);
double distanceBetweenLongitudes = Math.toRadians(longitude2ndCity - longitude1stCity);
latitude1stCity = Math.toRadians(latitude1stCity);
latitude2ndCity = Math.toRadians(latitude2ndCity);
double a = Math.pow(Math.sin(distanceBetweenLatitudes / 2), 2) +
Math.pow(Math.sin(distanceBetweenLongitudes / 2), 2) *
Math.cos(latitude1stCity) * Math.cos(latitude2ndCity);
double radiusOfTheEarth = 6371;
double c = 2 * Math.asin(Math.sqrt(a));
return radiusOfTheEarth * c;
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<%@ page isELIgnored="false" %>
<meta charset="UTF-8">
</head>
<body>
<div>
<form action="/read" method="post">
<label>Latitude</label>
<fieldset>
<input type="text"
name="latitudeOfSearchedCity"
id="latitudeOfSearchedCity"
class="form-control"
oninvalid="this.setCustomValidity('Type in latitude in a format 00.000')"
onchange="try{setCustomValidity('')}catch(e){}"
oninput="setCustomValidity(' ')"
pattern="^[-]?(\d+|\d*\.\d+)$"
required="required" />
</fieldset>
<label>Longitude</label>
<fieldset>
<input type="text"
name="longitudeOfSearchedCity"
id="longitudeOfSearchedCity"
class="form-control"
oninvalid="this.setCustomValidity('Type in longitude in a format 00.000')"
onchange="try{setCustomValidity('')}catch(e){}"
oninput="setCustomValidity(' ')"
pattern="^[-]?(\d+|\d*\.\d+)$"
required="required" />
</fieldset>
<fieldset>
<label>Select a city</label>
<select id="countrySelect">
<option>None</option>
<option value="35.084385_-106.650421">Albuquerque</option>
<option value="33.748997_-84.387985">Atlanta</option>
<option value="41.878113_-87.629799">Chicago</option>
<option value="32.776665_-96.796989">Dallas</option>
<option value="39.739235_-104.990250">Denver</option>
<option value="31.761877_-106.485023">El Paso</option>
<option value="29.760427_-95.369804">Houston</option>
<option value="30.332184_-81.655647">Jacksonville</option>
<option value="39.099728_-94.578568">Kansas City</option>
<option value="36.169941_-115.139832">Las Vegas</option>
<option value="34.052235_-118.243683">Los Angeles</option>
<option value="35.149532_-90.048981">Memphis</option>
<option value="43.038902_-87.906471">Milwaukee</option>
<option value="44.977753_-93.265015">Minneapolis</option>
<option value="29.951065_-90.071533">New Orleans</option>
<option value="40.712776_-74.005974">New York City</option>
<option value="28.538336_-81.379234">Orlando</option>
<option value="39.952583_-75.165222">Philadelphia</option>
<option value="33.448376_-112.074036">Phoenix</option>
<option value="40.440624_-79.995888">Pittsburgh</option>
<option value="45.512230_-122.658722">Portland</option>
<option value="38.581573_-121.494400">Sacramento</option>
<option value="29.424122_-98.493629">San Antonio</option>
<option value="32.715736_-117.161087">San Diego</option>
<option value="37.338207_-121.886330">San Jose</option>
<option value="47.606209_-122.33206">Seattle</option>
<option value="38.627003_-90.199402">St. Louis</option>
<option value="32.222607_-110.974709">Tucson</option>
<option value="38.907192_-77.036873">Washington D.C.</option>
</select>
</fieldset>
<br />
<button type="submit">Submit</button>
</form>
</div>
<div class="resultsTable2">
<table>
<thead>
<tr>
<th>Distance</th>
<th>Location</th>
</tr>
</thead>
<tbody>
<c:forEach items="${outputMap}" var="entry">
<tr>
<td><fmt:formatNumber type="number" maxFractionDigits="1"
value="${entry.key}" /> KM</td>
<td><c:out value="${entry.value}" /></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
<script src="webjars/jquery/1.9.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$('#countrySelect').on('change', function () {
var val = this.value;
var parts = val.split("_");
$('#latitudeOfSearchedCity').val(parts[0]);
$('#longitudeOfSearchedCity').val(parts[1]);
});
</script>
</body>
</html>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>PrintEarthquakesServlet</servlet-name>
<servlet-class>com.dominikazb.earthquakes.servlets.PrintEarthquakesServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ReadLongitudeAndLatitudeServlet</servlet-name>
<servlet-class>com.dominikazb.earthquakes.servlets.ReadLongitudeAndLatitudeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PrintEarthquakesServlet</servlet-name>
<url-pattern>/PrintEarthquakesServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ReadLongitudeAndLatitudeServlet</servlet-name>
<url-pattern>/ReadLongitudeAndLatitudeServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>earthquakesList.jsp</welcome-file>
</welcome-file-list>
</web-app>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.dominikazb</groupId>
<artifactId>10closestEarthquakes</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>10closestEarthquakes Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<tomcat.version>7.0.50</tomcat.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.jsimone/webapp-runner -->
<dependency>
<groupId>com.github.jsimone</groupId>
<artifactId>webapp-runner</artifactId>
<version>9.0.27.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.6</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>1.9.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
</dependencies>
<build>
<finalName>10closestEarthquakes</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<wtpversion>2.0</wtpversion>
<wtpContextName>todo</wtpContextName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<verbose>true</verbose>
<source>1.8</source>
<target>1.8</target>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/</path>
<contextReloadable>true</contextReloadable>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<webappDirectory>${project.build.directory}/${project.artifactId}
</webappDirectory>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.github.jsimone</groupId>
<artifactId>webapp-runner</artifactId>
<version>9.0.27.0</version>
<destFileName>webapp-runner.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
最佳答案
主要的逻辑错误在这里:
distanceAndPlaceMapForAllCities.put(distanceBetweenTheCityAndEarthquakes, place);
distanceAndPlaceMapForAllCities = new TreeMap<>();
ObjectMapper om = new ObjectMapper();
...
关于Java WebApp 不断返回相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59562194/
我有一个在 Tomcat 7.0.54 上运行的 Java webapp。我在 webapp 中使用 Spring。当用户登录到/favicon.ico 时。当用户第二次登录时,他们将被重定向到正确的
如何使用通用的 webappclassloader 为 tomcat 中的所有 webapps 自定义 webapp 类加载器? 我看到我可以扩展类加载器并将其添加到每个 web 应用程序的上下文标记
我有一个 jquery mobile 和 php webapp,可以在 iOS7 中正常工作。我最近升级到 iOS8 进行一些测试,但我遇到了状态栏现在与 Web 应用程序标题重叠的问题。这似乎也导致
我注意到这些文件夹具有非常不同的属性。我最近在 webapps 文件夹下部署了一个 .war 文件。我注意到,一旦部署了 .war 文件,项目的未压缩版本就会添加到目录中。当我尝试修改未压缩版本中的任
假设您在本地主机的 Tomcat 上部署了一个名为 MyWebApp 的网络应用程序。如果您像这样使用浏览器访问它: localhost:8080/MyWebApp 那为什么会显示index.html
我正在寻找一种提示/解决方案来生成一个具有自定义设计的模板 Web 应用程序,然后我所有其他 Web 应用程序都应该采用模板 Web 应用程序的设计。那可能吗?背后的想法是,我们有多个用于项目的 We
我有一扇 Azure 前门。主要区域有一个 azure 功能,辅助区域有一个功能应用程序。当这两个功能都启动时,它工作正常。它正在向每个区域分配 50-50 个负载。但是当我故意停止主要功能时。所有流
这个问题已经有答案了: Getting Python error "from: can't read /var/mail/Bio" (7 个回答) 已关闭去年。 几天前我开始使用 python nfl
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我有一个在 Apache Tomcat 5.5 中完美运行的 Web 应用程序,我需要“转换它”以便它可以部署在 Oracle 应用服务器 10.1.3 中。 现在我制作了一个应用程序的 WAR 文件
我在 jsp 中有 2 个 webapps,其中一个供公共(public)使用,另一个供本地使用。 是否可以在 Apache tomcat 中的一个端口上托管一个 Web 应用程序而在另一个端口上托管
最近,我一直在对模块化JS进行大量试验,但我仍然想知道是否以“正确的方式”编写它。 例如,如果我有一个页面,其中包含输入和提交按钮,这些页面应在提交后显示数据(例如表格和图形),所以我在IFFE下编写
我有一个部署为 web 应用程序的 google 脚本。此 webapp 需要发送带有 webapp 的 URL 的电子邮件,以便收件人可以使用 URL 访问 webapp。如何获取 webapp 中
我们正在部署在.Net core中开发的微服务,并将部署在Azure WebApp中 这些 WebApp 之间将进行大量通信。 现在,由于 WebApp 面向互联网,它们之间的所有调用都将通过互联网,
这个问题已经有答案了: SEVERE: Failed to initialize Jenkins [closed] (1 个回答) 去年关闭。 我在 Ubuntu 12.04 中安装了 Jenkins
我看到一个奇怪的问题。我有两个网络应用程序。一个用于我们使用 Jersey 公开的其余 Web 服务。另一个具有 JSF 前端实现,它调用上面的 web 服务来获取详细信息。我们使用 Tomcat 作
这是我在探索工作场所中某些任务自动化的世界时遇到的一个普遍问题。 我们的企业网站上有一个门户/启动板环境,其中的应用程序显示为图 block 。 其中一个应用程序打开后有一个主页,其中有一堆搜索字段和
我有两个 Google 电子表格,每个电子表格都附加了一些 Apps 脚本。最终,我想将两者部署为 Web 应用程序,以便它们可以通过其公共(public) URL 相互通信。目前,我只部署了其中一个
当我尝试运行 ngserve 时,我得到以下信息 ERROR in ./src/main/webapp/manifest.webapp Module parse failed: /home/ferga
这个问题在这里已经有了答案: Eclipse Output Folders (6 个答案) 关闭 5 年前。 我正在使用 Tomcat 5,当我启动服务器并从 webapp 文件夹加载我的应用程序时
我是一名优秀的程序员,十分优秀!