实验目的

掌握编写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

JavaWeb

index.html

index.htm

index.jsp

default.html

default.htm

default.jsp

Login

gdpu.com.Login

Login

/login.html

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"%>

GDPU官网登录页面

GDPU账号:

账号密码 :

Hello.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

import="gdpu.com.User" pageEncoding="UTF-8"%>

LOGIN.hello

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"%>

LOGIN.error

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));

}

文章来源

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。