JSP/Servlet环境配置

  1. 下载安装JDK并配置环境变量
    这里我下载安装的是jdk-7u51-windows-i586,如果你没有请到
    Oracle官网下载;
    【我的电脑】-【高级系统设置】-【环境变量】-系统变量中的Path添加Java bin目录;
    命令窗口测试配置环境变量正确与否。
  2. 下载服务器
    我学习使用的是Web容器apache-tomcat-7.0.50-windows-x86,如果没有请到
    Apache下载。
  3. 配置服务器
    确定SDK安装目录,即JAVA_HOME环境变量,这一步应该在第一步中已经配置;
    指定端口,默认是8080,如果你不喜欢用它,或者该端口被占用,应该指定为其它;
    执行startup.bat启动Tomcat,在浏览器中测试。
  4. 建立开发环境
    创建开发目录,我这里的为D:\project\MyServlet\src
    设置CLASSPATH,主要是为了告诉编译器Servlet类的位置,值为“.;D:\project\MyServlet\src;D:\tools\apache-tomcat-7.0.50\lib\servlet-api.jar”,配置如下:

    创建快捷方式,方便测试时快速启动和关闭Tomcat。
  5. 测试系统环境变量
    检查服务器的基本配置
    将helloworld.html和helloworld.jsp放置到<CATALINA_HOME>/webapps/ROOT下
    helloworld.html
    <html>
    <head>
    <title>test</title>
    </head>
    <body>
    Hello world
    </body>
    </html>
    helloworld.jsp
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>jsp test</title>
    </head>
    <body bgcolor="#fdf5e6">
    <h1>Hello JSP.</h1>
    Time:<%= new java.util.Date() %>
    </body>
    </html>
    浏览器访问:


    测试不使用包的Servlet
    在命令窗口下编码HelloServlet.java,将编译后的class文件放到<CATALINA_HOME>/webapps/ROOT/WEB-INF/class下
    HelloServlet.java
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    /** Simple servlet used to test server.*/
    public class HelloServlet extends HttpServlet{
    	public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
    		response.setContentType("text/html");
    		PrintWriter out=response.getWriter();
    		String docType="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 "+"Transitional//EN\">\n";
    		out.println(docType+
    					"<html>\n"+
    					"<head><title>Hello</title></head>\n"+
    					"<body bgcolor=\"#fdf5e6\">\n"+
    					"<h1>Hello world</h1>\n"+
    					"</body></html>");
    	}
    	public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
    		this.doGet(request,response);
    	}
    }
    编译HelloServlet.java

    因为我们使用的是tomcat7,无法使用其调用器invoker,所以要手动添加映射,打开<CATALINA_HOME>/webapps/ROOT/WEB-INF下的web.xml,编辑如下:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!--
     Licensed to the Apache Software Foundation (ASF) under one or more
      contributor license agreements.  See the NOTICE file distributed with
      this work for additional information regarding copyright ownership.
      The ASF licenses this file to You under the Apache License, Version 2.0
      (the "License"); you may not use this file except in compliance with
      the License.  You may obtain a copy of the License at
    
          http://www.apache.org/licenses/LICENSE-2.0
    
      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
    -->
    
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      version="3.0"
      metadata-complete="true">
    
      <display-name>Welcome to Tomcat</display-name>
      <description>
         Welcome to Tomcat
      </description>
      <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/HelloServlet</url-pattern>
      </servlet-mapping>
      
    </web-app>
    
    启动Tomcat,在浏览器访问,如下,则说明正确

    测试使用的Servlet
    带包的HelloServlet2.java如下:

    package coreservlets;
    
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    /** Simple servlet used to test server.*/
    public class HelloServlet2 extends HttpServlet{
    	public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
    		response.setContentType("text/html");
    		PrintWriter out=response.getWriter();
    		String docType="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 "+"Transitional//EN\">\n";
    		out.println(docType+
    					"<html>\n"+
    					"<head><title>Hello</title></head>\n"+
    					"<body bgcolor=\"#fdf5e6\">\n"+
    					"<h1>Hello world (2)</h1>\n"+
    					"</body></html>");
    	}
    	public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
    		this.doGet(request,response);
    	}
    }

    像上面一样,编译之后就class文件拷贝到<CATALINA_HOME>/webapps/ROOT/WEB-INF/class/coreservlets包下,并在web.xml文件中增加如下内容

    <servlet>
        <servlet-name>hello2</servlet-name>
        <servlet-class>coreservlets.HelloServlet2</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>hello2</servlet-name>
        <url-pattern>/HelloServlet2</url-pattern>
      </servlet-mapping>

    在这里要注意,web.xml中,引用HelloServlet2时,包与class文件之间的分隔符是圆点“.";classes下的包名要与package coreservlets一致,否则,你懂的。
    重启tomcat,在浏览器测试,如下


    测试使用包和实用工具类的Servlet
    HelloServlet3.java

    package coreservlets;
    
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    /** Simple servlet for testing the use of packages
    *and utilities from the same package*/
    public class HelloServlet3 extends HttpServlet{
    	public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
    		response.setContentType("text/html");
    		PrintWriter out=response.getWriter();
    		String title="Hello (3)";
    		out.println(ServletUtilities.headWithTitle(title)+
    					"<body bgcolor=\"#fdf5e6\">\n"+
    					"<h1>"+title+"</h1>\n"+
    					"</body></html>");
    	}
    	public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
    		this.doGet(request,response);
    	}
    }

    ServletUtilities.java

    package coreservlets;
    
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    /**Some simple timesavers.Note that most are static methods.*/
    public class ServletUtilities {
    	public static final String DOCTYPE="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 "+"Transitional//EN\">\n";
    	public static String headWithTitle(String title){
    		return(DOCTYPE+"\n"+"<html>\n"+"<head><title>"+title+"</title></head>\n");
    	}
    }
    	

    剩下的就是编译,拷贝,修改web.xml,重启Tomcat,最后在浏览器中测试如下:



小结:是不是很麻烦呢?每次我都要调用javac filepath进行编译,编译之后再copy到tomcat下,太机械重复了,有没有简单的呢?

当然有了,这是下面要学习的内容,且看我们下篇学习吧!






没有更多推荐了,返回首页