|
在后院发了一帖"怎样学习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这样的环境下测试通过. |
|