[原创]学习JSP、Servlet、JDBC_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2019 | 回复: 0   主题: [原创]学习JSP、Servlet、JDBC        下一篇 
    本主题由 koei123 于 2015-7-14 11:05:48 移动
huan.xiong
注册用户
等级:上尉
经验:508
发帖:18
精华:0
注册:1970-1-1
状态:离线
发送短消息息给huan.xiong 加好友    发送短消息息给huan.xiong 发消息
发表于: IP:您无权察看 2015-7-10 11:32:49 | [全部帖] [楼主帖] 楼主

学习JSP、Servlet、JDBC

用Java开发Web应用程序时用到的技术主要有两种,即Servlet和JSP。 Servlet是在服务器端执行的Java程序,一个被称为Servlet容器的程序(其实就是服务器) 负责执行Java程序。而JSP(Java Server Page)则是一个页面, 由JSP容器负责执行。

Servlet和JSP两者最大的区别就是,Servlet以Java程序为主, 输出HTML代码时需要使用out.println函数,也就是说Java中内嵌HTML; 而JSP则以HTML页面为主,需要写Java代码时则在页面中直接插入Java代码, 即HTML中内嵌Java。JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

JSP+Servlet+JDBC的小例子:

北京联动北方科技有限公司

其中login.jsp如下:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'login.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<center>Welcome</center>
<center>
<form action="login" method="post">
userName<input type="text" name="username" /><br><br>
passWord<input type="text" name="password" /><br><br>  <br>
<input  type="submit" value="submit">
</form>
</center>
</body>
</html>


北京联动北方科技有限公司

其中loginServlet如下:

package servlet;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javabean.DButil;
public class LoginServlet implements javax.servlet.Servlet{
      public void destroy() {
      }
      public ServletConfig getServletConfig() {
            return null;
      }
      public String getServletInfo() {
            return null;
      }
      public void init(ServletConfig arg0) throws ServletException {
      }
      public void doPost(HttpServletRequest request,HttpServletResponse response)
      throws ServletException,IOException{
            String userName = request.getParameter("username");//取得用户名
            String password = request.getParameter("password");//取得密码
            DButil db = new DButil();//构建数据库对象
            boolean canLogin = db.loginSuccess(userName, password);
            if(canLogin){//根据登陆情况,跳转页面
                  response.sendRedirect("welcome.jsp");
            }else{
            response.sendRedirect("back.jsp");
      }
}
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
      HttpServletRequest rq = (HttpServletRequest)request;
      HttpServletResponse rs = (HttpServletResponse) response;
      doPost(rq,rs);
}
}


成功返回:

北京联动北方科技有限公司

失败返回:

北京联动北方科技有限公司

其中DButil如下:

package javabean;
import java.sql.*;
public class DButil {
      boolean bInited = false;
      //加载驱动
      public void initJDBC() throws ClassNotFoundException {
            //加载MYSQL JDBC驱动程序
            Class.forName("com.mysql.jdbc.Driver");
            bInited = true;
            System.out.println("Success loading Mysql Driver!");
      }
      public Connection getConnection() throws ClassNotFoundException,SQLException{
            if(!bInited){
                  initJDBC();
            }
            //连接URL为 jdbc:mysql//服务器地址/数据库名
            //后面的2个参数分别是登陆用户名和密码
            Connection conn = DriverManager.getConnection(
            "jdbc:mysql://localhost:3306/test","root","root");
            return conn;
      }
      public boolean loginSuccess(String username,String password){
            boolean returnValue = false;
            String sql = "SELECT * FROM student";
            Connection conn = null;
            Statement stmt = null;
            ResultSet rs = null;
            try{
                  conn = getConnection();
                  stmt = conn.createStatement();
                  rs = stmt.executeQuery(sql);
                  while(rs.next()){
                        String userNameInDB = rs.getString("uname");
                        String passwordInDB = rs.getString("passwd");
                        if(userNameInDB.equals(username) &&
                        passwordInDB.equals(password)){
                              returnValue = true;
                              break;
                        }
                  }
            }catch (ClassNotFoundException e) {
                  e.printStackTrace();
            }catch (SQLException e) {
                  e.printStackTrace();
            }
            return returnValue;
      }
}


该贴由koei123转至本版2015-7-14 11:05:48



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论