分享
 
 
 

兔八哥笔记1:java初学者笔记

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

1.JDK的配置:

Path:c:\jdk1.4\bin; (目的是在任何位置都可以执行javac, java, jar等命令)

ClassPath:.;c:\jdk1.4\lib\dt.jar;C:\jdk1.4\lib\tools.jar;c:\jdk1.4\lib\j2ee.jar;

注意:“.”代表当前路径。j2ee.jar包括了servlet等类,否则可能出现编译servlet文件时找不到servlet和HttpServletResponse等类的错误。

2.Tomcat必须的配置:

Java_Home: 如:c:\jdk1.4;

CATALINA_HOME:(也就是Tomcat安装的根目录)如:C:\JBuilder9\thirdparty\jakarta-tomcat-4.1.24-LE-jdk14

3.ANT必须的配置:

ANT_HOME:也就是Ant安装的根目录

还要将Ant_Home\bin添加到Path中(目的是在任何位置都可以执行ant命令)。

4.JAR的使用:

jar的用法很简单,只要将JDK配置正确,就可以使用jar命令来打包.jar文件了。

如我写了一个简单的访问mysql数据库的servlet,代码如下:

=============Servlet1.java=====================

//这是用JBuilder向导生成的servlet

package untitled4;

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;

import java.sql.*;

public class Servlet1 extends HttpServlet {

private static final String CONTENT_TYPE = "text/html; charset=GBK";

//初始化全局变量

public void init() throws ServletException {

}

//处理 Get 请求

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType(CONTENT_TYPE);

String r = ""; //要打印到屏幕上的变量

ResultSet rs = null; //结果集

Statement stmt = null; //SQL语句

Connection conn = null; //数据库连接

PrintWriter out = response.getWriter();

try {

try {

Class.forName("com.mysql.jdbc.Driver"); //装载mysql的驱动

conn = DriverManager.getConnection( //连接到指定的数据库,用户root,密码为空

"jdbc:mysql://localhost/mydb", "root", "");

stmt = conn.createStatement(); //创建SQL语句对象

String queryString = "select * from mytable"; //构造查询语句

rs = stmt.executeQuery(queryString); //执行查询,如果是insert, update, delete 则使用executeUpdate方法。

while (rs.next()) { //如果查询返回的结果集不为空则循环

String name = rs.getString("name"); //得到name字段的值

String id = rs.getString("id"); //得到id字段的值

r = r + ": "name + ", " + id; //得到要打印的变量值

}

}

finally {

if (rs != null) {

rs.close(); //关闭结果集

}

if (stmt != null) {

stmt.close(); //关闭SQL语句对象

}

if (conn != null) {

conn.close(); //关闭数据库连接对象

}

}

}

catch (SQLException e) {

}

catch (ClassNotFoundException e) {

}

//输出变量r的值

out.println("<HTML>");

out.println("<BODY>");

out.println("r=");

out.println(r);

out.println("</BODY>");

out.println("</HTML>");

}

//清除资源

public void destroy() {

}

}

=======================================

先使用javac编译,javac -d . Servlet1.java,

如图:

-d .是指在当前路径下生成代码中指定的包的名字命名的文件夹,并将编译好的.class文件放在这个文件夹中。

本例中将生成一个名为untitled4的文件夹。编译成功后,会生成一个文件夹untitled4,里面有编译好的Servlet1.class文件。

jar的帮助文件如下:

编译成功后就可以打包成.jar文件了,做法如下:

jar cvf 4.jar untitled4/.

如图:

注意:4.jar 是打包成功后的.jar文件的名字, untitled4是.class所在的目录,/.是指将指定的目录下的文件递归打在4.jar这个.jar文件中。

在Tomcat的webapps目录下新建一个文件夹b,在b中新建一个文件夹WEB-INF,在WEB-INF中新建文件夹lib,将4.jar这个文件拷贝到b\WEB-INF\lib下。如果不想放在webapps下,则要修改server.xml,添加自己定制的路径:

如果要添加D:\ltf为自己指定的路径/mydir,则在这个文件的<Host> </Host>之间添加如下内容:

<Context path="/mydir" docBase="D:\ltf" debug="0"

reloadable="true" crossContext="true">

</Context>。这里只是介绍一下还有这种用法,以下均按照程序放在webapps中来示例的。

在b\WEB-INF中新建一个文件web.xml。内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<!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>

<servlet>

<servlet-name>servlet1</servlet-name>

<servlet-class>untitled4.Servlet1</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>servlet1</servlet-name>

<url-pattern>/servlet1</url-pattern>

</servlet-mapping>

</web-app>

写好这个文件后,WEB-INF的目录结构如下:

lib中的文件如下:

mysql的驱动也可以放在这里,最好是放在Tomcat的Common的Lib目录下,因为在那里可以被部署在tomcat上的所有应用公用。

在WEB-INF中还有另一个classes目录,这个目录中直接放置没有打包成.jar的.class文件。

我们的Servlet1.class就可以放在这个目录下,但要将untitled4的文件夹一起保持原来的结构拷贝过来,否则无法运行。

现在我们来看看执行效果:

启动Tomcat:

执行Tomcat根目录中的bin目录中的startup.bat,

出现如下窗口:

启动IE,在地址栏输入:http://localhost:8080。“8080”是端口号可以更改,更改的方法是修改tomcat的conf目录中的server.xml。

只要将“8080”改为自己指定的数字就行了,如“80”。

我们看看执行结果:

请注意,我输入的是http://localhost:8080/b/servlet1,是servlet1,而不是Servlet1,如果输入Servlet1则会出现错误:

为什么?我们的类名分明是大写的Servlet1,而不是小写的servlet1,那为什么输入大写的不行,而小写的就可以了呢?答案在web.xml里,请注意url-pattern部分的值:

如果将/servlet1改为/Servlet1则就要输入大写的了,否则就会出现刚才输入大写的错误。

我的mysql的数据库中的数据如下:

我之所以贴出这张图,是向大家介绍这个mysql的控制台,这个控制台是mysql厂商开发的可视化的工具。我在使用的过程中发现与MS的SQLServer的控制台非常类似。

目前是0.9.3的beta版,是多语言版。我在使用过程中发现一个小bug就是图中被我用鼠标点击的部分,这部分本来应该是汉字,但显示的却是乱码。虽然有些bug,但这个工具对于我这样的mysql的新手来说却是救命稻草,如果需要可以到mysql的官方网站上下载,期待正式版快点出来。

另外:刚才的那个例子也可以打包成.war文件部署,过程如下:

注意这个例子一定是将WEB-INF目录下的文件打包,而不是将外层的文件夹b打包,而且在命令行中WEB-INF必须大写,否则部署后不能正确执行。

将打包后的c.war拷贝到Tomcat的Webapps的目录下,如图:

这个文件夹中的c目录为Tomcat启动后自动解开的文件。

启动Tomcat,打开IE,输入:http://localhost:8080/c/servlet1,结果如下:

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有