I was checking some of your tutorial server examples and I notice you do something like this (from Server->JSP
<title>My Home Page</title>
<h1>Welcome to my web page!</h1>
<p>Click <a href="http://localhost:8080/MyWebApp/current-time">here</a> to see the current time.</p>
You create a reference to your localhost. If you deploy, you would need to change all these lines to relative path, right? I was wondering why you wrote it this way and don’t stick to relative paths. I can see it is clear for a beginner but I would think relative paths would be the right approach at the end.
Mostly the reason I took this approach was because the tutorials use webapps underneath directories: stuff like
HelloWebApp which can be accessed via URLs like
http://localhost:8080/HelloWorldWebApp. Using relative URLs with these is a bit annoying, so I opted for the full URL just to make things explicit.
But you’re right- in the end, relative URLs are the way to go. In a “real” project you probably only have one web app at the top level which can be accessed via the URL
http://localhost:8080, which makes relative URLs much easier.
In hindsight I should probably have just used single top-level web apps from the beginning. I’m always happy to accept pull requests for this kind of thing!
Single top-level, do you mean they are located in the same under the same url pattern as defined in the
<servlet-mapping> in the web.xml file? I think your approach also demonstrates how to hide jsp from the user.
So in the final product, could I replace
<a href="http://localhost:8080/MyWebApp/current-time"> with
<a href="/MyWebApp/current-time"> ?
Not exactly. I mean that basically I should have used the
root web app for everything and only focused on one web app at a time.
This is explained a bit here:
Then the URL would be:
This matches how things work when you deploy it to a “real” server, and it simplifies things quite a bit.