powerwind 发表于 2006-3-20 23:41

JSP入门一例

在后院发了一帖"怎样学习J2EE",结果得到两位版主热心指教.所以我决定回报一帖,不过这是给那些和我一样的初学者讨论交流的,当然也希望高手指点啦!

好,闲话不说.学习J2EE第一步学JSP,我看了下书,上网找找资料,就想:以实战的方法来学可能较好.于是我以学校的"现代教务管理系统"(http://jwc.gdut.edu.cn/jwgl/(ak5o0i55kwyfiunu1dbkpb45)/default2.aspx)为样式,做个小系统.现在是初级进行中,只做了登录的工作.为了代码简洁,下面我尽量写简.

default.jsp
<form action="Login.jsp" method="post">
...
</form>

我完全照抄了学校的那个登录界面,只改了相应名字,想看的话就去查看源文件代码吧.
我用SQL2000创建了三个表,分别存储学生,老师,管理员的信息.
表名: studentUser
列名: ID,userName,password
表名: teacherUser
列名: ID,userName,password
表名: adminUser
列名: ID,userName,password
为了简单,我把所有字段设置为char类型,在JAVA中对应是String类型.
在控制面版,管理工具,ODBC数据源,用户DSN设置了名为Test的数据源

Login.jsp

<%@ page language="java" import="java.sql.*,java.io.*" errorPage="errorPage.jsp"%>
<%
        Connection conn=null;
        String userTable=request.getParameter("identification");//identification是三个单选按钮的名字
        String userName=request.getParameter("userName");//表单中的输入的名字
        String password=request.getParameter("password");//密码
        String theURL="notWelcome.jsp";//设置转到的页面
        try
                {
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//先注册
                        conn= DriverManager.getConnection("jdbc:odbc:Test","sa","");//连接
                        PreparedStatement pstmt=conn.prepareStatement
                                                        ("select * from "+userTable+" where ID=?");//这里的userTable不能像下面的userName用setString来设置,我只好用字符串连接了.
                        pstmt.setString(1,userName);
                        ResultSet results=pstmt.executeQuery();
                                results.next();//使用唯一的ID查询,结果只有一条记录
                                String temp=results.getString("userName");
                                userName=new String(temp.getBytes("GBK"),"ISO-8859-1");
//中文编码一般是GBK或GB2312,而JSP中是ISO-8859-1,所以要转换
                                if(results.getString("password").trim().equals(password))
                                {
                                       
                                       
                                        theURL="welcome.jsp";
                                       
                                }       
                        pstmt.close();
                        conn.close();
                }
                catch(Exception e)
                {
                                                      if(conn!=null)conn.close();
                }
%>
<html>
<head><title>welcome</title>
<meta http-equiv="contentType" content="text/html;charset=gb2312">
</head>
<body>
<jsp:forward page="<%=theURL%>">
<jsp:param name="userName" value="<%=userName%>" />
</jsp:forward>
</body>
</html>


<jsp:forward page="<%=theURL%>"><jsp:param name="userName" value="<%=userName%>" /></jsp:forward>
jsp:forward是为登录转到不同页面,同时还传了值
那么welcome.jsp就这样了(只为测试)

<html>
<head><title>welcome</title>
<meta http-equiv="contentType" content="text/html;charset=gb2312">
</head>
<body>
<br>
<h1>
<%=request.getParameter("userName")%>Welcome!</h1>
</body>
</html>

notWelcome.jsp和 errorPage.jsp也很简单.这里就不给出了

以上程序在XP,JDK1.5,TOMCAT5.0,IE6,MS SQL2000这样的环境下测试通过.

wool王 发表于 2006-3-21 14:53

恭喜楼主迈出了万里长征的第一步...以后一起加油...

kintry 发表于 2006-3-25 18:33

powerwind 发表于 2006-3-25 19:14

<I>wool王</I>介绍了他的经验,你看看吧!
以后大家多多交流.
页: [1]
查看完整版本: JSP入门一例