联系我们
  游客:  注册 | 登录 | 社区银行 | 宣传中心 |





 

疾病大全 | 医院导航 | 药品 | 护理 | 中医 | 偏方 | 急救 | 心理 | 妇科病 | 营养饮食 | 自我测试 | 专题
保健养生 | 运动健身 | 女性 | 男性 | 老年 | 儿童 | 减肥 | 美容 | 健身操 | 生活常识 | 不孕不育 | 性爱
家居装饰 | 健康理财 | 旅游 | 教育 | 宠物 | 塑身 | 肝炎 | 肾炎 | 胃溃疡 | 包皮包茎 | 月经不调 | 手淫


上一主题 下一主题
     
标题: [原创]Tomcat与Java Web开发技术(学习笔记)  
 
pink_floyd
老友圈|VIP




UID 65888
精华 0
积分 14
帖子 202
书签 14 个
书币 16 枚
阅读权限 30
注册 04-11-23
[小喇叭]: 知识库:Asp.Net C# JSP Java PHP C++/VC ASP VB 数据库 移动开发 Delphi 软件工程 JavaScript XML
[原创]Tomcat与Java Web开发技术(学习笔记)

Tomcat与Java Web开发技术--笔记(pink floyd写于2004/11/2)


在使用tomcat时,有时提示:Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK的错误信息!这是因为在启动的时候没有读取JAVA_HOME这个环境变量,而是在配置里定义这个环境变量的,于是需要在Java Options里加入了一句:-Djava.home=d:\j2sdk1.4.2_04。(需要重新启动Tomcat)
Tomcat采用的是HTTP端口“8080”,如果想采用其他端口,可以在<CATALINA_HOME>/conf/server.xml中找到<Connector>元素的port属性值,然后修改就OK了!(需要重新启动Tomcat)


创建和发布Web应用:

在<CATALINA_HOME>/webapps目录下创建这个Web应用的目录结构/myapp(Web应用的根目录,所有的JSP和HTML文件都放在这边) /myapp/WEB-INF/web.xml /myapp/WEB-INF/classes(存放各种class文件,Servlet类文件也放在这个目录)/myapp/WEB-INF/lib(存放Web应用所需的各种JAR文件,例如JDBC驱动程序的JAR文件)

在<CATALINA_HOME>/conf/server.xml中增加<Context>元素
例如:在名为"localhost"的<Host>元素中加入<Context>元素:
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
......
<Context path="/myapp" docBase="myapp" debug="0" reloadable="true"/>
</Host>
然后重新启动Tomcat
(在开发阶段,将reloadable属性设为true,但是在发布阶段设为false)


修改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>
<!--设置<servlet>和<servlet-mapping>元素-->
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>mypack.myservlet</servlet-class>
</servlet>
<servlet-mapping
<servlet-name>myservlet</servlet-name>
<url-pattern>/foo</url-pattern>
</servlet-mapping>
</web-app>


JSP语法

<%@ page language="java" %> 指定文件中所使用的脚本语言
<%@ page method="doPost" %> 指定Java程序片段所属的方法的名称
<%@ page import="java.io.*,java.util.Hashtable" %>
<%@ page content_type="text/html;charset=GB2312" %> 指定响应结果的MIME类型
<%@ page session="true" %>
<%@ page errorPage="errorpage.jsp" %> 当异常发生时,客户请求被重新定向到哪个网页
<%@ page isErrorPage="true" %> 表示此JSP页面是否为处理异常的网页

<%@ include file="relativeURL" %> 包含其他文件
<%! int i=0; %> 声明JSP代表的Servlet类的成员变量和方法
在<% 和 %> 标记间直接嵌入任何有效的JAVA语言代码
<%= 和%> 该表达式的值会显示在网页上
<%-- 和--%>可以进行注释
<jsp:forward page="重新定向的文件" />
JSP访问JavaBean的语法
<%@ page import="mypack.myBean" %> 导入JavaBean类
<jsp:useBean id="JavaBean的变量名" class="mypack.myBean" scope="session" /> 声明JavaBean对象
scope可以是page,request,session,application中的任一种
<jsp:getProperty name="JavaBean的变量名" property="count" /> 访问JavaBean的属性
<jsp:setProperty name="JavaBean的变量名" property="count" value="0" /> 设置JavaBean的属性


通过JDBC访问数据库
1.Class.forName("com.mysql,jdbc.Driver");
2.Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3360/theDataBase",
"userName","userPaswd");

Connection.createStatement() 创建并返回Statement对象
Connection.prepareStatement(String sql) 创建并返回PreparedStatement对象
Statement用来执行静态的SQL语句

