连接数据库登录 -详细介绍基本的JSP结构- 不使用任何框架
来源:互联网 发布:windows lts 编辑:程序博客网 时间:2024/06/03 14:08
JSP(java server page)
JSP=html+css+javascript+java
基本组成:
工程 里面主要能用到的:
src文件夹,存放JAVA代码
web文件夹,存放网页等
——————————————————————————————————————————
Java:
dao包: 接口以及接口的实现类 接口实现各种数据库操作。
Domain包:存放各种针对对象(例如用户,帖子)的实体类 或者 其他
Filter包:存放过滤器
Servlet包:服务器端程序
SQL包:存放连接数据库的Connect.java以及JdbcTemplate.java sql语句处理类
test包:存放测试类
——————————————————————————————————————————
HTML:
这个不用多说
————————————————————————————————————
流程:
1.连接数据库。
SQL包 Connect.java
package SQL;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class Connect {private static final String Driver="oracle.jdbc.driver.OracleDriver";private static final String Url="jdbc:oracle:thin:@localhost:1521:KNOVE";private static final String User="knove";private static final String password="123456"; private static Connection conn=null; public static Connection getConnection(){ try { Class.forName(Driver).newInstance(); conn = DriverManager.getConnection(Url, User, password); } catch (Exception e) { System.out.println("连接失败,错误信息:" + e); } return conn; } public void close() { if(conn!=null){ try { conn.close(); } catch (Exception e) { System.out.println("关闭失败,错误信息:" + e); } } }}
存放连接Oracle数据库(或其他数据库)的信息。以及getConnection()函数来获取连接实例。
2 接口 UserDao 处理关于用户的功能的接口
Dao包的UserDao.java
package dao;import Domain.UserInfo;import java.util.List;public interface UserDao { public boolean login(String userName,String password); public List<UserInfo> getAllUsers(); public boolean register(String userName,String password,String skill,String city,String email);}
这里实现了三个,分别是登录 ,获得全部的用户 List<UserInfo> 以及一个注册函数
3.实现UserDao接口的实现类:
Dao包的UserJdbcDaoImpl.java
public class UserJdbcDaoImpl implements UserDao { @Override public boolean login(String userName,String password){ boolean flag=false; String sql="select count(*) from Users WHERE Username=? and password =?"; int rowNum=JdbcTemplate.queryForCount(sql, new Object[]{userName,password}); if(rowNum==1){ flag=true; } return flag; } @Override public boolean register(String userName,String password,String skill,String city,String email){String sql="insert into Users(Username,password,Skill,city,Email)values(?,?,?,?,?)"; boolean flag=JdbcTemplate.insertInto(sql, new Object[]{userName,password,skill,city,email});return flag; } @Override public List<UserInfo> getAllUsers() { String sql="select * from users"; List<UserInfo> list=JdbcTemplate.query(sql,new ResultSetHandler<List<UserInfo>>(){ @Override public List<UserInfo> handler(ResultSet rs) { List<UserInfo> list0=new ArrayList<UserInfo>(); try { while(rs.next()){ UserInfo user=new UserInfo(rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5)); list0.add(user); } } catch (SQLException e) { e.printStackTrace(); } return list0; } }, new Object[]{}); return list; }}
4.SQL包的JdbcTemplate.java 处理SQL语句并执行类
package SQL;import java.sql.*;public class JdbcTemplate { public static int queryForCount(String sql,Object...param){ int count=0; Connection connection = Connect.getConnection(); try { PreparedStatement psmt=connection.prepareStatement(sql); ParameterMetaData pmd=psmt.getParameterMetaData(); if(param.length!=0&&pmd.getParameterCount()!=0&¶m.length==pmd.getParameterCount()){ for(int i=0,len=param.length;i<len;i++){ psmt.setObject(i+1,param[i]); } } ResultSet rs=psmt.executeQuery(); if(rs.next()){ count=rs.getInt(1); } connection.close(); } catch (SQLException e) { System.out.println("查询出错---"+e.getMessage()); } return count; } public static <T> T query(String sql,ResultSetHandler<T> rsh,Object...param){ T t=null; Connection connection=Connect.getConnection(); try { PreparedStatement psmt=connection.prepareStatement(sql); ParameterMetaData pmd=psmt.getParameterMetaData(); if(param.length!=0&&pmd.getParameterCount()!=0&¶m.length==pmd.getParameterCount()){ for(int i=0,len=param.length;i<len;i++){ psmt.setObject(i+1, param[i]); } } ResultSet rs=psmt.executeQuery(); t=rsh.handler(rs); } catch (SQLException e) { System.out.println("获取失败---"+e); } return t; } public static boolean insertInto(String sql,Object...param){ boolean flag=false; Connection connection = Connect.getConnection(); try { PreparedStatement psmt=connection.prepareStatement(sql); ParameterMetaData pmd=psmt.getParameterMetaData(); if(param.length!=0&&pmd.getParameterCount()!=0&¶m.length==pmd.getParameterCount()){ for(int i=0,len=param.length;i<len;i++){ psmt.setObject(i+1,param[i]); } } ResultSet rs=psmt.executeQuery(); flag=rs.next(); connection.close(); } catch (SQLException e) { System.out.println("查询出错---"+e.getMessage()); } return flag; }}5.测试类:
来测试是否可以成功实现:
test包的test.java
UserDao userDao=new UserJdbcDaoImpl(); System.out.println(userDao.login("Knove","123456"));
用户名和密码随意填等 ,看控制台信息。
JAVA已经实现后,现在就是要让网页,也就是jsp页面来运行:
首先建立Servlet包,里面存放User.java,用来处理jsp页面的信息:
@WebServlet("/Users")public class User extends HttpServlet { private UserDao userDao=new UserJdbcDaoImpl(); protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ String param=request.getParameter("param"); if("login".equals(param)){ String userName=request.getParameter("username"); String passWord=request.getParameter("password"); try{ if(userDao.login(userName,passWord)){ //成功登录 HttpSession httpSession=request.getSession(); httpSession.setAttribute("name",userName); request.getRequestDispatcher("views/main.jsp").forward(request, response);//成功登录转向 } else{ //登录失败! } } catch (Exception e){ System.out.println("Faied"+e); } } }}
@WebServlet("/Users")这行代码即让页面可以以/Users 的URL访问
Login.jsp中的代码: 精简到form
值得注意的就是action="Users?param=login"
<form method="post" action="Users?param=login"> <div class="center"> <input type="text" name="username" placeholder="输入用户名"class="text_kj"> </div> <div class="center"> <input type="password" name="password" placeholder="输入密码 " class="text_kj"> </div> <div class="right"> <a href="#">忘记密码</a> </div> <div class="center"> <button type="submit" class="button_kj">登录</button> </div> <div class="center"> <button type="button" id="register" class="button_kj">注册</button> </div> </form>
即可以实现 访问Oracle数据库登录
- 连接数据库登录 -详细介绍基本的JSP结构- 不使用任何框架
- 使用JSP连接ORACEL数据库做的登录框架
- 使用JSP连接ORACEL数据库做的登录框架
- 使用JSP连接ORACLE数据库做的一个简单登录框架
- JSP中使用JDBC连接MySQL数据库的详细步骤
- JSP中使用JDBC连接MySQL数据库的详细步骤
- JSP中使用JDBC连接MySQL数据库的详细步骤
- JSP基本语法的详细介绍
- Quartz 的简单使用(不使用任何框架)
- SSH框架登录:详细介绍
- JSP内置对象---一个小项目(实现用户的登录 (不使用数据库))
- tkprof的基本使用详细介绍
- 详细介绍使用PHP框架的原因
- 使用JFinal框架连接数据库,实现注册、登录功能
- jsp、软件的结构、服务器基本介绍、tomcat
- JDBC连接数据库详细介绍
- JSP简单登录界面连接数据库的代码
- 详细介绍如何使用Connection对象连接数据库
- VirtualBox虚拟机中安装CentOS 7(二)映射SSH端口
- python 实现 FTPServer 服务
- iOS 企业版账号的使用
- POJ 2046 Gap(bfs+状态压缩+map)
- web 前端
- 连接数据库登录 -详细介绍基本的JSP结构- 不使用任何框架
- Java中抽象类与接口的区别
- 13.属性选择器、emment快捷键
- 日期:在原有的时间上加一秒/分钟等
- 定时器任务 TimerTask
- 百度地图API详解之地图坐标系统
- textarea限制字数
- Eclipse中安装Springtools插件的步骤
- Hadoop入门之Mapreduce部分流程解析