经常看到jsp的初学者问tomcat下如何配置jsp、servlet和bean,数据库连接池,虚拟目录等问题,于是总结了一下如何tomcat下配置jsp、servlet和bean,连接池,虚拟目录希望对那些初学者有所帮助。
一、开发环境配置
第一步:下载j2sdk和tomcat:到sun官方站(http://java.sun.com/j2se/1.5.0/download.jsp)下载j2sdk,注意下载版本为Windows Offline Installation的SDK,同时最好下载J2SE 1.5.0 Documentation,然后到tomcat官方站点(http://jakarta.apache.org/site/downloads/downloads_tomcat-5.cgi)下载tomcat(下载最新5.5.9版本的tomcat);
第二步:安装和配置你的j2sdk和tomcat:执行j2sdk和tomcat的安装程序,然后按默认设置进行安装即可。
1.安装j2sdk以后,需要配置一下环境变量,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的j2sdk安装在c:/j2sdk1.5.0):
JAVA_HOME=c:/j2sdk1.5.0
classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;(.;一定不能少,因为它代表当前路径)
path=%JAVA_HOME%/bin
接着可以写一个简单的java程序来测试J2SDK是否已安装成功:
public class Test{
public static void main(String args[]){
System.out.println("This is a test program.");
}
}
将上面的这段程序保存为文件名为Test.java的文件。
然后打开命令提示符窗口,cd到你的Test.java所在目录,然后键入下面的命令
javac Test.java
java Test
此时如果看到打印出来This is a test program.的话说明安装成功了,如果没有打印出这句话,你需要仔细检查一下你的配置情况。
2.安装Tomcat后,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的tomcat安装在c:/tomcat):
CATALINA_HOME=c:/tomcat
CATALINA_BASE=c:/tomcat
然后修改环境变量中的classpath,把tomat安装目录下的common/lib下的(可以根据实际追加)servlet.jar追加到classpath中去,修改后的classpath如下:
classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%CATALINA_HOME%/common/lib/servlet.jar;
接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。
第三步:建立自己的jsp app目录
1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带的的目录;
2.在webapps目录下新建一个目录,起名叫myapp;
3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的;
4.WEB-INF下新建一个文件web.xml,内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>My Web Application</display-name>
<description>
A application for test.
</description>
</web-app>
5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如下:
<html>
<body>
<center>
Now time is: <%=new java.util.Date()%>
</center>
</body>
</html>
6.重启Tomcat
7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 看到当前时间的话说明就成功了。
第四步:建立自己的Servlet:
1.用你最熟悉的编辑器(建议使用有语法检查的java ide)新建一个servlet程序,文件名为Test.java,文件内容如下:
package test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Test extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out=response.getWriter();
out.println("<html><body><h1>This is a servlet test.</h1></body></html>");
out.flush();
}
}
}
2 .编译
将Test.java放在c:/test下,使用如下命令编译:
C:/Test>javac Test.java
然后在c:/Test下会产生一个编译后的servlet文件:Test.class
3 .将结构test/Test.class剪切到%CATALINA_HOME%/webapps/myapp/WEB-INF/classes下,也就是剪切那个test目录到classes目录下,如果classes目录不存在,就新建一个。 现在webapps/myapp/WEB-INF/classes下有test/Test.class的文件目录结构
4 .修改webapps/myapp/WEB-INF/web.xml,添加servlet和servlet-mapping
编辑后的web.xml如下所示,红色为添加的内容:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>My Web Application</display-name>
<description>
A application for test.
</description>
<servlet>
<servlet-name>Test</servlet-name>
<display-name>Test</display-name>
<description>A test Servlet</description>
<servlet-class>test.Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
</web-app>
这段话中的servlet这一段声明了你要调用的Servlet,而servlet-mapping则是将声明的servlet"映射"到地址/Test上
5 .好了,重启动Tomcat,启动浏览器,输入http://localhost:8080/myapp/Test 如果看到输出This is a servlet test.就说明编写的servlet成功了。
注意:修改了web.xml以及新加了class,都要重启Tomcat
第四步:建立自己的Bean:
1.用你最熟悉的编辑器(建议使用有语法检查的java ide)新建一个java程序,文件名为TestBean.java,文件内容如下:
package test;
public class TestBean{
private String name = null;
public TestBean(String strName_p){
this.name=strName_p;
}
public void setName(String strName_p){
this.name=strName_p;
}
public String getName(){
return this.name;
}
}
2 .编译
将TestBean.java放在c:/test下,使用如下命令编译:
C:/Test>javac TestBean.java
然后在c:/Test下会产生一个编译后的bean文件:TestBean.class
3 .将TestBean.class文件剪切到 %CATALINA_HOME%/webapps/myapp/WEB-INF/classes/test下,
4 .新建一个TestBean.jsp文件,文件内容为:
<%@ page import="test.TestBean" %>
<html>
<body>
<center>
<%
TestBean testBean=new TestBean("This is a test java bean.");
%>
Java bean name is: <%=testBean.getName()%>
</center>
</body>
</html>
5 .好了,重启Tomcat,启动浏览器,输入http://localhost:8080/myapp/TestBean.jsp 如果看到输出Java bean name is: This is a test java bean.就说明编写的Bean成功了。
这样就完成了整个Tomcat下的jsp、servlet和javabean的配置。接下来需要做的事情就是多看书、多读别人的好代码,自己多动手写代码以增强自己在这方面开发的能力了。
配置TOMCAT5.5.X连接池(sqlserver版)
1. 进入tomcat目录下的conf文件夹目录里,找到Server.xml
在tomcat的Server.xml文件中在</Context>标签与</Host>标签里,定议连接语句,格式如下
<!—path定议你的应用程序的目录所 ,/DBTest表示在Tomcat Webapps目录下à
<!—docBase=”DBTest” 表示你执行止程序时路径名称,例如以下的执行路径就是http://localhost:8080/DBTest-->
<Context path="/DBTest" docBase="DBTest"
debug="5" reloadable="true" crossContext="true">
<!-- maxActive: 连接池的最大数量,要确保有足够的连接数-->
<!-- maxIdle: 最大空闲连接数,设置为-1即表示不限制-->
<!-- maxWait:最长等待连接时间(最大等待连接池反回可用的时间), 以纳秒为单位,即设为10000相等于10秒,如果设置成-1表示不确定-->
<!-- username and password: 连接数据库使用的帐号与密码-->
<!-- driverClassName:连接数据库的驱动程序,如SQLServer就是
com.microsoft.jdbc.sqlserver.SQLServerDriver.-->
<!-- url: 连接数据库路径,如
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=KB_Rate-->
<Resource name=" Default_JDBC " auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="javauser" password="javadude"
driverClassName=" com.microsoft.jdbc.sqlserver.SQLServerDriver "
url=" jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=KB_Rate""/>
</Context>
配置完成后,在DBTest目录下添加一个Test文件,如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%
Connection conn = null;
Context initCtx = new InitialContext();
if (initCtx == null)
throw new Exception("不能获取Context!");
Context ctx = (Context) initCtx.lookup("java:comp/env");
Object obj = (Object) ctx.lookup("/Default_JDBC ");//获取连接池对象
javax.sql.DataSource ds = (javax.sql.DataSource) obj; //类型转换
conn = ds.getConnection();
Statement stmt = conn.createStatement();
PreparedStatement ps=conn.prepareStatement("select * from FinalOrderdata");
ResultSet rs=ps.executeQuery();
while(rs.next()){
out.println(rs.getString(1)+"<BR>");
i++;
}
rs.close();
stmt.close();
conn.close();
out.println("连接池测试成功"+i);
到于TOMCAT5.0版本的设置也是差不多,不过在Server.xml中添加连接池设置语句上有所有不,可参考
其它操作也是差不多,
<Context path="/DBTest" docBase="DBTest"
debug="5" reloadable="true" crossContext="true">
<Context path="/DBTest" docBase="DBTest"
debug="5" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_DBTest_log." suffix=".txt"
timestamp="true"/>
<Resource name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/TestDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to -1 for no limit.See also the DBCP documentation on this
and the minEvictableIdleTimeMillis configuration parameter.
-->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<!-- Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded.Set to -1 to wait indefinitely.
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MySQL dB username and password for dB connections-->
<parameter>
<name>username</name>
<value>javauser</value>
</parameter>
<parameter>
<name>password</name>
<value>javadude</value>
</parameter>
<!-- Class name for the old mm.mysql JDBC driver - uncomment this entry and comment next
if you want to use this driver - we recommend using Connector/J though
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
-->
<!-- Class name for the official MySQL Connector/J driver -->
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<!-- The JDBC connection url for connecting to your MySQL dB.
The autoReconnect=true argument to the url makes sure that the
mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
connection.mysqld by default closes idle connections after 8 hours.
-->
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/javatest?autoReconnect=true</value>
</parameter>
</ResourceParams>
</Context>
有不足的地方,请各为指正!
如何配置Tomcat的虚拟目录
ROOT是tomcat的默认虚拟目录,如果要改成自己的虚拟目录怎么办呢?请继续往下看吧。
要改成自己的虚拟目录,就要请出server.xml来了,该文件是一个配置文件,在Tomcat/conf目录下,使用任何文本编辑软件都能打开它,我们先找到下面一句:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
useURIValidationHack="false" disableUploadTimeout="true" />
这里的port="8080"就是端口,我们完全可以用别的端口来代替,但不能是被系统占用的端口(0--1023),这里简单提一下。
下面我们再往下找,会发现以下的语句:
</Context>
</Host>
我们就应该找到这两个语句,如果不懂E文,您就认定这两个语句好了。然后我们将该语句更改如下:
</Context>
<Context path="/myjsp" debug="0" docBase="e:/myjsp" reloadable="true">
</Context>
</Host>
这里的path="/myjsp"就是我们就配置的虚拟目录了,以后在地址栏中输入http://localhost:8080/myjsp即可。而docBase="e:/myjsp" 则是机器本地路径,他们通过这个语句形成一个映射关系,其它照抄。
将上面的First.jsp文件放到e:/myjsp目录下,输入http://localhost:8080/myjsp/First.jsp,是不是有一种喜上眉梢的感觉?
在论坛里我见得最多的就是很多人不知道javaBean文件放到哪里,老实说开始我也不知道,更令人不解的是,十个人有九种不同的说法,这更让我们茫然。其实这问题也不是我们想像的那么复杂,我们以一个例子说明:
先建立一个java程序,代码如下:
package hall;
public class SimpleBean {
private String message = "No message specified";
public String getMessage() {
return(message);
}
public void setMessage(String message) {
this.message = message;
}
}
保存为SimpleBean.java,编译后会生成一个包,其实就相当于一个目录,也就是SimpleBean.class会存放在hall目录中,暂且保存起来,将来备用。
再输入以下代码:
<HTML>
<HEAD>
<TITLE>Reusing JavaBeans in JSP</TITLE>
</HEAD>
<BODY>
<CENTER>
<TABLE BORDER=5>
<TR><TH CLASS="TITLE">
Reusing JavaBeans in JSP</TABLE>
</CENTER>
<P>
<jsp:useBean id="test" class="hall.SimpleBean" />
<jsp:setProperty name="test" property="message" value="Hello WWW" />
<H1>Message: <I>
<jsp:getProperty name="test" property="message" />
</I></H1>
</BODY>
保存在我们刚才建立的虚拟目录e:/myjsp下面,并命名为:BeanTest.jsp。
现在我们应该将hall(包)目录放在哪儿呢?别急,我们先在e:/myjsp下建立一个文件夹WEB-INF,然后再在WEB-INF下建立一个classes文件夹,最后将hall目录放到classes下,当然,hall下的字节码文件SimpleBean.class也一并要移过来,而SimpleBean.java就和BeanTest.jsp放到同一目录吧(可以不需要放的,自己试试)。
好了,大功告成了,重新启动机器(如果您试了好多次都不行,这一步一定要做),在浏览器中输入:http://localhost:8080/myjsp/BeanTest.jsp,您看到了什么?呵,别告诉我您什么都没看到,那肯定是您设置的问题了。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1354900
分享到:
相关推荐
采用jsp+servlet+javabean,jsp负责少量的页面处理,以servlet为主。 结构清晰明了,未对页面做美工处理,... 数据库平台为ms sql server2000 数据库连接池为apache组织下jakarta项目组开发的commons-dbcp 1.0
4. "tomcat6.0 + JSP + mysql数据库连接池配置.txt":具体到Tomcat 6.0版本,提供了完整的配置示例,帮助开发者实现JSP与MySQL的数据库连接。 5. "JSP(win2k server)JSP连接MYSQL数据库.txt":针对Windows Server ...
4. **连接池的使用**:理解数据库连接池的工作原理,以及如何在项目中配置和使用连接池。 5. **业务逻辑实现**:根据办公自动化系统的需求,设计并实现各种业务逻辑,如用户登录、权限管理、文档管理等。 6. **异常...
5. **配置部署**:在Web应用服务器(如Tomcat)上配置Web应用,包括设置Servlet映射、添加数据库连接池等。 6. **测试与调试**:对整个应用进行测试,确保各个功能正常工作,修复可能存在的问题。 完成这个大作业有...
- 通常在Servlet中,你可以初始化数据库连接池,通过JavaBean进行数据操作,然后在Servlet中调用JavaBean的方法来完成业务逻辑。 完成以上步骤后,你就拥有了一个基本的Java Web开发环境,可以编写JSP页面、...
5. **连接池**:优化数据库连接管理,提高性能。 6. **JDBC**:Java Database Connectivity,用于Java程序连接和操作数据库的API。 7. **Struts、Spring MVC等框架**:更高级的MVC框架,提供更强大的功能和结构支持...
此外,还可以利用连接池(如C3P0、Apache DBCP)来优化数据库连接的创建和回收,提高系统性能。 9. **异常处理**:在Java Web应用中,合理的异常处理可以增强系统的健壮性。通常会使用try-catch-finally结构捕获...
系统可能还涉及到安全性措施,如防止SQL注入、XSS攻击等,以及性能优化,如使用预编译的PreparedStatement、连接池管理数据库连接、缓存策略等,以提升系统效率和用户体验。 8. **部署与运行** 开发完成后,这个...
"servlet_tomcat.rar"是一个包含多种Java EE技术的压缩包,主要涉及Tomcat服务器、MySQL数据库、BRUUD(可能是误写,常见的应该是“Bukkit”或“BoneCP”,此处假设为“Bukkit”)数据库连接池以及HttpServlet和...
A. 本留言本采用jsp+javabean+servlet+mysql B. 本系统运行环境: ...6、 此留言本实现了MVC模式,完全是通过servlet控制数据,而且使用了连接池,一些基本的类也是完全提供,对学习jsp的MVC模式有很大的帮助。
数据库连接池(如C3P0或Apache DBCP)可以提高性能,管理和复用数据库连接。 6. **MVC(Model-View-Controller)模式**: 虽然Servlet+JSP+JavaBean不是严格意义上的MVC架构,但它们可以映射到这个模式:Servlet...
本项目可能涉及MySQL或Oracle等关系型数据库,涵盖了CRUD操作、事务处理以及数据库连接池的使用。 7. **JDBC(Java Database Connectivity)**:作为Java与数据库通信的标准接口,JDBC在系统中用于建立数据库连接、...
这通常会涉及到SQL语言的使用,以及数据库连接池的配置,如C3P0或DBCP,以提高数据库操作的效率。 6. **安全机制**:系统的安全性是至关重要的,可能包含用户身份验证(登录验证)、权限控制等。例如,只有经过认证...
【标题】"信息办公学校教务管理系统(jsp+servlet+javabean)-school" 提供的是一个基于Java技术实现的教务管理系统,该系统利用了Web开发中的常见技术栈,包括JSP(JavaServer Pages)、Servlet和JavaBean,旨在提高...
### Tomcat配置连接池知识点详解 #### 一、Tomcat与数据库连接池的基本概念 - **Tomcat**:Apache Tomcat是一款开源的轻量级Web应用程序服务器,在中小型系统和并发访问用户不是特别多的场合下被普遍使用。它是...
【信息办公】学生课绩管理系统是一个基于Web的教育管理应用,它使用了经典的Java Web技术栈,包括JSP(JavaServer Pages)、Servlet以及JavaBean,同时数据库层面选择了SQL Server。这个系统旨在帮助学校管理和记录...
项目中可能会采用预编译SQL语句(PreparedStatement)防止SQL注入,使用连接池(如C3P0或Apache DBCP)优化数据库连接管理,以及对敏感数据进行加密处理,如用户的密码。此外,还可能应用缓存技术(如 Ehcache)...
### Java源码学校教务管理系统(JSP+Servlet+JavaBean)关键知识点解析 #### 一、项目概述 在教育信息化的背景下,学校教务管理系统的开发对于提高学校的教学管理水平具有重要意义。本系统采用JSP(JavaServer Pages...
5. **Tomcat配置**:Tomcat的配置主要通过`server.xml`、`web.xml`等XML文件进行,这些文件定义了服务器的端口、虚拟主机、上下文路径、Servlet映射等。 6. **源码分析**:学习Tomcat源码有助于理解其内部工作原理...
4. JDBC(Java Database Connectivity):了解如何使用连接池、预编译SQL语句等提高数据库操作效率。 5. MVC(Model-View-Controller)模式:尽管此系统未严格遵循MVC,但可以尝试将其重构,以更好地理解和实践这一...