使⽤Eclipse创建JavaWeb动态⽹页项⽬(⼆)连接数据库
介绍了如何使⽤Servlet建⽴⽹页的动态反应,这篇⽂章介绍数据库的连接⽅法。
⽹上⼤多数⽂章以MySQL为例,这⾥介绍Oracle在JavaWeb中的连接⽅法。
⽂章⽬录
整个项⽬的⽂件结构如下:
配置Oracle连接⽤到的jar包
将ojdbc6.jar放到WEB-INF中的lib下,然后配置项⽬BuildPath,Add External Library。如果不进⾏这⼀步操作,会在Class.forName()时出现“⽆法到类”的错误。
使⽤html⽂件实现表单
注意:action后⾯的⽬录是处理表单的.java⽂件的路径
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="servlet/Login"method="post"><!--action与servlet名对应 -->
mysql的jar包下载Account:<input type="text"name="username"><br><br>
Password:<input type="password"name="password"><br><br>
Account Type:<input type="radio"name="usertype"value="admin">Developer
<input type="radio"name="usertype"value="user">Registered User<br><br>
<input type="submit"value="登录">
<input type="reset"value="重置">
</form>
</body>
</html>
重写Servlet的doPost()⽅法
注意:这个Servlet应当是上⾯html中action后⾯的⽂件,即servlet包下的Login.java。重写⽅法如下:
protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
String username = Parameter("username");
String password = Parameter("password");
PrintWriter Writer();
try{
conn= Conn(conn);
String sql ="select * from users where username= ? and password=?";
ps =conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
rs= ps.executeQuery();
()){
// 登陆成功,跳转到success页⾯
out.print("<script>alert('Successfully logged in!');window.location.href='/BigData_Web/success.jsp'</script>");
rs.close();
}else{
out.print("<script>alert('Sorry, the account with this keycode was not found.');window.location.href='/BigData_Web/login.html'</script>"); rs.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
建⽴java类实现数据库连接⽅法
写完doPost⽅法还不能运⾏。在上⾯代码try的第⼀⾏,调⽤了Conn()⽅法,⽤于建⽴数据库连接。
在servlet包中新建⼀个java class,实现数据库连接代码:
package servlet;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBReading {
private static String driver ="oracle.jdbc.driver.OracleDriver";//驱动
private static String url ="jdbc:oracle:thin:@//localhost:1521/你的数据库名";//连接字符串,这⾥需要改数据库名称private static String username ="system";//⽤户名,需要改
private static String password ="oracle";//密码,需要改
// 获得连接对象
public static synchronized Connection getConn(Connection conn){
if(conn == null){
try{
Class.forName(driver);
conn = Connection(url, username, password);
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}
}
return conn;
}
}
写⼀个登陆成功的html⽂件
在上⾯Servlet的⽅法中,如果在数据库中查到⽤户名和密码,通过
out.print(window.location.href=’/BigData_Web/success.jsp’)实现页⾯跳转。
这⾥在项⽬的WebContent下新建⼀个success.jsp即可。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论