简简单单学会jsp
简简单单学会jsp
作者:天涯尽边的草
首先声明,本教程属于初级入门教程,没有涉及到java Bean,servlet ,也没有介绍各种组件,仅写了些关于jsp+access的简略知识,目的就是让大家入门。
Web环境是tomcat 5.5 + JDK。关于JDK 与 Tomcat的安装这里就不在赘述。
首先看在dreamweaver 下的文件目录及作用:
下面我们来依次看各个文件的作用。
Add.jsp 显示如下表单,它只有一句比较特别的语句,即图片下的提交语句,它指示着,这个表单将提交到哪个页面处理。
Add。Jsp代码:(因大部分代码都是html代码,故不作详细介绍,需要使用的地方已用方框标出)
于是,当你点击提交后,相应保存在表单里的数据就会发送给addfun.jsp.那么我们来看看,addfun.jsp是怎样处理表单数据的。
为了便于解释,我把各个方格分别编了号。
- 这句话将会在每个页面都会看到,它指示个本页面的编码,以及编程语言等。
一定要确保charset=gb2312 ,否则页面上汉字部分将会是乱码。
- 包含conn.jsp页面,用于链接数据库。
Conn.jsp里要修改的是数据库的路径,其余的先不必做深究。
- 这段代码主要作用于取出add.jsp发送过来的数据。其中request.getParameter主要用于取出表单里的数据,请注意newstitle,及news的位置,当表单里的name属性改变时,相应的改变getParameter(“”)里的的值。
newstitle=(new String(newstitle.getBytes("iso-8859-1"),"gb2312")); 这段代码主要设置编码,使传递过来的中文文字正确显示。
- 这是一句SQL语言,是向数据库里写入数据。
int rs=stmt.executeUpdate(sql); 其实这段代码才是真正的写入,写入成功后将返回一个int型数据,故用int 定义rs。值得注意的是,当需要修改数据库(即插入(insert)、修改(update)、删除(delete))时,使用stmt.executeUpdate,当仅仅读取数据库时使用stmt.executeQuery (这句代码与stmt.executeUpdate稍有不同,将在文章显示页面介绍)。
- 关闭状态,在使用完数据库链接时使用。
index.jsp页面
它将会循环显示各个文章题目并生成链接指向shownews.jsp。
- 这句代码与addfun.jsp中的那段类似,是读取数据库。区别在于使用stmt.executeQuery 返回的是ResultSet数据集,故用ResultSet定义rs。
- 使数据集指向第一条数据(前提:存在第一条数据,如果不存在将会出现错误,您可以增加if判断防止出现错误)
- 执行while循环读出所有数据,while条件是不到最后一条记录。
- Rs.getString(“”)是读出数据库里的相应字段值,getString是取出后作为字符串类型,因此你也可以使用getInt 。
- Rs.next();使记录后移,以便读取下一条记录。
- 关闭相应记录集。
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,还要有很长的路呢。
希望共同学习:
qq:190675894(不常用)







