利用servlet和jsp页面、java语言,使得jsp页面一打开就能调用数据库中的数据。求各位大神指导一下!
就如同一个页面的新闻动态一样,一打开就能看到数据库中的数据。我使用的时oracle数据库。能附上每一步的代码就更好了!先谢过各位大神了!

解决方案 »

  1.   

    直接访问servlet  然后servlet 跳转jsp
      

  2.   

    Ajax是一种不错的技术,小弟我还没有怎么去涉及这部分的技术。如果可以的话,能不能给我一个这种跳转的模板,我自己来研究一下。谢谢了。
      

  3.   

    JSP页面不是直接<%%>就可以了吗?或者<body onload=<%开数据库代码%> ...
      

  4.   

    一般都是输入页面地址先访问jsp页面,通过页面去访问servlet。至于你这个直接访问servlet我有很多疑惑,能不能再说的详细一点。谢谢了。
      

  5.   


    1、mysql5 绿色版创建数据库 
    create database javassdb;创建表:
    >use javassdb;
    >create table tbl_user(id int auto_increment Primary Key,
      username varchar(200),
      email varchar(200),
      password varchar(200)) ;
      
    >insert into tbl_user(username,email,password)  values('A', '[email protected]', 'A') ;
    >insert into tbl_user(username,email,password)  values('B', '[email protected]', 'B') ;
    >insert into tbl_user(username,email,password)  values('C', '[email protected]', 'C') ;
      
    2、下载tomcat 在tomcat的 webapps目录中创建
    myTest1
    myTest1\index.jsp
    myTest1\WEB-INF\web.xml
    myTest1\WEB-INF\classes
    myTest1\WEB-INF\lib\mysql-connector-java-5.0.8-bin.jar3、web.xml<?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>TestWeb</display-name>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>4、index.jsp<%@ page language="java" import="com.mysql.jdbc.*,java.sql.Connection, java.sql.DriverManager,java.sql.PreparedStatement,java.sql.ResultSet " pageEncoding="UTF-8"%>
    <HTML>
    <BODY>
    <H3>Access MySQL DB Example</H3><table border="2">
    <tr>
    <td> id</td>
    <td> 名称</td>
    <td> 邮箱</td>
    <td> 密码</td>
    </tr>
    <%
    Class.forName("com.mysql.jdbc.Driver"); //加载驱动
    Connection conn = DriverManager.getConnection("jdbc:mysql://192.168.0.44:3306/javassdb", 
    "root","root");//创建连接
     
        String sql ="select  id , username,  email , password  from tbl_User " ;
        PreparedStatement pstmt = null ;
        ResultSet rs = null ;
        try{
        pstmt = conn.prepareStatement(sql) ; //
        rs  = pstmt.executeQuery() ;//查询
        while(rs.next()){ //遍历查询结构,现实在页面中
    %>
    <tr>
    <td><%=rs.getInt("id" )%></td>
    <td><%=rs.getString("username")%></td>
    <td><%=rs.getString("email")%></td>
    <td><%=rs.getString("password")%></td>
    </tr>
    <%
        }
        }catch(Exception e){
         e.printStackTrace();
        }finally{
         try{
         if (rs != null) rs.close() ;
         if (pstmt != null) pstmt.close() ;
         if (conn != null) conn.close() ;
         }catch(Exception e){
         e.printStackTrace() ;
         }
        }
        %>
    </table>
    </BODY>
    </HTML>5、启动tomcat6、IE 地址栏:http://localhost:8080/myTest 即可看到效果
      

  6.   

    噢, body onload 是不是 页面一开始加载就 执行后面的代码?
      

  7.   

    嗯,谢谢了。你的这段代码给我很大启示,我用的是oracle,但是我可以慢慢去琢磨下。再次感谢!
      

  8.   

    1、mysql5 绿色版创建数据库 
    create database javassdb;创建表:
    >use javassdb;
    >create table tbl_user(id int auto_increment Primary Key,
      username varchar(200),
      email varchar(200),
      password varchar(200)) ;
      
    >insert into tbl_user(username,email,password)  values('A', '[email protected]', 'A') ;
    >insert into tbl_user(username,email,password)  values('B', '[email protected]', 'B') ;
    >insert into tbl_user(username,email,password)  values('C', '[email protected]', 'C') ;
      
    2、下载tomcat 在tomcat的 webapps目录中创建
    myTest2
    myTest2\index.jsp
    myTest2\show.jsp
    myTest2\WEB-INF\web.xml
    myTest2\WEB-INF\classes\org\servlet\MyServlet.class
    myTest2\WEB-INF\classes\org\vo\User.class
    myTest2\WEB-INF\lib\mysql-connector-java-5.0.8-bin.jar
    myTest2\WEB-INF\lib\servlet-api.jar3、web.xml<?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>TestWeb</display-name>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>  </welcome-file-list>
      <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>org.servlet.MyServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/MyServlet</url-pattern>
      </servlet-mapping>
    </web-app>4、index.jsp<%@ page language="java"  pageEncoding="UTF-8"%>
    <HTML>
    <BODY>
    <H3>Access MySQL DB Example</H3><form action="MyServlet" method="post">
    <input type="submit" value="查看" />
    </form>
    </BODY>
    </HTML>5、User.java
    package org.vo;public class User { private int id ;
    private String username ;
    private String password ;
    private String email ;
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getUsername() {
    return username;
    }
    public void setUsername(String username) {
    this.username = username;
    }
    public String getPassword() {
    return password;
    }
    public void setPassword(String password) {
    this.password = password;
    }
    public String getEmail() {
    return email;
    }
    public void setEmail(String email) {
    this.email = email;
    }
    public User(){

    }
    public User(int id, String username, String password, String email) {
    this.id = id;
    this.username = username;
    this.password = password;
    this.email = email;
    }
    @Override
    public String toString() {
    return "User [id=" + id + ", username=" + username + ", password="
    + password + ", email=" + email + "]";
    }


    }
    6、MyServlet.javapackage org.servlet;import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.List;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.vo.User;public class MyServlet extends HttpServlet {
    private static final long serialVersionUID = 1L; @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    List list = new ArrayList();
    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    User user = null; String sql = "select  id , username,  email , password  from tbl_User ";
    try {
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection(
    "jdbc:mysql://192.168.0.44:3306/javassdb", "root", "root");// 创建连接
    pstmt = conn.prepareStatement(sql); //
    rs = pstmt.executeQuery();// 查询
    while (rs.next()) {
    user = new User(rs.getInt("id" ), rs.getString("username"), rs.getString("email"), rs.getString("password")) ;
    list.add(user) ;
    }
    req.getSession().setAttribute("users", list) ;
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    if (rs != null)
    rs.close();
    if (pstmt != null)
    pstmt.close();
    if (conn != null)
    conn.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    resp.sendRedirect("show.jsp") ;
    } @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(req, resp);
    }}
    8、启动tomcat9、IE 地址栏:http://localhost:8080/myTest2 即可看到效果 然后点击 查看按钮 
    或者 http://localhost:8080/myTest2/MyServlet
      

  9.   

      这段代码我试验成功了,我发现有一个问题,如果别人查看jsp源代码就可以很清楚的看到我的数据库用户名和密码了,有没有什么方法封装这段代码?
      

  10.   


    一,你数据库端口不会对公网敞开吧?
    二,jsp代码驻留服务器端是不会发到客户端的,客户端不会获取你的用户名密码
      

  11.   

    新手,你使用jsp的时候,可以使用下ajax去获取数据么
    另外6#说的不正确的,body的onload属性,执行的是js方法
    你直接写java代码是不可靠的
    jsp中的java代码只是将执行的结果返回给jsp页面中直接使用的针对你的问题
    你有必要先学会开关数据库
    读取数据
    以及在jsp中展示一些内容
    也就是MVC的教程你需要知道一些理论和概念上的东西
      

  12.   

    在 web.xml中设置配置,运行Servlet 在用重定向定到jsp页面,就好了!!