要运行J2EE的程序,就必须安装相关的容器,而如何选择JSP+Servlet模式。Tomcat是很重要的选择之一,是世界上最为广泛的Servlet和JSP容器。
下载:
1. URL: http://tomcat.apache.org/ Tomcat 7.0.52
2. 单击左面”Tomcat 7.0”,进入Tomcat 7.0.52页面
3. 单击Binary Distributions下面的,操作系统匹配的ZIP文件。
配置:
1. 将下载后的文件解压缩到D:\apache-tomcat-7.0.52目录。
2. 在系统环境变量中新增加一个环境变量TOMCAT_HOME
TOMCAT_HOME=D:\apache-tomcat-7.0.52
验证:
验证Tomcat安装是否成功,步骤如下:
1. 双击Tomcat安装目录下的bin中的startup.bat,启动 Tomcat.
2. 在IE中输入http://localhost:8080,测试Tomcat启动成功,欢迎界面:
TroubleShooting:
确定服务启动之后,此页面打不开,很可能是安装Oracle服务,占用了8080端口
Tomcat的所有配置文件都在conf文件夹中,server.xml是核心配置文件。
打开conf文件夹中的server.xml
<Connector port="8080"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
将8080更改为对应端口即可,此处改为80端口。
<Connector port="80"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
此后启动时只需输入80端口即可。
重新启动,查看效果。
80端口是浏览器默认的端口,可以不输入80,其他端口则需要输入,如果是服务器,输入服务器IP.
3. 点击Examples,可以看到JspExamples, Servlets Examples. 进去可以看到Source及Excute效果. 此外还有JDBCDataSource,可以看到如何连接不同数据库。
创建和发布JSP应用程序:
1. 在D:\apache-tomcat-7.0.52\webapps目录下新建文件夹myHelloWorld。
2. 在此文件夹中新建jsp文件夹,并编写HelloWorld.jsp放在此文件中
<%@ pagecontentType="text/html; charset=UTF-8"language="java"import="java.sql.*" errorPage="" %>
<html>
<head>
<title>HelloWorld.jsp@D:\apache-tomcat-7.0.52\webapps\</title>
</head>
<body>
<font size=20>
<%
out.print("HelloWorld.jsp\"@D:\\apache-tomcat-7.0.52\\webapps\"");%>
</font>
</body>
</html>
3. 输入http://127.0.0.1/myHelloWorld/jsp/HelloWorld.jsp
注意:
如果示例不放在Tomcat的webapps文件夹下,则要修改Tomcat的conf文件下的server.xml文件,并重启Tomcat服务让其生效,如果放在此目录下,则不用做改动。
创建和发布Servlet应用程序:
实现思路:首先编写一个继承HttpServlet类,编译该类;然后配置web.xml;最后启动Tomcat.
1. 在myHelloWorld文件夹中新建文件夹com,在com下新建文件夹myHelloWorld,然后再该文件夹下编写输出 HelloWorld的Servlet文件HelloWorld.java。代码如下:
packagecom.myHelloWorld;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
publicclass HelloWorld extends HttpServlet {
public void doGet(HttpServletRequestrequest,HttpServletResponse response)throws IOException,ServletException {
PrintWriter out = response.getWriter();
out.write("<html>\r\n");
out.write("<head>\r\n");
out.write("<meta http-equiv=\"Content-Type\"content=\"text/html; charset=UTF-8\">\r\n");
out.write("</head>\r\n");
out.write("\r\n");
out.write("<body>\r\n");
out.write("<font size=20>\r\n");
out.print("Servlet to HelloWorld");
out.write("\r\n");
out.write("</font>\r\n");
out.write("</body>\r\n");
out.write("</html>");
}
}
2. 编译该java文件,并将编译后的HelloWorld.class放到myHelloWorld\WEB-INF\classes\com\myHelloWorld文件夹中
注意:
如果在命令行中编译,则需要将servlet-api.jar加到classpath中
3. 在myHelloWorld\WEB-INF文件夹下建web.xml,输入如下代码
<?xmlversion="1.0" encoding="UTF-8"?>
<web-appversion="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<!—设定Servlet-->
<servlet-name>Servlet</servlet-name>
<servlet-class>com.myHelloWorld.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<!—设定Servlet的对应关系-->
<servlet-name>Servlet</servlet-name>
<url-pattern>/do</url-pattern>
</servlet-mapping>
</web-app>
代码说明:凡是后缀为/do的请求都将通过com.myHelloWorld.HelloWorld来进行处理。
4. 启动Tomcat,并在IE中输入如下连接:http://127.0.0.1/myHelloWorld/do
注意:
如何显示有代码,则很可能是web.xml里面的代码造成的。所以在编码的时候一定要注意乱码的问题。
Web应用程序的目录结构如下图: