这是我的第一篇博客,CSDN是个好网站,在这里我学到了很多东西。所以今天我也要写点东西,关于我对JSP Modul 1的理解。
JSP Modul 1是 JSP+JAVABEAN,下面我们先说下Modul 1的工作原理,相信大家都会直接用jsp页面连接数据库进行数据交换,JAVABEAN的作用就是把JAVA代码和JSP页面分离,以便前台的美工,和后台的程序员去分别处理不同的东西,简单的说,就是我们把原来写到JSP页面的代码,移到JAVABEAN里,这样JSP页面就会变得整洁。
当用户登录jsp页面的时候,提交请求信息给javabean,javabean把获取的信息去传递给数据库,进行增删改查,随后在返回结果给jsp页面,这样就利用jsp页面和javabean完成了一次数据交换。下面让我看看下代码。
(代码有不好之处,因为我也是初学者,希望用我仅有的知识去帮助下大家。也请高手指教。共同学习,进步)
Login.html 这是html,用于向后面的页面传递参数,也就是把会员ID传递给CheckLogin.jsp页面
<html>
<head>
<title>会员登录页</title>
</head>
<body>
<form method="post" action="CheckLogin.jsp">
<h2 align="center">请输入您的用户名及密码:</h2>
<table border="0" align="center" bgcolor="EFEFEF">
<tr>
<td>会员ID:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="pwd">
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="登 录"></td>
</tr>
</table>
</form>
</body>
</html>
CheckLogin.jsp 这个页面的作用,获取前面的页面传递进来的参数。
<%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
<jsp:useBean id="jb" scope="page" class="Login.Jb">
//用javabean id就是一个名字,scope是作用范围,class是这个javabean的地址
<jsp:setProperty name="jb" property="name"/>
<jsp:setProperty name="jb" property="pwd"/>
//把name pwd传递给jb这个javabean也就是
</jsp:useBean>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'CheckLogin.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<jsp:useBean id="login" scope="page" class="Login.LoginBean"/>
//调用login这个javabean
</head>
<body>
<center>
<% login.setJb(jb); %> //将jb中的值传入login这个bean
<% login.getLogin(); %> //调用login这个bean中的方法
<% boolean Login = login.getLogin();
//声明一个布尔型的变量,获取login中返回的值
if (Login==true){ //如果 Login为true 则的登录成功,如果为false则登录失败
out.print("登录成功");
}else out.println("登录失败");
%>
</center>
</body>
</html>
Jb这个bean用于获取页面传递进来的变量。
package Login;
public class Jb {
private String name = null;
private String pwd = null;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getPwd(){
return pwd;
}
public void setPwd(String pwd){
this.pwd = pwd;
}
}
Login这个bean用于与数据库进行连接,进行数据交换
package Login;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class LoginBean {
private Jb jb;
private static String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static String url="jdbc:microsoft:sqlserver://localhost:1433;database=people";
private static String username="kobe";
private static String password="1230123";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
private boolean Login=false;
public void setJb(Jb jb) {
this.jb = jb;
}
public LoginBean(){
try {
Class.forName(Driver);
}catch (ClassNotFoundException ce){
System.err.println(ce.getMessage());
}
try {
con = DriverManager.getConnection(url,username,password);
stmt = con.createStatement();
}catch (SQLException se){
System.err.println(se.getMessage());
}
}
public boolean getLogin(){
try {
String name = (String)jb.getName(); //获取登录页面的用户名与密码
String pwd = (String)jb.getPwd();
String sql = "select * from userpeople where name='"+name+"' and password='"+pwd+"';";
rs = stmt.executeQuery(sql);
while (rs.next()){
Login = true;
rs.close();
}
stmt.close();
con.close();
}catch (SQLException se){
System.err.println(se.getMessage());
}
return Login;
}
}