初学jsp心得 
1。java是大小写敏感的,用过其他编程语言的人最容易犯这个错误,尤其是刚上手的时候。我刚开始调试jsp的时50%以上的编译错误是都是因为这个。 2。java的调用过程都是要加括号的,一开始比较容易忽视,如title=request.getParameter("title").trim(); 3。jsp中对应asp中的request.form()和request.querystring()的解决方法。 
jsp中取得参数没有form和queryString之分,都是通过request.getParameter("XXXX")来取得。虽然jsp也有request.getQueryString()方法,但测试结果是 test.jsp?id=1&page=20 得到 id=1&page=20。 
如果url和form有相同的参数名称呢?下面是一段测试代码: 
<form method="POST" action="query.jsp?id=2"> 
<input type="text" name="id" value="1" size="60"> 
</form> 
name都是id,结果是url的参数优先得到,jsp的这种处理方式和asp相比我觉的各有所长。 4。头疼的汉字处理问题。 
在其他的文章里曾说到在中文NT环境下如下语句输出会得到乱码, 
<%="你好"%> 及 out.print("你好");等。解决方法是只要对字符串变量进行编码就可以得到正确结果,如下代码可以得到正确的输出: 
<% String title="你好"; 
byte[] tmpbyte=title.getBytes("ISO8859_1"); 
title=new String(tmpbyte); 
out.print(title); %> 
或者<%=title%> 关于sql语句汉字问题,例句为 select * from test where title='谁是傻瓜' 
在jdbc-odbc驱动下连db2,不管是原句还是对sql语句进行编码后都死活通不过。 
换了ibm的jdbc直接驱动后,对sql语句编码后程序可以通过。 这个问题的产生大概是中文NT的原因,在其他环境下可能就没汉字处理问题了,据说ibm的web sphere对中文支持的很好,这也给jsp的开发带来一定的通用性问题。据说对字符串编码是一种通用的解决方法,不过没有这么多环境来测试。 5。在asp中经常使用到字符串判断语句如 if state="真是傻瓜" then..... 
在java中String变量不是一个简单的变量而是一个类实例,不同的方法会得到不同的结果 
a. 
String str1="我是傻瓜"; 
String str2="我是傻瓜"; (or String str2="我是"+"傻瓜"; ) 
if (str1==str2) 
out.print("yes"); 
else 
out.print("no"); 
结果是"yes"。 
大概是编译优化,str1,str2指向同一个类实例; b. 
String str1,str2,str3; 
str1="我是傻瓜"; 
str2="我是"; 
str3=str2+"傻瓜"; 
if (str1==str3) 
out.print("yes"); 
else 
out.print("no"); 
结果是"no"。 String str1=new String("我是傻瓜"); 
String str2=new String("我是傻瓜"); 
if (str1==str2) 
out.print("yes"); 
else 
out.print("no"); 
结果是"no"。 String str1=new String("我是傻瓜"); 
String str2=new String("我是傻瓜"); 
if (str1.compareTo(str2)==0) 
out.print("yes"); 
else 
out.print("no"); 
结果是"yes"。 所以在jsp中判断字符串要使用compareTo方法,用惯传统语言还真一下子适应不过来,熟悉java的朋友应该没这个问题。 6。如何判断数据库为空? 
result = stmt.executeQuery(sql); 
if (result.next()) 
...... 
result执行后游标出于一个未明的状态,不能进行状态判断,也不能取值,一定要next()一下才可以用。 
7。在jsp中实现分页。 
page是关键字,不能当变量。 
conn.jsp 
<% 
String sDBDriver = "COM.ibm.db2.jdbc.app.DB2Driver"; 
String sConnStr = "jdbc:db2:faq"; 
Connection conn = null; 
Statement stmt = null; 
ResultSet rs=null; 
try { 
Class.forName(sDBDriver); 

catch(java.lang.ClassNotFoundException e) { 
out.print("faq(): " + e.getMessage()); 
} try{ 
conn = DriverManager.getConnection(sConnStr,"wsdemo","wsdemo1"); 
stmt = conn.createStatement(); 
}catch(SQLException e){ 
out.print(e.toString()); 

%> query.jsp <%@ page language="java" import="java.sql.*" %> 
<%@ page contentType="text/html; charset=gb2312" %> 
<%@ include file="conn.jsp" %> 
<% 
....... 
int pages=0; 
int pagesize=10; 
ResultSet result = null; 
ResultSet rcount = null; pages = new Integer(request.getParameter("pages")).intValue(); if (pages>0) 
{ String sql=" state='我不傻'"; 
int count=0; 
try { 
rcount = stmt.executeQuery("SELECT count(id) as id from user where "+sql); 
catch(SQLException ex) { 
out.print("aq.executeQuery: " + ex.getMessage()); 

if(rcount.next()) 
count = rcount.getInt("id"); 
rcount.close(); if (count>0) 

sql="select * from user where "+sql; 
try { 
result = stmt.executeQuery(sql); 

catch(SQLException ex) { 
out.print("aq.executeQuery: " + ex.getMessage()); 
} int i; 
String name; 
// result.first(); 
// result.absolute((pages-1)*pagesize); 
// 此方法jdbc2.0支持。编译通过,但执行不过,不知是不是跟驱动有关,只好用下面的笨办法。 
for(i=1;i<=(pages-1)*pagesize;i++) 
result.next(); 
for(i=1;i<=pagesize;i++) { 
if (result.next()) { 
name=result.getString("name"); 
out.print(name); 

result.close(); 
int n= (int)(count/pagesize); 
if (n*pagesize<count) n++; 
if (n>1) 

for(i=1;i<=n;i++) 
out.print("<a href=query.jsp?pages="+i+">"+i+"&nbsp;</a>"); 



%>  
 
 

解决方案 »

  1.   

    如果大家认为CSS很重要,请推荐简单的CSS教材,或者邮给我[email protected]。你要多少分就给你多少分
      

  2.   

    CSS控制界面,表格!
    如果不用CSS控制,那肯定会很难看的。
    其实学css很简单,你用dreamweaver。
      

  3.   

    本人认为不用,因为如果你是做前台工作的那么你就要学了,因为CSS主要是针对网页版面的设计,而后台是针对网页的传值和处理一些特效的,所以做后的不用学习CSS!!
      

  4.   

    JSP开发入门 
     JavaServer Pages (JSP) 是一种以 Java为主的跨平台web开发语言。    JSP与微软的Active Server Pages 兼容,但它是使用类似HTML的卷标以及Java程序代码段而不是VBScript。当你所使用的网站服务器没有提供本地ASP支持,也就是Apache或Netscape服务器时,你可以考虑使用JSP。虽然你可以取得这些服务器的ASP附加配备模块,但价格相当昂贵,而目前Sun并没有对你所需要的JSP组件收取费用(虽然Sun未来有可能会收费)。对于Solaris与Linux以及Windows,这些组件也都很容易取得。     请不要将JSP与服务器端的JavaScript混为一谈。网站服务器会自动将以JSP写成的Java程序代码段转换成Java servlets。而许多先前必须以Perl手写程序或服务器特定的API(如ASP)控制的功能也都可透过JSP来自动化处理。    现在就让我们开始动手帮助你建立一个可执行JSP范例网站。 一、安装好你的机器来使用JSP 
    二、JSP语法的基本原理 
    三、JSP与JavaBean 
    四、JJSP的内部对象 
    五、JSP其他相关资源 JSP开发入门2 
    安装好你的机器来使用JSP    你将会需要Java 2软件开发工具(JSDK),它原来的名称是Java发展工具(JDK)以及JavaServer网站发展工具(JSWDK),Tomcat,或是其它支持JSP的网络服务器。Sun免费提供JSDK与JSWDK来供Windows,Solaris,以及Linux平台使用。  如果你想要在你目前的网络服务器上使用JSP,但服务器本身并不支持JSP与Java servlets,你可以试试看Allaire的Jrun,它的作用就像是针对Netscape企业版与FastTrack服务器、微软的网际网络信息服务器(IIS)与个人网络服务器(PWS)、Apache、以及其它服务器的网络服务器附加设备。你也可以使用Apache网络服务器的Java版本,最新的JSWDK里有提供。    下载与安装你需要的组件 
       目前发布的1.2.2-001,JSDK可下载的版本是以可安装的压缩形式。下载的文件大约是20MB,可提供完整的Java发展环境,让你能建立利用标准API为核心的Java解决之道。然而,你的网络服务器需要应用到JSP的唯一一件事是Java编译器。要让网络服务器知道编译器的位置,将环境变量JAVA.HOME设到JSDK的安装目录。如果你是在Windows上安装并且接受预设目录,将这行程序代码set JAVA.HOME=C:1.2.2加到你的autoexec.bat档案并且重新开机。 在安装好JSDK之后,下载并且安装JSWDK或beta版的Tomcat,以Java为主的Apache网络服务器。安装在哪里并不重要,重要的是你可以找到它。一般而言,它会放在上层目录,这种方式可以让你取代JSWDK或 JSDK的网络服务器,不需要移动其它的网络服务器。在你安装好这个档案之后,你就可以准备发展JSP了。 
       在你正确的安装JSWDK之后,执行startserver指令文件来激活网络服务器,预设通讯端口 为 8080。要看你在激活服务器之后是均C有正确的安装工具,你可以加载范例JSP档案中的任何一个(http://localhost:8080/examples/jsp/)。如果你能够成功的执行一个范例档案,你可以知道你已经正确的设定好软件了。如果你在激活服务器的控制台窗口看到错误讯息,那么你需要解决这个问题。最常发生的问题是没有设定(或者不正确设定)环境变量JAVA.HOME。要检视目前的环境设定,在DOS模式下键入set。 
       开始 
       解释JSP语法之前,先建立一个显示目前日期与时间的快速网页并且将它储存成sample.jsp:    <html>    <head>    <title>First Page</title>    </head>    <body>    <H3>Today is:    <%= new java.util.Date() %>    </H3>    </body>    </html>. 将这个档案与你所有的HTML与JSP网页放在你JSWDK安装目录下的网页目录里. 你可以在http://localhost:8080/sample.jsp下载此页.当你第一次参观这个网页时,网站服务器会将JSP翻译成Java servlet程序代码,那你就会看到目前的日期与时间. 
       现在你已经下载,安装,并且架构好发展环境,你已经准备好要了解JSP语法与建立你自己的JSP为主的解决之道. JSP开发入门3 
    JSP语法的基本原理 
    安装之后,接下来我们要讨论JSP的语法.如果要偷懒,你可以下载语法卡而如果你不熟悉 Java的程序设计,你可能会想要参考Sun的使用手册;然而,网站建立者不应该做太多的Java发展。除了几个函式呼叫之外,出现在你JSP网页上的Java程序代码应该将它减到最少; 
       记住这点之后,现在让我们先来看看JSP的编译器指引与指令组件,之后我们将解释JavaBeans与内部对象. JSP编译器指引与指令组件有五种型态.JSP 1.0之后,大部分的JSP是包含在以<% 作为开始%>作为结束的单一卷标里.新的 JSP 1.1规格已经发表了,它同时也与XML兼容. 
    JSP的编译器指引与指令组件 
       编译器指示       <%@ 编译器指示 %>    声明          <%! 声明 %>    表达式         <%= 表达式 %>    程序代码段/小型指令   <% 程序代码片段 %>    注释          <%-- 注释 --%> 
       编译器指示 
       JSP的编译器指示是针对JSP引擎。它们并不会直接产生任何看得见的输出;相反的,它们是在告诉引擎如何处理其它的JSP网页。它们永远包含在 <%@ ?%>卷标里。两个主要的指引是 page与include。我们不会讨论taglib编译器指引但它可以在JSP1.1里用来建立自订卷标。    你几乎可以在你所有的JSP网页最上面找到page编译器指示。虽然这不是必须的,但它可以让你指定到哪里可以找到支持的Java类别这类的事:    <%@ page import="java.util.Date" %>,     当发生Java问题的事件时应该将讯息传送到哪里:    <%@ page errorPage="errorPage.jsp" %>,     以及你是?需要为使用者管理通话期的信息,可能存取多个网页(稍后在JavaBeans里会有更多通话期的讨论):    <%@ page session="true" %>。    include编译器指示让你将你的内容分成几个可管理的组件,就像那些有表头或脚注的网页。所包含的网页可以是固定格式的HTML网页或者是JSP内容的网页:    <%@ include file="filename.jsp" %>。 
       宣告 
       JSP声明让你定义网页层的变量,来储存信息或定义支持的函式,让JSP网页的其余部分能够使用。如果你发现自己有太多的程序代码,你最好将它们放在不同的Java类别里。你可以在 <%! ?%>卷标里找到声明。记住要在变量声明的后面加上分号,就跟任何有效的Java叙述的形式一样: <%! int i=0; %>。 
       表达式 
       JSP里有表达式,评估表达式的结果可以转换成字符串并且直接使用在输出网页上。JSP运算是属于 <%= ?%> 卷标里,并不包含分号,加引号字符串的无用部分。    <%= i %>    <%= "Hello" %> 。 
       程序代码段/小型指令文件 
       JSP程序代码片段或小型指令文件是包含在<% ?%> 卷标里。当网络服务器接受这段请求时,这段Java程序代码会执行。小型指令文件可以是原始的HTML或XML,其内部的程序代码片段可以让你建立有条件的执行程序代码,或者只是一些使用另一块程序代码的东西。举例来说,下列的程序代码结合了表达式与小型指令文件,在H1,H2,H3,以及H4卷标里显示字符串"Hello"。小型指令文件不限于一行的原始程序代码 :    <% for (int i=1; i<=4; i++) { %>    <H<%=i%>>Hello</H<%=i%>>    <% } %>。 
       注释 
       最后一个主要JSP组件是嵌入式注释。虽然你可以在你的档案里包含HTML注释,如果使用者检视网页的原始码,他们也会看到这些注释。如果你不要让使用者看到你的批注,你可以将它放在<%-- ?--%>卷标里:    <%-- 针对服务器端的注释 --%>。 
      

  5.   

    最好是懂一些!如果说要是单纯的写jsp,那肯定要学css的!
      

  6.   

    如何成为一个成功的Jsp程序员?  --------------------------------------------------------------------------------
     
    转贴     2004-08-02 21:21:32     cnjsp.org  
    一个普通的错误是把JSP当作简化的 Java。它不是,(事实上, JSP 是简化的 servlets 。)程序员通常试着没有学习要求的支持技巧而 直接学习 JSP 。JSP 是一个衔接技术,并且成功地连接你需要理解的另外的技术。如果你已经知道 Java,HTML 和 Javascript,这意味着 JSP 将确实是简单的。 需要成为一个成功的 JSP 程序员可以参考这个时间表。请注意下列: *忽略你已经熟悉的步骤。 
    *训练的时间只是代表学习好足够的基础时间,这样才能转移到下一步。 1、建立并且理解你的Web Server。 
    因为Apache 是免费的并且在大多数平台上工作,为训练目的推荐 Apache。 
    安装时间:2 天。 
    2、保证你理解 HTML / XHTML 。 
    你将需要了解html基础, 特别是 HTML 布局中的table的使用。XHTML 不久将代替 HTML ,学习 XHTML 的基础是一个好主意。许多程序员通过 HTML IDE 学习 HTML ( 集成开发环境 ) 。因为大多数 HTML IDE产生混乱的HTMl语法,所以花时间学习手工写作html是很有必要的。因 为你将会使用 JSP 和 HTML 混合编程,精通HTML语法是重要的。所以,你必须能流利地写 HTML 。 
    训练时间:2 ~ 4 个星期。 
    3、开始学习 Java 。 
    开始学习 Java 1.4 理解 Java 基础是很重要的。不用担心学习Swing或 Java 的图形方面,因为在JSP 中你不会使用这些特征。集中精力 在 Java 工作的细节,学习 Java 的逻辑,也在 Java Bean上花时间。学习Applet是好的, 但是就象Swing, JSP 的大多数应用将不使用小程 序。 
    训练时间:3 ~ 6 个星期。 
    3、学习 JavaScript 
    学习怎么将 JavaScript在HTML中验证输入的Form元素。也学习 JavaScript怎么能在一 HTML 页以内修改Form的元素。最后要求你能从一 
    HTML 页内的事件中触发 JavaScript Function。 
    训练时间:一~ 2 个星期。 
    4、学习并且理解你的Web Server的更好的细节。 
    熟悉Web Server的特征,这是很重要的。 
    训练时间:2 天。 
    5、建立你的 JSP Server 
    我推荐以Tomcat开始。它可以很好地运行JSP程序。当你不能在生产使用Tomcat时,学习尽可能多的知识以便于更好的运行程序。另外, 许多 JSP 程序员使用Tomcat。因此当你遇到一个问题时,你将容易发现帮助。 
    安装时间:一~ 2 天。 
    6、开始学习 JSP 。 
    基本的 JSP 学习通过的步骤 1到步骤6可以完成, 然后使用 JSP 对象和脚本写 JSP 程序来联系。学习 JSP 的另外一个方面可以学习怎么创建一个分布式的应用程序。 
    训练时间:4 ~ 6 个星期。 
    7、学习更多的 JSP server。 
    没有关于更多的 JSP Server当然也可以运行jsp程序。然而, 许多 JSP server都由自己特殊的特征,可以让你更好的理解你的JSP 工程。 
    学习更多的Jsp server如何处理jsp程序是有必要的。同样也可以优化你的 JSP 应用程序,并且使之运行得更快而不出任何问题。 
    训练时间:2 ~ 7 天。 
    8、 学习 JDBC 。 
    JSP 大多数应用将使用数据库,JDBC 被用于数据库连接。经常忽略的一个事实就是,每个 JDBC Driver 所支持的东西是相当不同的。了 解并熟悉在jsp工程上被使用的 JDBC driver的细节是很重要的。(有时这部分的学习被包含在前面 Java 或JSP的学习中了 。) 
    训练时间:1~ 2 个星期。 到现在,你已经成为了熟练的 JSP 程序员。仍然有很多需要学习,你可以考虑扩展你的知识比如 DHTML , XML ,java证书, JSP Tag Libraries 或 Servlets , 看你想要造什么类型的网站而决定了。 这些训练是JSP 的核心。你不必都学习上面所有的, 取决于你在工程中分配到什么任务和你已经有什么知识。但是这是我成功地训练程序员 的时间表。关键的单元是时间。平均的说, 5 个月时间确实能够训练一个人 ( 从开始到完成 ) 成为一个对jsp熟悉程序员。5 个月时间似乎很长,但要成为一个资深的WEB程序员所学的东西远远不止这一些。 也许你认为这样学习一种语言花费的时间太长了,因为学 ASP 会更快、时间会更短。 但是学习 ASP 不需要学习java的。  
      
      

  7.   

    不用学,一般情况下用dreamweaver做好静态页面,然后在这基础上改成JSP,用dreamweaver的话样式表很方便使用。
      

  8.   

    谢谢大家了。那要学好JSP,HTML要学到怎样的境界?
      

  9.   

    CSS?你是想要写程序还是搞界面设计,你要分清楚??!!
      

  10.   

    我有点明白了,学好JSP不一定要学CSS,但是HTML一定要学好
      

  11.   

    不一定要刻意去学CSS,但在日常工作中会逼着你学会的。
      

  12.   

    不用学css,html也不定学好了再学jsp.
    其实主要了解了html中的tag,
    当然学好了更好!
    不过java的基础知识一定要懂
      

  13.   

    VSS不用学吧,这是一个样式拿来用就行了。
      

  14.   

    没什么可学的,本来CSS也没多少东西
    并且你只是去用它,而不是来设计它,哪是美工的事
      

  15.   

    CSS不用学,只要会用dw,css就轻松搞定
      

  16.   

    这主要 要看你所从事的具体工作和你的工作岗位对JSP程序员的职责界面的划分不过,多了解一下也没有坏处
      

  17.   

    多学点东东有什么不好,而且css很简单,格式比较固定...推荐苏沈小雨的css2.0中文手册
    下载链接:
    http://vip.5d.cn/friday/upload/css2.chm
      

  18.   

    不必学,用时间长了就会了,而且这个东西根本和jsp就是两个体系,不可同日而语。
      

  19.   

    说不需要学CSS的人我想是自己也没有学CSS吧!B/S程序怎么能没有CSS呢?如果可以没有,那SQL也完全可以不学。
      

  20.   

    CSS是美工做的工作
    编程人员知道怎么用就行了
    dreamveaver可以可视化产生css代码
    一个小时就够了
      

  21.   

    CSS只要稍微了解一下就好,知道怎么用就行了。Dreamweaver里面用css就很方便。