java网站后台实现--ServLet 博客分类: JavaHtmlJSP
一、环境的准备:
下载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。
然后就可以在浏览器中访问了。