You'd want to host on a server that's permanently turned on and permanently connected to the net. My guess is that your laptop is neither, so I wouldn't call that an option. Also, it needs to be reachable from the outside world on port 80, and that's generally not the case if you plug it into some network. Many ISPs don't allow servers to be run anyway.
But Java hosting can be gotten for as little as $5 per month. See the list here.
I have heard this debate that you should host your site at a geographic location that is closer to your target audience. Example if you intend that your audience would be in India then it is advisable (not by me ) to host preferably in India or in close proximity. The reason mentioned is to reduce the round time for each request.
Also it is worth noting that hosting in US is much much..cheaper as compared to in India. In India hosting is relatively costlier and you get less hosting space and other services that come with the hosting package. (I have also heard most plans sold in India are reseller plans which are baught from US webhosts!)
Only advantage that can be seen by hosting in a specific location would be its proximity to its target audience and faster access to website. Also maybe more accessable customer service.
[P.S: I have no connection with any hosting company what so ever. It is completely based on my prior "research" ]
I want to create my own website and host it. Can I host it on tomcat server?
If you are just going to use some dynamic pages then no need for tomcat. (You can instead use PHP as most host support PHP and if you are ready to learn some simple PHP. )
What is the process ?
1. You have to buy a domain name. (example: www.mywebsite.com) most hosting companies sell domain names seperately. (around Rs.400/year in India). Some hosting plans(especially US based hosting usually offer 1 free domain name with their hosting plans).
2. Now you need to point you domain name to the server where your website is hosted. Here is where you have to BUY a hosting plan to host your website on their server space.
do these people buy the server and host their sites?
You have option to have a dedicated server (only your website on that server-called Dedicated Hosting) or Shared hosting (many users share common server-this is preferable for personal website). Dedicated hosting plan is mostly used by companies who have higly specific requirements of which software/services should be running on the server so they get complete control for configuring the server and require huge hosting space.
For hosting personal website "shared hosting" is the way to go. You would typically be getting hosting space on the server typically from 5MB to 1GB (and more) depending on plan you buy. You should be going for this plan.
Also note that you need not BUY a hosting plan. You can instead host your website on some free hosting services on the net. But in this case you will be pointing you domain name to these free hosting service. Only drawback would be you would be having a subdomain on the free hosting service. Example www.mywebsite.freehostingx.com instead of www.mywebsite.com. Your domain name would still be the same. From end users perspective he still puts mywebsite.com in the address bar but your actual website would be hosted as a subdomain.So it would get redirected to www.mywebsite.freehostingx.com.
Personal webhosting would be better as it is quite affordable these days!
Colocation is NOT the same as shared hosting. In fact it's pretty much the exact opposite. With colocation you pay a hosting company to have your own machines installed at their location, using their backbone access, air conditioning system, and power supplies. Usually used only by companies needing many machines. That can cost you (without the hardware) thousands of dollars per month (depending on the amount of floorspace and services you require).
What you're most likely going to end up with for a personal site is shared hosting, which has your site run on the same machine with a number of others. That's the stuff you can get for a few dollars a month. Pay more and you get a larger part of that machine to yourself (less other sites hosted there), thus better performance and less chance of your site going down if some other site pulls heavy load.
In India, BSNL provides you a static IP (for web hosting) connection for 5000 INR per year with additional monthly charges depending on the usage. The bandwidth is low but okay for a personal website. Additionally you may want to register a domain (which costs around 10 USD per year) and provide the static IP address (obtained from your ISP provider) as an input to redirect the requests.
I didnt want to pay for a domain, or for a static IP address from my ISP, so use DDNS (Dynamic DNS).
My Home media server (MythTV), family photos, BitTorrent client, remote admin tools and alsorts of other bits and pieces can be accessed via a domain (wallaces.something.im.not.telling.you.com) provided by www.noip.com (others are freedns.org, dyndns.org? I think). My router automatically updates noip.com if my WAN ipaddress changes so that to the internet user the change is seemless. All the required ports are forwarded to my server that sits in the living room.
Its only used for me and my family so bandwidth usage is not an issue, neither is 'guarranteed uptime' - the great thing is I have 450GB of space to share with the outside world for the bargain ongoing price of $0!
I am not very sure about the IP part. Isnt that taken care by the webhost in case of shared hosting? I mean the things I need to do is just buy a domain name and some webhosting space where I can upload my website files and not worry about getting a static IP address (or any dynamic IP address for that matter.)(I hope that is taken care by the webhost and the person hosting the site neednot bother about that? For shared hosting how does it work? Do I need to know any IP address?). Please correct me if I am wrong.
To put it straight do I Also need to buy an static IP?
The issue of buying a static IP address only comes up if you host something on your own computer, in which case you need to get one from your ISP. If you host your domain with a provider then the issue is moot, just like you suspected.