java网站后台实现--ServLet
一、环境的准备:
下载jee的eclipse。tomcat。
在系统的环境变量里面添加JAVA_HOME,路径为java安装的路径,例如:C:\Program Files\Java\jdk1.8.0_05
之后可以运行西夏tomcat下的startup.bat。看看能不能启动成功。如果不能启动成功(tomcat6.0的32位可能遇到,现在可以下载tomcat8.0和最新的eclipse luna,不会遇到此问题)。
用记事本手动修改tomcat的两个文件:
bin\catalina.bat ctrl+F查找 echo Using JAVA_HOME: 在这个的后面改为你的java安装路径。
bin\startup.bat ctrl+F查找 set JAVA_HOME: 在这个的后面改为你的java安装路径。
二、启动成功之后,在eclipse新建一个动态网站工程:Dynamic Web Project
选择好tomcat的版本。
其中Java Resources是写java代码的
WebContent是写网页的
在WebContent下创建了一个index.html,这里面写好登录界面:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form action="AAA" method="post">
号码: <input type="text" name="userName" /><br /> 密码:<input
type="password" name="userPwd" /> <input type="submit" value="登录" />
</form>
</body>
</html>
在Java Resources中写了一个LoginSuccess的类,用来判断是否登录成功。
这个类继承HttpServlet,并重写了doPost方法,在这里获得了网页中填入的帐号密码,并连接数据库进行判断。如果登录成功,就返回登录成功的信息,如果登录失败,就返回登录失败的信息。
/**
* 重写doPost方法
* req 请求对象,将请求的数据封装成的对象
* resp 响应对象,将要返回给浏览器的数据封装的对象
*/
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setCharacterEncoding("UTF-8");
String userName = req.getParameter("userName");
String userPswd = req.getParameter("userPwd");
System.out.println(userName + " " + userPswd);
PrintWriter printWrite = resp.getWriter();
String result = "<html><head><meta charset=\"UTF-8\"></head><body>";
OracleOprate.getConnection();
if (OracleOprate.checkPwd(Long.parseLong(userName), userPswd)) {
result += "<h2>Login successful!\n</h2>";
} else {
result += "登录失败,请<a href = \"index.html\">重新登录</a>或者<a href = \"regist.html\">注册</a>\n";
}
result += "</body>";
printWrite.write(result);
printWrite.flush();
printWrite.close();
};
之后,在web.xml中加入一段声明:
<servlet> <servlet-name>AAA</servlet-name> <servlet-class>com.hb.v141114.LoginSuccess</servlet-class> </servlet> <servlet-mapping> <servlet-name>AAA</servlet-name> <url-pattern>/AAA</url-pattern> </servlet-mapping>
数据库操作类OracleOprate,检查帐号密码是否正确。
public static Connection getConnection() {
if (conn != null) {
return conn;
}
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@127.0.0.1:1521:ORCL", "chat", "chat");
return conn;
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
* 检查密码
*
* @param num
* 帐号
* @param userPwd
* 密码
* @return 是否正确
*/
public static boolean checkPwd(long num, String userPwd) {
// 通过用户名查询数据库,得到密码进行比较
try {
Statement stm = conn.createStatement();
String sql = "select userpswd from userlist1 where usernum = "
+ num;
ResultSet rs = stm.executeQuery(sql);
while (rs.next()) {
String pswd = rs.getString(1);
if (userPwd.equals(pswd)) {
stm.close();
return true;
}
}
stm.close();
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
程序目录结构如下:
写好之后,启动tomcat
右键 start。
然后就可以在浏览器中访问了。