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="MoviesApp" target="11" />
|
||||||
<module name="MoviesClient" target="10" />
|
<module name="MoviesClient" target="10" />
|
||||||
<module name="MoviesCommon" target="9" />
|
<module name="MoviesCommon" target="9" />
|
||||||
<module name="MoviesWebApp" target="9" />
|
<module name="MoviesWebApp" target="10" />
|
||||||
</bytecodeTargetLevel>
|
</bytecodeTargetLevel>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</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$/MoviesCommon" />
|
||||||
<file type="web" url="file://$PROJECT_DIR$/MoviesWebApp" />
|
<file type="web" url="file://$PROJECT_DIR$/MoviesWebApp" />
|
||||||
</component>
|
</component>
|
||||||
|
<component name="JavaScriptSettings">
|
||||||
|
<option name="languageLevel" value="ES6" />
|
||||||
|
</component>
|
||||||
<component name="MavenProjectsManager">
|
<component name="MavenProjectsManager">
|
||||||
<option name="originalFiles">
|
<option name="originalFiles">
|
||||||
<list>
|
<list>
|
||||||
|
@ -15,7 +15,7 @@ public class MoviesWebServiceClient {
|
|||||||
|
|
||||||
// TODO: Move to a better place
|
// TODO: Move to a better place
|
||||||
|
|
||||||
// Import moviess
|
// Import movies
|
||||||
List<Movie> movies = XmlHelper.xmlToMovies("movietest.xml");
|
List<Movie> movies = XmlHelper.xmlToMovies("movietest.xml");
|
||||||
port.importMovies(movies);
|
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>
|
</configuration>
|
||||||
</facet>
|
</facet>
|
||||||
</component>
|
</component>
|
||||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_9">
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_10">
|
||||||
<output url="file://$MODULE_DIR$/target/classes" />
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
|
@ -103,8 +103,8 @@
|
|||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>9</source>
|
<source>10</source>
|
||||||
<target>9</target>
|
<target>10</target>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</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