浏览器与服务器连接
浏览器与服务器连接的一般过程:
ServerSocket serverSocket = new ServerSocket(80);
serverSocket.accept();
www.sohu.com+80(浏览器自动生成)->DNS(Domain Name Service)->221.179.180.20:80;
Socket socket = new Socket(221.179.180.20:80);
服务器的建立需要下载并启动Tomcat。
下载Tomcat:http://tomcat.apache.org/download-60.cgi
下载一个Tomcat的zip压缩包就行了。不需要安装Tomcat,解压后。只需要在apache-tomcat-6.0.30\bin目录下启动startup.bat就行了。
启动Tomcat,需要配置两个环境变量
JAVA_HOME:值为JDK的安装目录(bin目录的上一层目录)
CATALINA_HOME:值为解压后的安装目录。
在Tomcat的apache-tomcat-6.0.30\conf 目录下找到server.xml ,在</host>上面添加的内容是:
<Context path="/test" docBase="F:\java web\test\WebRoot" reloadable="true" />
path表示的是逻辑路径,
docBase表示的是物理路径。
reloadable表示的对其内容的变化自动进行加载。自己能更新服务器。
要想检查是否配置正确:先启动startup.bat,
然后在浏览器地址栏输入:http://localhost:8080/test/login.jsp
生成浏览器的流程:
浏览器 访问 服务器(Tomcat) 服务器找Servlet的资源。永远不会出现浏览器直接找Servlet。
helloworld程序.这是servlet的程序.
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloWorldServlet extends HttpServlet
{
@SuppressWarnings("deprecation")
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<html><head><title>Hello World Sample</title></head>");
out.println("<body><h1>Hello World:"+new Date().toLocaleString()+"</h1></body></html>");
System.out.println(new Date().toLocaleString());
out.flush();
}
}
HelloWorld.jsp
<body>
<h1>HelloWorld:<%=new java.util.Date().toLocaleString() %>></h1>. <br>
</body>
web.xml(deploymentdescriptor)部署描述符。
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>com.javaweb.servlet.HelloWorldServlet</servlet-class>
</servlet>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
程序执行的整个过程。
首先启动服务器Tomcat。
然后再地址栏输入:http://localhost:8080/test/HelloWorld.jsp
通过http://localhost:8080/test找到的server下的path逻辑路径,从而得到相应的物理路径。
进入<servlet-mapping>
HelloWorld与<url-pattern>/HelloWorld</url-pattern>相匹配。
向上找到了服务器的名字<servlet-name>HelloWorld</servlet-name>与之相匹配。
从而进入<servlet>
找到<servlet-class>com.javaweb.servlet.HelloWorldServlet</servlet-class>文件所在的位置,执行HelloWorld.class文件。
就会在浏览器页面显示HelloWorld。