本文假定你已安装了 JDK 环境,如未安装,可参阅 Java 开发环境配置 。
我们可以使用 Eclipse 来搭建 JSP 开发环境,首先我们分别下载一下软件包:
1.Tomcat 下载安装
你可以根据你的系统下载对应的包 (以下以 Window 系统为例):
下载之后,将压缩包解压到 D 盘(你可以自己选择):
注意目录名不能有中文和空格。目录介绍如下:
- bin:二进制执行文件。里面最常用的文件是 startup.bat,如果是 Linux 或 Mac 系统启动文件为 startup.sh。
- conf: 配置目录。里面最核心的文件是 server.xml。可以在里面改端口号等。默认端口号是 8080,也就是说,此端口号不能被其他应用程序占用。
- lib:库文件。tomcat 运行时需要的 jar 包所在的目录
- logs:日志
- temp:临时产生的文件,即缓存
- webapps:web 的应用程序。web 应用放置到此目录下浏览器可以直接访问
- work:编译以后的 class 文件。
接着我们可以双击 startup.bat 启动 Tomcat,弹出如下界面:
这个时候,本地的服务器就已经搭建起来了。如果想关闭服务器,可以直接关闭上面的窗口,或者在里面输入 Ctrl+C 禁止服务。
接着我们在浏览器中输入 http://localhost:8080/,如果弹出如下界面,表示 tomcat 安装成功并且启动起来了:
2. 将 Tomcat 和 Eclipse 相关联
选择菜单栏 Windows–>preferences(Mac 系统为 Eclipse–> 偏好设置),弹出如下界面:
上图中,点击 “add” 的添加按钮,弹出如下界面:
在选项中,我们选择对应的 Tomcat 版本,接着点击 “Next”,选择 Tomcat 的安装目录,并选择我们安装的 Java 环境:
点击 “Finish”,完成配置。
3. 创建实例
选择 “File–>New–>Dynamic Web Project”,创建 TomcatTest 项目:
点开上图中的红框部分,弹出如下界面:
注意如果已默认选择了我们之前安装的 Tomcat 和 JDK 则可跳过此步。
然后,单击 finish, 继续:
工程文件结构:
上图中各个目录解析:
- deployment descriptor:部署的描述。
- Web App Libraries:自己加的包可以放在里面。
- build:放入编译之后的文件。
- WebContent: 放进写入的页面。
在 WebContent 文件夹下新建一个 hello.jsp 文件。在下图中可以看到它的默认代码:
1 2 3 4 5 6 7 8 9 10 11 12
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body>
</body> </html>
|
接着我们修改下 test.jsp 文件代码如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.Date"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>hello</title> <style> body{ }
</style> </head> <body> <h1>今天天气真的好</h1> <h2>当前时间 <%=new Date() %></h2>
</body> </html>
|
接着我们运行该项目:
会在内置浏览器中输出:
亦可浏览器访问 http://localhost:8080/TomcatTest/test.jsp, 即可输出正常结果:
4.Servlet 实例创建
我们也可以使用以上环境创建 Servlet 文件,选择 “File–>New–>Servlet”:
HelloServlet.java 代码如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
package package1;
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
/** * Servlet implementation class HelloServlet */ @WebServlet("/HelloServlet") public class HelloServlet extends HttpServlet { private static final long serialVersionUID = 1L;
/** * @see HttpServlet#HttpServlet() */ public HelloServlet() { super(); // TODO Auto-generated constructor stub }
/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 使用 GBK 设置中文正常显示 response.setCharacterEncoding("GBK"); response.getWriter().write("百度:http://www.baidu.com"); }
/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }
}
|
创建 /TomcatTest/WebContent/WEB-INF/web.xml 文件(如果没有),代码如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" 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_2_5.xsd"> <servlet> <!-- 类名 --> <servlet-name>HelloServlet</servlet-name> <!-- 所在的包 --> <servlet-class>com.runoob.test.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <!-- 访问的网址 --> <url-pattern>/TomcatTest/HelloServlet</url-pattern> </servlet-mapping> </web-app>
|
Servlet3.0 新特性 (得 Tomcat7.0 版本及以上),@WebServlet 用于将一个类声明为 Servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet。*
接着重启 Tomcat,浏览器访问 http://localhost:8080/TomcatTest/HelloServlet: