Today's things: HTML JavaScript client and some other things
This commit is contained in:
parent
7108e73c65
commit
5e8529e89e
2
.idea/compiler.xml
generated
2
.idea/compiler.xml
generated
@ -15,7 +15,7 @@
|
||||
<module name="MoviesApp" target="11" />
|
||||
<module name="MoviesClient" target="10" />
|
||||
<module name="MoviesCommon" target="9" />
|
||||
<module name="MoviesWebApp" target="9" />
|
||||
<module name="MoviesWebApp" target="10" />
|
||||
</bytecodeTargetLevel>
|
||||
</component>
|
||||
</project>
|
3
.idea/misc.xml
generated
3
.idea/misc.xml
generated
@ -5,6 +5,9 @@
|
||||
<file type="web" url="file://$PROJECT_DIR$/MoviesCommon" />
|
||||
<file type="web" url="file://$PROJECT_DIR$/MoviesWebApp" />
|
||||
</component>
|
||||
<component name="JavaScriptSettings">
|
||||
<option name="languageLevel" value="ES6" />
|
||||
</component>
|
||||
<component name="MavenProjectsManager">
|
||||
<option name="originalFiles">
|
||||
<list>
|
||||
|
@ -15,7 +15,7 @@ public class MoviesWebServiceClient {
|
||||
|
||||
// TODO: Move to a better place
|
||||
|
||||
// Import moviess
|
||||
// Import movies
|
||||
List<Movie> movies = XmlHelper.xmlToMovies("movietest.xml");
|
||||
port.importMovies(movies);
|
||||
|
||||
|
40
MoviesClient/web/index.html
Normal file
40
MoviesClient/web/index.html
Normal file
@ -0,0 +1,40 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Movies App</title>
|
||||
|
||||
<script>
|
||||
"use strict";
|
||||
|
||||
const MOVIES_RESOURCE_URL = "http://localhost:8080/movieservice/resources/movie";
|
||||
|
||||
let loadNews = function () {
|
||||
let options = {
|
||||
mode: "cors",
|
||||
headers: {
|
||||
"Accept": "application/json"
|
||||
}
|
||||
};
|
||||
|
||||
// Studios: ID dranhängen -> 2. Aufruf -> Alert dranhängen
|
||||
fetch(MOVIES_RESOURCE_URL, options)
|
||||
.then(response => response.json())
|
||||
.then(function (moviesList) {
|
||||
let html = moviesList.map(movie =>
|
||||
`<h2>${movie.title}</h2>
|
||||
<p>${movie.description}</p>`)
|
||||
.join("");
|
||||
|
||||
document.getElementById("content").innerHTML = html;
|
||||
})
|
||||
.catch(error => document.getElementById("content").innerHTML = `Error: ${error}`);
|
||||
};
|
||||
document.addEventListener("DOMContentLoaded", loadNews);
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Movies in JavaScript</h1>
|
||||
<div id="content"></div>
|
||||
</body>
|
||||
</html>
|
@ -22,7 +22,7 @@
|
||||
</configuration>
|
||||
</facet>
|
||||
</component>
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_9">
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_10">
|
||||
<output url="file://$MODULE_DIR$/target/classes" />
|
||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
|
@ -103,8 +103,8 @@
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>9</source>
|
||||
<target>9</target>
|
||||
<source>10</source>
|
||||
<target>10</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
@ -0,0 +1,37 @@
|
||||
package at.technikumwien.movies;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.ws.rs.container.ContainerRequestContext;
|
||||
import javax.ws.rs.container.ContainerResponseContext;
|
||||
import javax.ws.rs.container.ContainerResponseFilter;
|
||||
import javax.ws.rs.core.CacheControl;
|
||||
import javax.ws.rs.core.MultivaluedMap;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
|
||||
@Provider
|
||||
public class ResponseFilter implements ContainerResponseFilter {
|
||||
@Override
|
||||
public void filter(ContainerRequestContext request, ContainerResponseContext response) throws IOException {
|
||||
var requestHeaders = request.getHeaders();
|
||||
var responseHeaders = response.getHeaders();
|
||||
|
||||
responseHeaders.add("Access-Control-Allow-Origin", getRequestOrigin(requestHeaders));
|
||||
responseHeaders.add("Access-Control-Allow-Methods", "GET, DELETE, OPTIONS, POST, PUT");
|
||||
responseHeaders.add("Access-Control-Allow-Headers", getRequestHeaders(requestHeaders));
|
||||
|
||||
var cacheControl = new CacheControl();
|
||||
cacheControl.setNoCache(true);
|
||||
responseHeaders.add("Cache-Control", cacheControl);
|
||||
}
|
||||
|
||||
private String getRequestOrigin(MultivaluedMap<String, String> requestHeaders) {
|
||||
var origin = requestHeaders.getFirst("Origin");
|
||||
return (origin != null ? origin : "null");
|
||||
}
|
||||
|
||||
private String getRequestHeaders(MultivaluedMap<String, String> requestHeaders) {
|
||||
var headers = requestHeaders.get("Access-Control-Request-Headers");
|
||||
return (headers != null ? String.join(", ", headers) : "");
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user