实验八 JSP+Servlet开发模式
一、实验目的
掌握JSP+Servlet开发模式的优点及使用场所; 使用JSP+Servlet开发模式创建登录程序;
二、实验环境
PC系列微机,CPU1.2G以上,内存256以上,Windows XP,Eclipse3.1.1。
三、实验步骤
1、创建web项目实现用户登录
用eclipse新建web项目jspjavabean,具体功能如下: 一个JSP显示一个用户输入用户名和密码;
一个Servlet Login调用LoginBo JavaBean进行登录验证;登录成功跳转到登录成功页面,登录失败跳转到登录页面; Student JavaBean用来作为VO使用,该JavaBean的属性包括student表的字段作为属性。
DBConnection.java用来得到数据库连接。
2、创建Sevlet和Student.java、LoginBO.java、DBConnection.java
①Student.java代码如下:
package com.guoqing.j2ee.jspjavabean;
import java.sql.*;
public class Student { private String name; private String password; private String emil; private int age;
public int getAge() { return age;
36
}
public void setAge(int age) { this.age = age; }
public String getEmil() { return emil; }
public void setEmil(String emil) { this.emil = emil; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; } }
②LoginBO.java代码如下:
package com.guoqing.j2ee.jspservlet.login;
import java.sql.*;
public class LoginBO {
private Connection conn = null;
public boolean isLogin(Student student) { boolean flag = false; conn = new DBConnection().getConnection(); String sql = \ try { PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, student.getName()); ps.setString(2, student.getPassword()); ResultSet rs = ps.executeQuery(); if (rs.next())
37
flag = true; rs.close(); ps.close(); conn.close(); } catch (SQLException e) { // TODO 自动生成 catch 块 System.out.println(\操作数据库出错!\ e.printStackTrace(); } return flag; } }
③DBConnection.java代码如下:
package com.guoqing.j2ee.jspservlet.login;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;
public class DBConnection { private Connection conn;
private final String className=\
private final String url=\ private final String user=\
private final String password=\
public DBConnection(){ try { Class.forName(className); conn=DriverManager.getConnection(url,user,password); } catch (ClassNotFoundException e) { // TODO 自动生成 catch 块 System.out.println(\加载驱动程序错误!\ e.printStackTrace(); } catch (SQLException e) { // TODO 自动生成 catch 块 System.out.println(\连接数据库出错!\ e.printStackTrace(); } }
38
public Connection getConnection(){ return conn; }
public void close(){ try { conn.close(); } catch (SQLException e) { // TODO 自动生成 catch 块 System.out.println(\关闭数据库出错!\ e.printStackTrace(); } } }
④Login Sevlet代码如下:
package com.guoqing.j2ee.jspservlet.login;
import java.io.IOException; import java.io.PrintWriter;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
public class Login extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { LoginBO bo=new LoginBO(); String name=request.getParameter(\ String password=request.getParameter(\ st=new Student(); st.setName(name); st.setPassword(password); if (bo.isLogin(st)) {
39
request.getSession().setAttribute(\
request.getRequestDispatcher(\quest, response); }else{
request.getRequestDispatcher(\response); } }
private Student st=null; }
3、创建jsp页面
①创建登录页面login.jsp,代码如下
<%@ page language=\ pageEncoding=\
Insert title here