实验目的
掌握编写JavaBean的规范,学会如何在JSP中使用JavaBean;掌握JSP、JavaBean和Servlet综合应用的基本原则。
实验内容
创建一个WEB应用,综合利用JSP、JavaBean和Servlet技术实现用户登录(注册功能选做)。程序至少包含:一个登录页面login.jsp,一个欢迎页面hello.jsp,一个servlet和一个bean。参考实验7,运用实验中创建数据库和表的方法,完成如下要求:
用户在login.jsp中输入用户名和密码,数据提交给servlet。 设计Bean,封装数据库表user中一个用户的所有信息。 servlet完成用户身份验证(通过从表中条件检索来验证)。如果用户合法,将该用户所有的信息放入上述bean的实例中,并存入session,转到hello.jsp;否则转到error.jsp hello.jsp从session中取出用户信息并显示。 error.jsp显示错误信息“用户名或密码错误!”,该页面中包含回到login.jsp的链接。
Web.xml
Login.java
package gdpu.com;
import java.sql.*;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Login extends HttpServlet {
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
String usernamex = request.getParameter("username");
String passwordx = request.getParameter("password");
try {
Class.forName("com.mysql.jdbc.Driver"); //驱动程序名
String url = "jdbc:mysql://localhost:3306/实验"; //数据库名
String username = "root"; //数据库用户名
String password = "0403"; //数据库用户密码
Connection conn = DriverManager.getConnection(url, username,password); //连接状态
if (conn != null) {
Statement stmt = null;
ResultSet rs = null;
stmt = conn.createStatement();
String sql = "SELECT * FROM user where username='"+usernamex+"' and password='"+passwordx+"'";//查询语句
rs = stmt.executeQuery(sql);
boolean isTure = false;
User user =new User();
while(rs.next()) {
isTure =true;
user.setUsername(rs.getString(1));
user.setPassword(rs.getString(2));
user.setChinesename(rs.getString(3));
user.setSex(rs.getString(4));
user.setRank(rs.getString(5));
}
if(isTure) {
request.getSession().setAttribute("user", user);
response.sendRedirect("./hello.jsp");
}
else {
response.sendRedirect("./error.jsp");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
User.java
package gdpu.com;
public class User {
private String username;
private String password;
private String chinesename;
private String sex;
private String rank;
/**
* @return username
*/
public String getUsername() {
return username;
}
/**
* @param username 要设置的 username
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return password
*/
public String getPassword() {
return password;
}
/**
* @param password 要设置的 password
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return chinesename
*/
public String getChinesename() {
return chinesename;
}
/**
* @param chinsesname 要设置的 chinesename
*/
public void setChinesename(String chinesename) {
this.chinesename = chinesename;
}
/**
* @return sex
*/
public String getSex() {
return sex;
}
/**
* @param sex 要设置的 sex
*/
public void setSex(String sex) {
this.sex = sex;
}
/**
* @return rank
*/
public String getRank() {
return rank;
}
/**
* @param rank 要设置的 rank
*/
public void setRank(String rank) {
this.rank = rank;
}
}
Login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="gdpu.com.User" pageEncoding="UTF-8"%>
Welcome:当前登录用户:
<%
User user = (User)session.getAttribute("user");
%>
<%=user.getChinesename()%>
<%=user.getSex()%>
<%=user.getRank()%>
Error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
UserID or password is wrong
连接数据库参考代码:
//说明:需要在头部引入java.sql.*包。
try {
Class.forName("com.mysql.jdbc.Driver"); //驱动程序名
String url = "jdbc:mysql://localhost:3306/chg"; //数据库名
String username = "root"; //数据库用户名
String password = "root"; //数据库用户密码
Connection conn = DriverManager.getConnection(url, username,
password); //连接状态
if (conn != null) {
out.print("数据库连接成功!");
out.print("
");
Statement stmt = null;
ResultSet rs = null;
stmt = conn.createStatement();
String sql = "SELECT * FROM teachers;"; //查询语句
rs = stmt.executeQuery(sql);
out.print("查询结果:");
out.print("
");
while (rs.next()) {
out.println(rs.getString(1)+rs.getString(2)+"
"); //将查询结果输出
}
} else {
out.print("连接失败!");
}
} catch (Exception e) {
out.print("数据库连接异常!" + e.getStackTrace().toString());
e.printStackTrace(new java.io.PrintWriter(out));
}
文章来源
发表评论