Tomcat7.0下配置javabean&servlet路径问题

1.配置javaBean路径

  (以下是我个人的配置步骤)

  -在Tomcat的安装目录F:\Apache Software Foundation\Tomcat 7.0下找到webapps目录。进入该目录后新建文件夹“myapps”。

  -在myapps文件夹下新建文件夹“WEB-INF”,在“WEB-INF”下新建文件夹“classes”。

  -将编译后的"*.class"文件放到“classes”文件夹下。

  -编写jsp文件。放置在“F:\Apache Software Foundation\Tomcat 7.0\webapps\myapps”下。

以下为一简单例子:

Box.java

 1 package test;
 2 public class Box {
 3     double length;
 4     double width;
 5     double height;
 6     public Box(){
 7         length = 0;
 8         width = 0;
 9         height = 0;
10     }
11     public double getLength() {
12         return length;
13     }
14     public void setLength(double length) {
15         this.length = length;
16     }
17     public double getWidth() {
18         return width;
19     }
20     public void setWidth(double width) {
21         this.width = width;
22     }
23     public double getHeight() {
24         return height;
25     }
26     public void setHeight(double height) {
27         this.height = height;
28     }
29     public double volumn(){
30         return length * width * height;
31     }
32     public double surfaceArea(){
33         return (length * width + length * height + width * height) * 2;
34     }
35     
36 }

请留意第一行的“package test;”,Box.java是在包test下的,所以编译后的字节码文件Box.class在Tomcat目录下的路径是

“F:\Apache Software Foundation\Tomcat 7.0\webapps\myapps\WEB-INF\classes\test\Box.class”。

这将直接影响到jsp文件的编写。

 

javaBean.jsp

 1 <%@ page contentType="text/html;charset=utf-8" %>
 2 <%@ page import="test.Box" %>
 3 <HTML>
 4 <body>
 5 <jsp:useBean id="box" class="test.Box" scope="page">
 6 </jsp:useBean>
 7 <%
 8 box.setLength(10);
 9 box.setWidth(11);
10 box.setHeight(12);
11 out.println("在JSP中使用JavaBean<br>");
12 out.println("盒子的长度为:"+box.getLength()+"<br>");
13 out.println("盒子的宽度为:"+box.getWidth()+"<br>");
14 out.println("盒子的高度为:"+box.getHeight()+"<br>");
15 out.println("盒子的容积为:"+box.volumn()+"<br>");
16 out.println("盒子的表面积为:"+box.surfaceArea()+"<br>");
17 %>
18 </body>
19 </HTML>

注意第2行和第5行代码中Box类的导入。
useBean命令中class为JavaBean类名,如果类之上还有包,那么这个参数就要用形如“包名.类名”的形式表示。

最后在浏览器中输入http://localhost:8080/myapps/javaBean.jsp即可看到程序执行结果。

2.servlet的路径配置

  -首先在之前创建的F:\Apache Software Foundation\Tomcat 7.0\webapps\myapps\WEB-INF\classes文件夹中粘贴servlet的“.class”文件。

  (下例中的字节码文件路径是F:\Apache Software Foundation\Tomcat 7.0\webapps\myapps\WEB-INF\classes\servlet\FirstServlet.class

  -接下来在F:\Apache Software Foundation\Tomcat 7.0\webapps\myapps\WEB-INF新建文本文档,输入下列内容后,保存为“web.xml”。

 1 <?xml version="1.0" encoding="ISO-8859-1"?> 
 2 <!DOCTYPE web-app 
 3 PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
 4 "http://java.sun.com/dtd/web-app_2_3.dtd"> 
 5 <web-app> 
 6 <display-name>My Web Application</display-name> 
 7 <description> 
 8 A application for test. 
 9 </description> 
10 <servlet> 
11 <servlet-name>FirstServlet</servlet-name> 
12 <display-name>FirstServlet</display-name> 
13 <description>A test Servlet</description> 
14 <servlet-class>servlet.FirstServlet</servlet-class> 
15 </servlet> 
16 <servlet-mapping> 
17 <servlet-name>FirstServlet</servlet-name> 
18 <url-pattern>/servlet/FirstServlet</url-pattern> 
19 </servlet-mapping> 
20 </web-app> 

注意第11、14、17、18行为对应的servlet名和路径。

  -配置好web.xml文件后,在浏览器输入http://localhost:8080/myapps/servlet/FirstServlet即可查看到程序结果。

附上FisrtServlet的源代码

注意包javax.servlet.*JDK中并没有自带,需要另外导入。我的是直接从Tomcat的lib目录下复制过来的。

 1 package servlet;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 
 6 import javax.servlet.ServletConfig;
 7 import javax.servlet.ServletException;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11 
12 public class FirstServlet extends HttpServlet{
13 
14     @Override
15     protected void service(HttpServletRequest request, HttpServletResponse response)
16             throws ServletException, IOException {
17         // TODO Auto-generated method stub
18         response.setContentType("texr/html;charset=GB2312");
19         PrintWriter out = response.getWriter();
20         out.println("<HTML><BODY>");
21         out.println("这是一个简单的servlet");
22         out.println("客户端的IP地址是:"+request.getRemoteAddr()+"<br>");
23         out.println("</BODY></HTML>");
24     }
25 
26     @Override
27     public void init(ServletConfig config) throws ServletException {
28         // TODO Auto-generated method stub
29         super.init(config);
30     }
31     
32 }

———————————————————————————————————————————————————————————————————————————————
本文仅介绍了一些表面的处理,对于其内在的原理并无深入分析研究,要更进一步了解还需多多百度谷歌。

posted on 2013-07-15 19:49  我是一只猫  阅读(388)  评论(0编辑  收藏  举报

导航