3. String sql ="select id, name, title, price from books where name='Tom' and price=40";
ResultSet rs = stmt.executeQuery(sql); //stmt 为Statement类

4. String selectStatement = "select id, name, title, price from books where name=? and price=?";
PreparedStatement prepStmt =con.prepareStatement(selectStatement);//con为Connection类
String name ="Tom";
float price = 40;
prepStmt.setString(1,name);
prepStmt.setFloat(2,price);
ResultSet rs = prepStmt.executeQuery();

5.while(rs.next())
{
String col1 = rs.getString(1); //or rs.getString("id");
String col2 = rs.getString(2);//or rs.getString("name");
String col3 =rs.getString(3);
String col4 = rs.getFloat(4);//or rs.getFloat("price");
//打印当前记录
}
6.事务处理
try{
con = DriverManager.getConnection(dbUrl,dbUser,dbPwd);
//禁止自动提交
con.setAutoCommit(false);
stmt=con.createStatement();
//数据库更新1
stmt.executeUpdate("update account set money=money-1000 where name='one'");
//数据库更新2
stmt.executeUpdate("update account set money=money+1000 where name='two'");
//事务提交
con.commit();
}catch(Exception e)
{
e.printStackTrace();
try{
//操作不成功就回滚
con.rollback();
}catch(Exception e)
{
e.printStackTrace();
}
}finally{
try{
stmt.close();
con.close();
}catch(Exception e)
{
e.printStackTrace();
}
}


处理中文编码
JSP网页的编码要与数据库的取出的数据的编码一致!
例如:在JSP网页中使用GB2312中文编码
<%@ page contentType="text/html; charset=GB2312" %>
而MYSQL数据库的JDBC驱动程序的默认情况采用的是ISO-8859-1编码
所以要做相应的处理:
a. String dbUrl = "jdbc:mysql://localhost:3306/myDB?useUnicode=true&characterEncoding=GB2312";
采用这种方式从数据库中取出的数据使用的字符编码为GB2312
b. String col1= rs.getString(1);
String col2 = rs.getString(2);
String col3 = rs.getString(3);
float col4 = rs.getFloat(4);
col1 = new String(col1.getBytes("ISO-8859-1"),"GB2312");


05-2-19 15:14#1
     
 
knight2004
预备会员




UID 67406
精华 0
积分 0
帖子 21
书签 0 个
书币 17 枚
阅读权限 10
注册 04-12-2
[小喇叭]: 知识库:Asp.Net C# JSP Java PHP C++/VC ASP VB 数据库 移动开发 Delphi 软件工程 JavaScript XML
don't known!

05-2-20 15:04#2
     
 
alps
老友圈|VIP



UID 15236
精华 1
积分 18
帖子 118
书签 18 个
书币 127 枚
阅读权限 30
注册 03-11-18
[小喇叭]: 爱生活健康网—全面提升您的生活品质
孙卫琴的书,不错,我也看过了





想要執著 反而磋跎 越是等候 反而越是錯過
找到成就 反而墮落 越是溫暖 反而越是折磨

九分之一
05-2-20 15:32#3
     
 
KunMao
预备会员



UID 19847
精华 0
积分 0
帖子 77
书签 0 个
书币 10 枚
阅读权限 10
注册 03-12-28
来自 Blur
[小喇叭]: 知识库:Asp.Net C# JSP Java PHP C++/VC ASP VB 数据库 移动开发 Delphi 软件工程 JavaScript XML
孙卫琴 Struts那本确实很细致。做中文参考很不错。

05-2-21 13:21#4
     
 
naive_1010
验证会员




UID 21589
精华 0
积分 0
帖子 346
书签 0 个
书币 42 枚
阅读权限 15
注册 04-1-14
[小喇叭]: 爱生活健康网—全面提升您的生活品质
(在开发阶段,将reloadable属性设为true,但是在发布阶段设为false)
===============
上面这句话是什么意思!


05-6-18 13:35#5
     
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题  


 


 
Copyright © 2003-2006 iTePub Online Services. All Rights Reserved.
Template Designed by iTePub. Optimized For 1024x768 to Firefox,Opera And MS-IE6.
 

所有时间为 GMT++8, 现在时间是 06-8-22 21:10 清除 Cookies - 联系我们 - iTePub - Archiver - 沪ICP备05034539号
 
 
本网站采用网银在线安全支付平台 Powered by Discuz! 4.1.0  © 2001-2006 Comsenz Inc.
Processed in 0.147152 second(s), 7 queries , Gzip enabled