简简单单学会jsp

时间:2008-08-20 14:02:27  类别:JSP  作者:Xiaoxiao

简简单单学会jsp

作者:天涯尽边的草

首先声明,本教程属于初级入门教程,没有涉及到java Bean,servlet ,也没有介绍各种组件,仅写了些关于jsp+access的简略知识,目的就是让大家入门。

Web环境是tomcat 5.5 + JDK。关于JDK 与 Tomcat的安装这里就不在赘述。

首先看在dreamweaver 下的文件目录及作用:

 


 

下面我们来依次看各个文件的作用。

Add.jsp 显示如下表单,它只有一句比较特别的语句,即图片下的提交语句,它指示着,这个表单将提交到哪个页面处理。

Add。Jsp代码:(因大部分代码都是html代码,故不作详细介绍,需要使用的地方已用方框标出)

 

于是,当你点击提交后,相应保存在表单里的数据就会发送给addfun.jsp.那么我们来看看,addfun.jsp是怎样处理表单数据的。

为了便于解释,我把各个方格分别编了号。

  1. 这句话将会在每个页面都会看到,它指示个本页面的编码,以及编程语言等。

一定要确保charset=gb2312 ,否则页面上汉字部分将会是乱码。

  1. 包含conn.jsp页面,用于链接数据库。

Conn.jsp里要修改的是数据库的路径,其余的先不必做深究。

  1. 这段代码主要作用于取出add.jsp发送过来的数据。其中request.getParameter主要用于取出表单里的数据,请注意newstitle,及news的位置,当表单里的name属性改变时,相应的改变getParameter(“”)里的的值。

    newstitle=(new String(newstitle.getBytes("iso-8859-1"),"gb2312")); 这段代码主要设置编码,使传递过来的中文文字正确显示。

  2. 这是一句SQL语言,是向数据库里写入数据。

    int rs=stmt.executeUpdate(sql); 其实这段代码才是真正的写入,写入成功后将返回一个int型数据,故用int 定义rs。值得注意的是,当需要修改数据库(即插入(insert)、修改(update)、删除(delete))时,使用stmt.executeUpdate,当仅仅读取数据库时使用stmt.executeQuery (这句代码与stmt.executeUpdate稍有不同,将在文章显示页面介绍)。

  3. 关闭状态,在使用完数据库链接时使用。

 

index.jsp页面

它将会循环显示各个文章题目并生成链接指向shownews.jsp。

  1. 这句代码与addfun.jsp中的那段类似,是读取数据库。区别在于使用stmt.executeQuery 返回的是ResultSet数据集,故用ResultSet定义rs。
  2. 使数据集指向第一条数据(前提:存在第一条数据,如果不存在将会出现错误,您可以增加if判断防止出现错误)
  3. 执行while循环读出所有数据,while条件是不到最后一条记录。
  4. Rs.getString(“”)是读出数据库里的相应字段值,getString是取出后作为字符串类型,因此你也可以使用getInt 。
  5. Rs.next();使记录后移,以便读取下一条记录。
  6. 关闭相应记录集。

 


Shownews.jsp

这里的代码似乎与index.jsp中的差不多,因此就不过多解释了。

附上全部代码:

Add.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>

<html>

<head>

<title></title>

<body>

<form id="form1" name="form1" method="post" action="addfun.jsp">

<table border="1" width="454" cellpadding="0" cellspacing="0" bordercolorlight="#BDBEBB" bordercolordark="#f9f9ec" style="border-style: fixed; border-collapse:collapse; border-color: #BDBEBB">

<tr>

<td width="73">题目:</td>

<td width="369"><label>

<input name="newstitle" type="text" id="newstitle" />

</label></td>

</tr>

<tr>

<td>正文:</td>

<td> <label>

<textarea name="news" cols="50" rows="10" id="news"></textarea>

</label></td>

</tr>

</table>

<label>

<input type="submit" name="button" id="button" value="完成提交" />

</label>

</form>

</body>

</html>

Addfun.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>

<%@ include file="conn.jsp"%>

<%

String newstitle,news;

newstitle=request.getParameter("newstitle");

newstitle=(new String(newstitle.getBytes("iso-8859-1"),"gb2312"));

news=request.getParameter("news");

news=(new String(news.getBytes("iso-8859-1"),"gb2312"));

String sql;

sql="insert into news (newstitle,news) values ('"+newstitle+"','"+news+"')";

int rs=stmt.executeUpdate(sql);

stmt.close();

out.println("添加完毕");

%>

Conn.jsp

<%

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection conn=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=webapps/ROOT/db/news.mdb;");

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

%>

Index.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>

<%@ include file="conn.jsp"%>

<html>

<head>

<title></title>

</head>

<body>

<%

ResultSet rs=stmt.executeQuery("select * from news");

rs.absolute(1);

while(!rs.isAfterLast())

{

out.print("<a href='shownews.jsp?id="+rs.getString("id")+"'>"+rs.getString("newstitle")+"</a>");

out.print("<BR>\n");

rs.next();

}

rs.close();

stmt.close();??

%>

</body>

</html>

Shownews.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>

<%@ include file="conn.jsp" %>

<%

String newsid,newstitle,news,newshit;

int newskind;

newsid=request.getParameter("id");

ResultSet rs=stmt.executeQuery("select * from news where id="+newsid);

rs.absolute(1);

newstitle=rs.getString("newstitle");

news=rs.getString("news");

rs.close();

stmt.close();

%>

<html>

<head>

<title><%out.print(newstitle);%></title>

</head>

<body>

题目:<%out.print(newstitle);%><br />

正文:<%out.print(news);%>

</body>

</html>

看了看,教程到这里也差不多了。是不是很简单呢?

小弟不才,难免有些错误,望见谅!

还有就是学会这些后,不要骄傲吆,这仅仅是jsp的最最最最基础的东西。要真正学会jsp,还要有很长的路呢。

希望共同学习:

yali114@sina.com

qq:190675894(不常用)


特别推荐

广而告之